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.