This reverts commit
23f90cccfba4 ("RDS: fix the sg allocation based on
actual message size") because RDS has implemented N sge to support large
fragment size, with each sge of PAGE_SIZE.
Orabug:
26770234
Signed-off-by: Wei Lin Guay <wei.lin.guay@oracle.com>
Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Tested-by: Shih-Yu Huang <shih-yu.huang@oracle.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
for (i = 0; i < rm->data.op_nents; i++) {
rdsdebug("putting data page %p\n", (void *)sg_page(&rm->data.op_sg[i]));
/* XXX will have to put_page for page refs */
- (rm->data.op_sg[i].length <= PAGE_SIZE) ?
- __free_page(sg_page(&rm->data.op_sg[i])) :
- __free_pages(sg_page(&rm->data.op_sg[i]),
- get_order(rm->data.op_sg[i].length));
+ __free_page(sg_page(&rm->data.op_sg[i]));
}
rm->data.op_nents = 0;
/* jump straight to allocation if we're trying for a huge page */
if (bytes >= PAGE_SIZE) {
- page = alloc_pages(gfp, get_order(bytes));
+ page = alloc_page(gfp);
if (!page) {
ret = -ENOMEM;
} else {
- sg_set_page(scat, page, bytes, 0);
+ sg_set_page(scat, page, PAGE_SIZE, 0);
ret = 0;
}
goto out;