diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-08 10:15:23 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-08 10:15:23 -0700 |
commit | aaccd8dce9f79445950abcdefffab840f86a5bf5 (patch) | |
tree | e49c940baac7592818053450aca7a1f13bf5b1ab | |
parent | 3b4c62ef374d17f19151f9630050a78ea44bfac8 (diff) | |
download | longterm-queue-2.6.32-aaccd8dce9f79445950abcdefffab840f86a5bf5.tar.gz |
remove a scsi patch that was incorrectly added
-rw-r--r-- | queue-2.6.32/fix-crash-in-scsi_dispatch_cmd.patch | 71 | ||||
-rw-r--r-- | queue-2.6.32/series | 1 |
2 files changed, 0 insertions, 72 deletions
diff --git a/queue-2.6.32/fix-crash-in-scsi_dispatch_cmd.patch b/queue-2.6.32/fix-crash-in-scsi_dispatch_cmd.patch deleted file mode 100644 index 15654aa..0000000 --- a/queue-2.6.32/fix-crash-in-scsi_dispatch_cmd.patch +++ /dev/null @@ -1,71 +0,0 @@ -From bfe159a51203c15d23cb3158fffdc25ec4b4dda1 Mon Sep 17 00:00:00 2001 -From: James Bottomley <James.Bottomley@HansenPartnership.com> -Date: Thu, 7 Jul 2011 15:45:40 -0500 -Subject: [SCSI] fix crash in scsi_dispatch_cmd() - -From: James Bottomley <James.Bottomley@HansenPartnership.com> - -commit bfe159a51203c15d23cb3158fffdc25ec4b4dda1 upstream. - -USB surprise removal of sr is triggering an oops in -scsi_dispatch_command(). What seems to be happening is that USB is -hanging on to a queue reference until the last close of the upper -device, so the crash is caused by surprise remove of a mounted CD -followed by attempted unmount. - -The problem is that USB doesn't issue its final commands as part of -the SCSI teardown path, but on last close when the block queue is long -gone. The long term fix is probably to make sr do the teardown in the -same way as sd (so remove all the lower bits on ejection, but keep the -upper disk alive until last close of user space). However, the -current oops can be simply fixed by not allowing any commands to be -sent to a dead queue. - -Signed-off-by: James Bottomley <JBottomley@Parallels.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - block/blk-core.c | 3 +++ - block/blk-exec.c | 7 +++++++ - drivers/scsi/scsi_lib.c | 2 ++ - 3 files changed, 12 insertions(+) - ---- a/block/blk-core.c -+++ b/block/blk-core.c -@@ -865,6 +865,9 @@ struct request *blk_get_request(struct r - { - struct request *rq; - -+ if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) -+ return NULL; -+ - BUG_ON(rw != READ && rw != WRITE); - - spin_lock_irq(q->queue_lock); ---- a/block/blk-exec.c -+++ b/block/blk-exec.c -@@ -50,6 +50,13 @@ void blk_execute_rq_nowait(struct reques - { - int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK; - -+ if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { -+ rq->errors = -ENXIO; -+ if (rq->end_io) -+ rq->end_io(rq, rq->errors); -+ return; -+ } -+ - rq->rq_disk = bd_disk; - rq->end_io = done; - WARN_ON(irqs_disabled()); ---- a/drivers/scsi/scsi_lib.c -+++ b/drivers/scsi/scsi_lib.c -@@ -215,6 +215,8 @@ int scsi_execute(struct scsi_device *sde - int ret = DRIVER_ERROR << 24; - - req = blk_get_request(sdev->request_queue, write, __GFP_WAIT); -+ if (!req) -+ return ret; - - if (bufflen && blk_rq_map_kern(sdev->request_queue, req, - buffer, bufflen, __GFP_WAIT)) diff --git a/queue-2.6.32/series b/queue-2.6.32/series index e675d78..86d6226 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -25,7 +25,6 @@ libsas-remove-expander-from-dev-list-on-error.patch mac80211-restart-sta-timers-only-on-associated-state.patch blacklist-traxdata-cdr4120-and-iomega-zip-drive-to-avoid-lock-ups.patch ses-requesting-a-fault-indication.patch -fix-crash-in-scsi_dispatch_cmd.patch pmcraid-reject-negative-request-size.patch kexec-x86-fix-incorrect-jump-back-address-if-not.patch powerpc-kdump-fix-timeout-in-crash_kexec_wait_realmode.patch |