aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian King <brking@us.ibm.com>2005-12-12 13:05:08 -0600
committerLinus Torvalds <torvalds@g5.osdl.org>2005-12-12 12:35:39 -0800
commit66e05225262cd9271fac13fe2fd1e9edb65e3978 (patch)
treed2eefc27030003707b7c230897d206c8dfbeda6f
parent49d7bc64283970ee83d2c954d04ba00d04e5943d (diff)
downloadlinux-66e05225262cd9271fac13fe2fd1e9edb65e3978.tar.gz
[PATCH] Fix SCSI scanning slab corruption
There is a double free in the scsi scan code if a LLDD's slave_alloc() call fails. There is a direct call to scsi_free_queue and then the following put_device calls the release function, which also frees the queue. Remove the redundant scsi_free_queue. Signed-off-by: Brian King <brking@us.ibm.com> Tested-by: Nathan Lynch <ntl@pobox.com> [ Also removed some strange whitespace artifacts in that area ] Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/scsi/scsi_scan.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 374853df9cca10..94e5167f260dbc 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -266,8 +266,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
/*
* if LLDD reports slave not present, don't clutter
* console with alloc failure messages
-
-
*/
if (ret == -ENXIO)
display_failure_msg = 0;
@@ -279,7 +277,6 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
out_device_destroy:
transport_destroy_device(&sdev->sdev_gendev);
- scsi_free_queue(sdev->request_queue);
put_device(&sdev->sdev_gendev);
out:
if (display_failure_msg)