Re: [PATCH v3] scsi: mpi3mr: fix possible crash when setup bsg fail

Guixin Liu
2025-01-07T02:04:54Z

在 2025/1/7 02:30, Bart Van Assche 写道:
> On 12/26/24 4:18 AM, Guixin Liu wrote:
>> diff --git a/drivers/scsi/mpi3mr/mpi3mr_app.c
>> b/drivers/scsi/mpi3mr/mpi3mr_app.c
>> index 10b8e4dc64f8..7589f48aebc8 100644
>> --- a/drivers/scsi/mpi3mr/mpi3mr_app.c
>> +++ b/drivers/scsi/mpi3mr/mpi3mr_app.c
>> @@ -2951,6 +2951,7 @@ void mpi3mr_bsg_init(struct mpi3mr_ioc *mrioc)
>>           .max_hw_sectors        = MPI3MR_MAX_APP_XFER_SECTORS,
>>           .max_segments        = MPI3MR_MAX_APP_XFER_SEGMENTS,
>>       };
>> +    struct request_queue *q;
>>         device_initialize(bsg_dev);
>>   @@ -2966,14 +2967,17 @@ void mpi3mr_bsg_init(struct mpi3mr_ioc *mrioc)
>>           return;
>>       }
>>   -    mrioc->bsg_queue = bsg_setup_queue(bsg_dev, dev_name(bsg_dev),
>> &lim,
>> +    q = bsg_setup_queue(bsg_dev, dev_name(bsg_dev), &lim,
>>               mpi3mr_bsg_request, NULL, 0);
>> -    if (IS_ERR(mrioc->bsg_queue)) {
>> +    if (IS_ERR(q)) {
>>           ioc_err(mrioc, "%s: bsg registration failed\n",
>>               dev_name(bsg_dev));
>>           device_del(bsg_dev);
>>           put_device(bsg_dev);
>> +        return;
>>       }
>> +
>> +    mrioc->bsg_queue = q;
>>   }
>
> Next time, when including a call stack in the patch description, please
> clean it up. This means removing the timestamps, the register dumps and
> also the stack frames that start with " ? ". Anyway:
>
> Reviewed-by: Bart Van Assche <bvanassche@acm.org>

Thanks, I will send a v4 to clean up the stack, sorry for the trouble.

Best Regards,

Guixin Liu