On 02/01/2017 02:00 PM, Christoph Hellwig wrote: > On Wed, Feb 01, 2017 at 12:26:39PM +0100, Hannes Reinecke wrote: >> The low_dma value is always '1' in that branch, so the remaining >> 'if' statement can never be reached. >> >> >> Signed-off-by: Hannes Reinecke <hare@xxxxxxxx> >> --- >> drivers/scsi/sg.c | 9 ++------- >> 1 file changed, 2 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c >> index dbe5b4b..652b934 100644 >> --- a/drivers/scsi/sg.c >> +++ b/drivers/scsi/sg.c >> @@ -890,14 +890,9 @@ static int max_sectors_bytes(struct request_queue *q) >> result = get_user(val, ip); >> if (result) >> return result; >> - if (val) { >> + if (val) >> sfp->low_dma = 1; >> - if ((0 == sfp->low_dma) && (0 == sg_res_in_use(sfp))) { >> - val = (int) sfp->reserve.bufflen; >> - sg_remove_scat(sfp, &sfp->reserve); >> - sg_build_reserve(sfp, val); >> - } >> - } else { >> + else { > > I think the proper fix is to check sfp->low_dma for 0 before updating > it, at least that seems to be the intent here. > May. Or may not. But this code path has _never_ been taken for the last ten years; this particular code predates the initial git check-in from Linus. Where would be the point of enabling it now? (Especially given all the issues we're having with the sg driver ...) Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)