>>>>> diff --git a/drivers/scsi/cxgbi/libcxgbi.c >>>>> b/drivers/scsi/cxgbi/libcxgbi.c index af281e271f88..2ff9810f42a9 >>>>> 100644 >>>>> --- a/drivers/scsi/cxgbi/libcxgbi.c >>>>> +++ b/drivers/scsi/cxgbi/libcxgbi.c >>>>> @@ -1196,8 +1196,7 @@ void cxgbi_ddp_set_one_ppod(struct >>>>> cxgbi_pagepod *ppod, >>>>> if (offset == len) { >>>>> offset = 0; >>>>> - sg = sg_next(sg); >>>>> - if (sg) { >>>>> + if (sg && (sg = sg_next(sg))) { >>>>> addr = sg_dma_address(sg); >>>>> len = sg_dma_len(sg); >>>>> } >>>> >>>> Is cxgbit_set_one_ppod the same function but it already has the >>>> extra sg check? >>> >>> Good catch! Certainly looks that way, albeit with messier indentation. >>> >>>> Should it be a libcxgb function in libcxgb_ppm.c? >>> >>> That makes sense to me. Should I just move both there? >> >> I think you can move one function with a fix to libcxgb and kill the second one. >> Name the new function to cxgb_ddp_set_one_ppod then have cxgbi and cxgbt use it. > >Yeah, thah's pretty much what I meant. Thank you! Yes, you can move cxgbit_set_one_ppod() from cxgbit_ddp.c to libcxgb_ppm.c and rename it to cxgbi_ppm_set_one_ppod() and remove cxgbi_ddp_set_one_ppod() from libcxgbi.c.