scsi: virtio_scsi: Modify the kmalloc allocation flag

Message ID 20230218005356.3932-1-zeming@nfschina.com
State New
Headers
Series scsi: virtio_scsi: Modify the kmalloc allocation flag |

Commit Message

Li zeming Feb. 18, 2023, 12:53 a.m. UTC
  The inq_result pointer must be allocated successfully; otherwise,
subsequent function execution may crash.

Signed-off-by: Li zeming <zeming@nfschina.com>
---
 drivers/scsi/virtio_scsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Christoph Hellwig Feb. 16, 2023, 4:51 p.m. UTC | #1
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.
  

Patch

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;