diff --git a/fix-scsi_dispatch_cmd.patch b/fix-scsi_dispatch_cmd.patch deleted file mode 100644 index 3976791ca..000000000 --- a/fix-scsi_dispatch_cmd.patch +++ /dev/null @@ -1,68 +0,0 @@ -commit bfe159a51203c15d23cb3158fffdc25ec4b4dda1 -Author: James Bottomley -Date: Thu Jul 7 15:45:40 2011 -0500 - - [SCSI] fix crash in scsi_dispatch_cmd() - - 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. - - Cc: stable@kernel.org - Signed-off-by: James Bottomley - -diff --git a/block/blk-core.c b/block/blk-core.c -index d2f8f40..1d49e1c 100644 ---- a/block/blk-core.c -+++ b/block/blk-core.c -@@ -839,6 +839,9 @@ struct request *blk_get_request(struct request_queue *q, int rw, gfp_t gfp_mask) - { - 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); -diff --git a/block/blk-exec.c b/block/blk-exec.c -index 8a0e7ec..a1ebceb 100644 ---- a/block/blk-exec.c -+++ b/block/blk-exec.c -@@ -50,6 +50,13 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk, - { - 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()); -diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c -index ec1803a..28d9c9d 100644 ---- a/drivers/scsi/scsi_lib.c -+++ b/drivers/scsi/scsi_lib.c -@@ -213,6 +213,8 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, - 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/kernel.spec b/kernel.spec index 4a4549bf1..6d4019aa9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -51,7 +51,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be prepended with "0.", so # for example a 3 here will become 0.3 # -%global baserelease 6 +%global baserelease 0 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -64,7 +64,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 0 +%define stable_update 1 # Is it a -stable RC? %define stable_rc 0 # Set rpm version accordingly @@ -558,40 +558,8 @@ Source1000: config-local # Here should be only the patches up to the upstream canonical Linus tree. Patch00: patch-3.0.bz2 +Patch01: patch-3.0.1-rc1.bz2 -# For a stable release kernel -%if 0%{?stable_update} -%if 0%{?stable_base} -%define stable_patch_00 patch-3.%{base_sublevel}.%{stable_base}.bz2 -Patch01: %{stable_patch_00} -%endif -%if 0%{?stable_rc} -%define stable_patch_01 patch-3.%{base_sublevel}.%{stable_update}-rc%{stable_rc}.bz2 -Patch02: %{stable_patch_01} -%endif - -# non-released_kernel case -# These are automagically defined by the rcrev and gitrev values set up -# near the top of this spec file. -%else -%if 0%{?rcrev} -Patch00: patch-3.0-rc%{rcrev}.bz2 -%if 0%{?gitrev} -Patch01: patch-3.0-rc%{rcrev}-git%{gitrev}.bz2 -%endif -%else -# pre-{base_sublevel+1}-rc1 case -%if 0%{?gitrev} -Patch00: patch-3.%{base_sublevel}-git%{gitrev}.bz2 -%endif -%endif -%endif - -%if %{using_upstream_branch} -### BRANCH PATCH ### -%endif - -Patch03: git-linus.diff # we also need compile fixes for -vanilla Patch04: linux-2.6-compile-fixes.patch @@ -675,8 +643,6 @@ Patch12016: disable-i8042-check-on-apple-mac.patch Patch12018: neuter_intel_microcode_load.patch -Patch12019: linux-2.6-rt2x00-Add-device-ID-for-RT539F-device.patch - Patch12022: fix-cdc-ncm-dma-stack-vars.patch Patch12023: ums-realtek-driver-uses-stack-memory-for-DMA.patch @@ -686,7 +652,6 @@ Patch12204: linux-2.6-enable-more-pci-autosuspend.patch Patch12303: dmar-disable-when-ricoh-multifunction.patch -Patch13000: fix-scsi_dispatch_cmd.patch Patch13001: epoll-fix-spurious-lockdep-warnings.patch Patch13002: hfsplus-ensure-bio-requests-are-not-smaller-than-the.patch @@ -1034,24 +999,6 @@ if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then # Need to apply patches to the base vanilla version. cp -rl vanilla-%{kversion} vanilla-%{vanillaversion} - cd vanilla-%{vanillaversion} - -# Update vanilla to the latest upstream. -# (non-released_kernel case only) -%if 0%{?rcrev} - ApplyPatch patch-3.0-rc%{rcrev}.bz2 -%if 0%{?gitrev} - ApplyPatch patch-3.0-rc%{rcrev}-git%{gitrev}.bz2 -%endif -%else -# pre-{base_sublevel+1}-rc1 case -%if 0%{?gitrev} - ApplyPatch patch-3.0-git%{gitrev}.bz2 -%endif -%endif - - cd .. - fi %endif @@ -1076,14 +1023,6 @@ cp -rl vanilla-%{vanillaversion} linux-%{kversion}.%{_target_cpu} cd linux-%{kversion}.%{_target_cpu} -# released_kernel with possible stable updates -%if 0%{?stable_base} -ApplyPatch %{stable_patch_00} -%endif -%if 0%{?stable_rc} -ApplyPatch %{stable_patch_01} -%endif - %if %{using_upstream_branch} ### BRANCH APPLY ### %endif @@ -1117,8 +1056,7 @@ done # Update vanilla to the latest upstream. (2.6.39 -> 3.0) ApplyPatch patch-3.0.bz2 - -ApplyOptionalPatch git-linus.diff +ApplyPatch patch-3.0.1-rc1.bz2 ApplyPatch linux-2.6-makefile-after_link.patch @@ -1259,15 +1197,12 @@ ApplyPatch add-appleir-usb-driver.patch ApplyPatch neuter_intel_microcode_load.patch -ApplyPatch linux-2.6-rt2x00-Add-device-ID-for-RT539F-device.patch - ApplyPatch fix-cdc-ncm-dma-stack-vars.patch ApplyPatch ums-realtek-driver-uses-stack-memory-for-DMA.patch # rhbz#605888 ApplyPatch dmar-disable-when-ricoh-multifunction.patch -ApplyPatch fix-scsi_dispatch_cmd.patch ApplyPatch epoll-fix-spurious-lockdep-warnings.patch ApplyPatch hfsplus-ensure-bio-requests-are-not-smaller-than-the.patch @@ -1886,6 +1821,9 @@ fi # and build. %changelog +* Wed Aug 03 2011 Dave Jones +- Apply patches from patch-3.0.1-rc1 + * Wed Aug 03 2011 John W. Linville - Disable CONFIG_BCMA since no driver currently uses it (rhbz 727796) diff --git a/linux-2.6-rt2x00-Add-device-ID-for-RT539F-device.patch b/linux-2.6-rt2x00-Add-device-ID-for-RT539F-device.patch deleted file mode 100644 index abf01cfe4..000000000 --- a/linux-2.6-rt2x00-Add-device-ID-for-RT539F-device.patch +++ /dev/null @@ -1,23 +0,0 @@ -commit 71e0b38c2914018b01f3f08b43ee9e3328197699 -Author: Gertjan van Wingerde -Date: Wed Jul 6 22:58:55 2011 +0200 - - rt2x00: Add device ID for RT539F device. - - Reported-by: Wim Vander Schelden - Signed-off-by: Gertjan van Wingerde - Signed-off-by: Ivo van Doorn - Signed-off-by: John W. Linville - -diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c -index 5513edf..fd99449 100644 ---- a/drivers/net/wireless/rt2x00/rt2800pci.c -+++ b/drivers/net/wireless/rt2x00/rt2800pci.c -@@ -1160,6 +1160,7 @@ static DEFINE_PCI_DEVICE_TABLE(rt2800pci_device_table) = { - #endif - #ifdef CONFIG_RT2800PCI_RT53XX - { PCI_DEVICE(0x1814, 0x5390) }, -+ { PCI_DEVICE(0x1814, 0x539f) }, - #endif - { 0, } - };