[openib-general] [PATCH 08/17] ehca: memory region

Roland Dreier rdreier at cisco.com
Tue Mar 7 13:31:48 PST 2006


 > +	kpage = kmalloc(PAGE_SIZE, GFP_KERNEL);
 > +	if (kpage == 0) {
 > +		EDEB_ERR(4, "kpage alloc failed");
 > +		retcode = -ENOMEM;
 > +		goto ehca_reg_mr_rpages_exit0;
 > +	}
 > +	memset(kpage, 0, PAGE_SIZE);

kzalloc() -- or get_zeroed_page() might be even better.

also, don't test (kpage == 0); sparse will complain, and (!kpage) is
more idiomatic in the kernel.

 > +		if (i == ((pginfo->num_pages + 512 - 1) / 512) - 1) {
 > +			rnum = pginfo->num_pages % 512; /* last shot */
 > +			if (rnum == 0)
 > +				rnum = 512;      /* last shot is full */
 > +		} else
 > +			rnum = 512;

This code seems to be assuming PAGE_SIZE == 4096.  So maybe that
allocation should be of a 4K buffer rather than a PAGE_SIZE buffer.

 > +       ehca_reg_mr_rpages_exit1:
 > +	kfree(kpage);
 > +       ehca_reg_mr_rpages_exit0:

The indentation looks messed up here.  Labels should be indented one
tab less than the code.

 - R.



More information about the general mailing list