On Wed, Jul 05, 2023 at 10:40 AM +0800, Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote: > From: Yu Kuai <yukuai3@xxxxxxxxxx> > > Commit fcaa174a9c99 ("scsi/sg: don't grab scsi host module reference") > make a mess how blk_get_queue() is called, blk_get_queue() returns true > on success while the caller expects it returns 0 on success. > > Fix this problem and also add a corresponding error message on failure. > > Fixes: fcaa174a9c99 ("scsi/sg: don't grab scsi host module reference") > Reported-by: Marc Hartmayer <mhartmay@xxxxxxxxxxxxx> > Closes: https://lore.kernel.org/all/87lefv622n.fsf@xxxxxxxxxxxxx/ > Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> > --- > drivers/scsi/sg.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c > index 89fa046c7158..0d8afffd1683 100644 > --- a/drivers/scsi/sg.c > +++ b/drivers/scsi/sg.c > @@ -1497,9 +1497,10 @@ sg_add_device(struct device *cl_dev) > int error; > unsigned long iflags; > > - error = blk_get_queue(scsidp->request_queue); > - if (error) > - return error; > + if (!blk_get_queue(scsidp->request_queue)) { > + pr_warn("%s: get scsi_device queue failed\n", __func__); > + return -ENODEV; > + } > > error = -ENOMEM; > cdev = cdev_alloc(); > -- > 2.39.2 Thanks. Tested-by: Marc Hartmayer <mhartmay@xxxxxxxxxxxxx>