diff options
Diffstat (limited to 'drivers/scsi/sg.c')
-rw-r--r-- | drivers/scsi/sg.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 2a547538d444..ecf2f6010e76 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c | |||
@@ -1361,7 +1361,7 @@ static int sg_alloc(struct gendisk *disk, struct scsi_device *scsidp) | |||
1361 | void *old_sg_dev_arr = NULL; | 1361 | void *old_sg_dev_arr = NULL; |
1362 | int k, error; | 1362 | int k, error; |
1363 | 1363 | ||
1364 | sdp = kmalloc(sizeof(Sg_device), GFP_KERNEL); | 1364 | sdp = kzalloc(sizeof(Sg_device), GFP_KERNEL); |
1365 | if (!sdp) { | 1365 | if (!sdp) { |
1366 | printk(KERN_WARNING "kmalloc Sg_device failure\n"); | 1366 | printk(KERN_WARNING "kmalloc Sg_device failure\n"); |
1367 | return -ENOMEM; | 1367 | return -ENOMEM; |
@@ -1373,12 +1373,11 @@ static int sg_alloc(struct gendisk *disk, struct scsi_device *scsidp) | |||
1373 | int tmp_dev_max = sg_nr_dev + SG_DEV_ARR_LUMP; | 1373 | int tmp_dev_max = sg_nr_dev + SG_DEV_ARR_LUMP; |
1374 | write_unlock_irqrestore(&sg_dev_arr_lock, iflags); | 1374 | write_unlock_irqrestore(&sg_dev_arr_lock, iflags); |
1375 | 1375 | ||
1376 | tmp_da = kmalloc(tmp_dev_max * sizeof(Sg_device *), GFP_KERNEL); | 1376 | tmp_da = kzalloc(tmp_dev_max * sizeof(Sg_device *), GFP_KERNEL); |
1377 | if (unlikely(!tmp_da)) | 1377 | if (unlikely(!tmp_da)) |
1378 | goto expand_failed; | 1378 | goto expand_failed; |
1379 | 1379 | ||
1380 | write_lock_irqsave(&sg_dev_arr_lock, iflags); | 1380 | write_lock_irqsave(&sg_dev_arr_lock, iflags); |
1381 | memset(tmp_da, 0, tmp_dev_max * sizeof(Sg_device *)); | ||
1382 | memcpy(tmp_da, sg_dev_arr, sg_dev_max * sizeof(Sg_device *)); | 1381 | memcpy(tmp_da, sg_dev_arr, sg_dev_max * sizeof(Sg_device *)); |
1383 | old_sg_dev_arr = sg_dev_arr; | 1382 | old_sg_dev_arr = sg_dev_arr; |
1384 | sg_dev_arr = tmp_da; | 1383 | sg_dev_arr = tmp_da; |
@@ -1391,7 +1390,6 @@ static int sg_alloc(struct gendisk *disk, struct scsi_device *scsidp) | |||
1391 | if (unlikely(k >= SG_MAX_DEVS)) | 1390 | if (unlikely(k >= SG_MAX_DEVS)) |
1392 | goto overflow; | 1391 | goto overflow; |
1393 | 1392 | ||
1394 | memset(sdp, 0, sizeof(*sdp)); | ||
1395 | SCSI_LOG_TIMEOUT(3, printk("sg_alloc: dev=%d \n", k)); | 1393 | SCSI_LOG_TIMEOUT(3, printk("sg_alloc: dev=%d \n", k)); |
1396 | sprintf(disk->disk_name, "sg%d", k); | 1394 | sprintf(disk->disk_name, "sg%d", k); |
1397 | disk->first_minor = k; | 1395 | disk->first_minor = k; |