2023-02-16 08:22:45

by Li zeming

[permalink] [raw]
Subject: [PATCH] scsi: virtio_scsi: Modify the kmalloc allocation flag

The inq_result pointer must be allocated successfully; otherwise,
subsequent function execution may crash.

Signed-off-by: Li zeming <[email protected]>
---
drivers/scsi/virtio_scsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index d07d24c06b54..3252f4b42261 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -336,7 +336,7 @@ static void virtscsi_rescan_hotunplug(struct virtio_scsi *vscsi)
struct Scsi_Host *shost = virtio_scsi_host(vscsi->vdev);
unsigned char scsi_cmd[MAX_COMMAND_SIZE];
int result, inquiry_len, inq_result_len = 256;
- char *inq_result = kmalloc(inq_result_len, GFP_KERNEL);
+ char *inq_result = kmalloc(inq_result_len, __GFP_NOFAIL);

shost_for_each_device(sdev, shost) {
inquiry_len = sdev->inquiry_len ? sdev->inquiry_len : 36;
--
2.18.2



2023-02-16 16:51:53

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] scsi: virtio_scsi: Modify the kmalloc allocation flag

On Sat, Feb 18, 2023 at 08:53:56AM +0800, Li zeming wrote:
> The inq_result pointer must be allocated successfully; otherwise,
> subsequent function execution may crash.

The error needs to be handled. Or in fact this LLDD needs to stop
breaking layering and issuing it's own INQUIRY commands.