From a3220ccba1af8cee9a8fefe9820b225edc74570b Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 1 Nov 2012 05:23:25 +0000 Subject: [PATCH] Update to 3.2.33 svn path=/dists/sid/linux/; revision=19475 --- debian/changelog | 12 ++- ...t-alloc_slot-for-backchannel-tcp-ops.patch | 44 -------- ...-stack-memory-content-leak-via-UNAME.patch | 60 ----------- ...s-caused-by-recent-commit-Fix-intern.patch | 31 ------ ...ount-for-in-transit-packets-in-the-R.patch | 35 ------ ...s-quirk-for-zotac-zdbox-sd-id12-id13.patch | 35 ------ ...e1000-fix-vlan-processing-regression.patch | 101 ------------------ ...sc-Fix-error-handling-storvsc_host_r.patch | 15 +-- ...sc-Move-the-storage-driver-out-of-th.patch | 67 ++++-------- debian/patches/series | 6 -- 10 files changed, 32 insertions(+), 374 deletions(-) delete mode 100644 debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch delete mode 100644 debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch delete mode 100644 debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch delete mode 100644 debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch delete mode 100644 debian/patches/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch delete mode 100644 debian/patches/e1000-fix-vlan-processing-regression.patch diff --git a/debian/changelog b/debian/changelog index 8f2aeae78..ede2526b5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,15 @@ -linux (3.2.32-2) UNRELEASED; urgency=low +linux (3.2.33-1) UNRELEASED; urgency=low + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.33 + - e1000: fix vlan processing regression (Closes: #690956) + - [x86] drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 + (Closes: #691122) + + [ Ben Hutchings ] * [x86] udeb: Re-add isci to scsi-extra-modules (Closes: #690886; regression of #652897 in version 3.2~rc7-1~experimental.1 due to mis-merge) - * e1000: fix vlan processing regression (Closes: #690956) - * [x86] drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 - (Closes: #691122) * udeb: Add 8021q to nic-extra-modules (Closes: #689159) -- Ben Hutchings Wed, 24 Oct 2012 14:15:57 +0100 diff --git a/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch b/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch deleted file mode 100644 index 9398d87ad..000000000 --- a/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Bryan Schumaker -Date: Mon, 24 Sep 2012 13:39:01 -0400 -Subject: SUNRPC: Set alloc_slot for backchannel tcp ops - -commit 84e28a307e376f271505af65a7b7e212dd6f61f4 upstream. - -f39c1bfb5a03e2d255451bff05be0d7255298fa4 (SUNRPC: Fix a UDP transport -regression) introduced the "alloc_slot" function for xprt operations, -but never created one for the backchannel operations. This patch fixes -a null pointer dereference when mounting NFS over v4.1. - -Call Trace: - [] ? xprt_reserve+0x47/0x50 [sunrpc] - [] call_reserve+0x34/0x60 [sunrpc] - [] __rpc_execute+0x90/0x400 [sunrpc] - [] rpc_async_schedule+0x2a/0x40 [sunrpc] - [] process_one_work+0x139/0x500 - [] ? alloc_worker+0x70/0x70 - [] ? __rpc_execute+0x400/0x400 [sunrpc] - [] worker_thread+0x15e/0x460 - [] ? preempt_schedule+0x49/0x70 - [] ? rescuer_thread+0x230/0x230 - [] kthread+0x93/0xa0 - [] kernel_thread_helper+0x4/0x10 - [] ? kthread_freezable_should_stop+0x70/0x70 - [] ? gs_change+0x13/0x13 - -Signed-off-by: Bryan Schumaker -Signed-off-by: Trond Myklebust -[bwh: Backported to 3.2: adjust context] ---- - net/sunrpc/xprtsock.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/net/sunrpc/xprtsock.c -+++ b/net/sunrpc/xprtsock.c -@@ -2477,6 +2477,7 @@ static struct rpc_xprt_ops xs_tcp_ops = - static struct rpc_xprt_ops bc_tcp_ops = { - .reserve_xprt = xprt_reserve_xprt, - .release_xprt = xprt_release_xprt, -+ .alloc_slot = xprt_alloc_slot, - .buf_alloc = bc_malloc, - .buf_free = bc_free, - .send_request = bc_send_request, diff --git a/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch b/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch deleted file mode 100644 index a8a86de0c..000000000 --- a/debian/patches/bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch +++ /dev/null @@ -1,60 +0,0 @@ -From: Kees Cook -Date: Fri, 19 Oct 2012 13:56:51 -0700 -Subject: [1/2] kernel/sys.c: fix stack memory content leak via UNAME26 - -commit 2702b1526c7278c4d65d78de209a465d4de2885e upstream. - -Calling uname() with the UNAME26 personality set allows a leak of kernel -stack contents. This fixes it by defensively calculating the length of -copy_to_user() call, making the len argument unsigned, and initializing -the stack buffer to zero (now technically unneeded, but hey, overkill). - -CVE-2012-0957 - -Reported-by: PaX Team -Signed-off-by: Kees Cook -Cc: Andi Kleen -Cc: PaX Team -Cc: Brad Spengler -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds ---- - kernel/sys.c | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/kernel/sys.c b/kernel/sys.c -index c5cb5b9..01865c6 100644 ---- a/kernel/sys.c -+++ b/kernel/sys.c -@@ -1265,15 +1265,16 @@ DECLARE_RWSEM(uts_sem); - * Work around broken programs that cannot handle "Linux 3.0". - * Instead we map 3.x to 2.6.40+x, so e.g. 3.0 would be 2.6.40 - */ --static int override_release(char __user *release, int len) -+static int override_release(char __user *release, size_t len) - { - int ret = 0; -- char buf[65]; - - if (current->personality & UNAME26) { -- char *rest = UTS_RELEASE; -+ const char *rest = UTS_RELEASE; -+ char buf[65] = { 0 }; - int ndots = 0; - unsigned v; -+ size_t copy; - - while (*rest) { - if (*rest == '.' && ++ndots >= 3) -@@ -1283,8 +1284,9 @@ static int override_release(char __user *release, int len) - rest++; - } - v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40; -- snprintf(buf, len, "2.6.%u%s", v, rest); -- ret = copy_to_user(release, buf, len); -+ copy = min(sizeof(buf), max_t(size_t, 1, len)); -+ copy = scnprintf(buf, copy, "2.6.%u%s", v, rest); -+ ret = copy_to_user(release, buf, copy + 1); - } - return ret; - } diff --git a/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch b/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch deleted file mode 100644 index f834b424d..000000000 --- a/debian/patches/bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: David Henningsson -Date: Tue, 10 Apr 2012 13:05:29 +0200 -Subject: ALSA: hda - Fix oops caused by recent commit "Fix internal mic for - Lenovo Ideapad U300s" - -commit 83b0c6ba999643ee8ad6329f26e1cdc870e1a920 upstream. - -Make sure we don't dereference the "quirk" pointer when it is null. - -Reported-by: Dan Carpenter -Signed-off-by: David Henningsson -Signed-off-by: Takashi Iwai ---- - sound/pci/hda/patch_conexant.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c -index cbe115b..abb59f4 100644 ---- a/sound/pci/hda/patch_conexant.c -+++ b/sound/pci/hda/patch_conexant.c -@@ -4441,7 +4441,9 @@ static void apply_fixup(struct hda_codec *codec, - struct conexant_spec *spec = codec->spec; - - quirk = snd_pci_quirk_lookup(codec->bus->pci, quirk); -- if (quirk && table[quirk->value]) { -+ if (!quirk) -+ return; -+ if (table[quirk->value]) { - snd_printdd(KERN_INFO "hda_codec: applying pincfg for %s\n", - quirk->name); - apply_pincfg(codec, table[quirk->value]); diff --git a/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch b/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch deleted file mode 100644 index 1cc4be568..000000000 --- a/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: "K. Y. Srinivasan" -Date: Tue, 2 Oct 2012 11:03:31 -0700 -Subject: [SCSI] storvsc: Account for in-transit packets in the RESET path - -commit 5c1b10ab7f93d24f29b5630286e323d1c5802d5c upstream. - -Properly account for I/O in transit before returning from the RESET call. -In the absense of this patch, we could have a situation where the host may -respond to a command that was issued prior to the issuance of the RESET -command at some arbitrary time after responding to the RESET command. -Currently, the host does not do anything with the RESET command. - -Signed-off-by: K. Y. Srinivasan -Signed-off-by: James Bottomley ---- - drivers/scsi/storvsc_drv.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c -index 528d52b..0144078 100644 ---- a/drivers/scsi/storvsc_drv.c -+++ b/drivers/scsi/storvsc_drv.c -@@ -1221,7 +1221,12 @@ static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd) - /* - * At this point, all outstanding requests in the adapter - * should have been flushed out and return to us -+ * There is a potential race here where the host may be in -+ * the process of responding when we return from here. -+ * Just wait for all in-transit packets to be accounted for -+ * before we return from here. - */ -+ storvsc_wait_to_drain(stor_device); - - return SUCCESS; - } diff --git a/debian/patches/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch b/debian/patches/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch deleted file mode 100644 index e5508f9b7..000000000 --- a/debian/patches/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Sjoerd Simons -Date: Fri, 22 Jun 2012 09:43:07 +0200 -Subject: drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 - -commit 9756fe38d10b2bf90c81dc4d2f17d5632e135364 upstream. - -This box claims to have an LVDS interface but doesn't -actually have one. - -Signed-off-by: Sjoerd Simons -Signed-off-by: Daniel Vetter -Signed-off-by: Ben Hutchings ---- - drivers/gpu/drm/i915/intel_lvds.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c -index ab4d647..05fcadb 100644 ---- a/drivers/gpu/drm/i915/intel_lvds.c -+++ b/drivers/gpu/drm/i915/intel_lvds.c -@@ -778,6 +778,14 @@ static const struct dmi_system_id intel_no_lvds[] = { - DMI_MATCH(DMI_BOARD_NAME, "MS-7469"), - }, - }, -+ { -+ .callback = intel_no_lvds_dmi_callback, -+ .ident = "ZOTAC ZBOXSD-ID12/ID13", -+ .matches = { -+ DMI_MATCH(DMI_BOARD_VENDOR, "ZOTAC"), -+ DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"), -+ }, -+ }, - - { } /* terminating entry */ - }; diff --git a/debian/patches/e1000-fix-vlan-processing-regression.patch b/debian/patches/e1000-fix-vlan-processing-regression.patch deleted file mode 100644 index 86407bd43..000000000 --- a/debian/patches/e1000-fix-vlan-processing-regression.patch +++ /dev/null @@ -1,101 +0,0 @@ -From: Jiri Pirko -Date: Tue, 20 Mar 2012 18:10:01 +0000 -Subject: e1000: fix vlan processing regression - -commit 52f5509fe8ccb607ff9b84ad618f244262336475 upstream. - -This patch fixes a regression introduced by commit "e1000: do vlan -cleanup (799d531)". - -Apparently some e1000 chips (not mine) are sensitive about the order of -setting vlan filter and vlan stripping/inserting functionality. So this -patch changes the order so it's the same as before vlan cleanup. - -Reported-by: Ben Greear -Signed-off-by: Jiri Pirko -Tested-by: Ben Greear -Tested-by: Aaron Brown -Signed-off-by: Jeff Kirsher -[Jonathan Nieder: It doesn't apply cleanly to kernels before -v3.3-rc1~182^2~581 (net: introduce and use netdev_features_t for -device features sets) but a backport is straightforward.] -Signed-off-by: Jonathan Nieder -Tested-by: Andrey Jr. Melnikov -Signed-off-by: Ben Hutchings ---- - drivers/net/ethernet/intel/e1000/e1000_main.c | 76 +++++++++++++++------------ - 1 file changed, 42 insertions(+), 34 deletions(-) - ---- a/drivers/net/ethernet/intel/e1000/e1000_main.c -+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c -@@ -168,6 +168,8 @@ static int e1000_82547_fifo_workaround(s - - static bool e1000_vlan_used(struct e1000_adapter *adapter); - static void e1000_vlan_mode(struct net_device *netdev, u32 features); -+static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter, -+ bool filter_on); - static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); - static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); - static void e1000_restore_vlan(struct e1000_adapter *adapter); -@@ -1219,7 +1221,7 @@ static int __devinit e1000_probe(struct - if (err) - goto err_register; - -- e1000_vlan_mode(netdev, netdev->features); -+ e1000_vlan_filter_on_off(adapter, false); - - /* print bus type/speed/width info */ - e_info(probe, "(PCI%s:%dMHz:%d-bit) %pM\n", -@@ -4553,6 +4555,21 @@ static bool e1000_vlan_used(struct e1000 - return false; - } - -+static void __e1000_vlan_mode(struct e1000_adapter *adapter, u32 features) -+{ -+ struct e1000_hw *hw = &adapter->hw; -+ u32 ctrl; -+ -+ ctrl = er32(CTRL); -+ if (features & NETIF_F_HW_VLAN_RX) { -+ /* enable VLAN tag insert/strip */ -+ ctrl |= E1000_CTRL_VME; -+ } else { -+ /* disable VLAN tag insert/strip */ -+ ctrl &= ~E1000_CTRL_VME; -+ } -+ ew32(CTRL, ctrl); -+} - static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter, - bool filter_on) - { -@@ -4562,6 +4579,7 @@ static void e1000_vlan_filter_on_off(str - if (!test_bit(__E1000_DOWN, &adapter->flags)) - e1000_irq_disable(adapter); - -+ __e1000_vlan_mode(adapter, adapter->netdev->features); - if (filter_on) { - /* enable VLAN receive filtering */ - rctl = er32(RCTL); -@@ -4584,21 +4602,11 @@ static void e1000_vlan_filter_on_off(str - static void e1000_vlan_mode(struct net_device *netdev, u32 features) - { - struct e1000_adapter *adapter = netdev_priv(netdev); -- struct e1000_hw *hw = &adapter->hw; -- u32 ctrl; - - if (!test_bit(__E1000_DOWN, &adapter->flags)) - e1000_irq_disable(adapter); - -- ctrl = er32(CTRL); -- if (features & NETIF_F_HW_VLAN_RX) { -- /* enable VLAN tag insert/strip */ -- ctrl |= E1000_CTRL_VME; -- } else { -- /* disable VLAN tag insert/strip */ -- ctrl &= ~E1000_CTRL_VME; -- } -- ew32(CTRL, ctrl); -+ __e1000_vlan_mode(adapter, features); - - if (!test_bit(__E1000_DOWN, &adapter->flags)) - e1000_irq_enable(adapter); diff --git a/debian/patches/features/x86/hyperv/0006-Staging-hv-storvsc-Fix-error-handling-storvsc_host_r.patch b/debian/patches/features/x86/hyperv/0006-Staging-hv-storvsc-Fix-error-handling-storvsc_host_r.patch index 160b124af..546e502a4 100644 --- a/debian/patches/features/x86/hyperv/0006-Staging-hv-storvsc-Fix-error-handling-storvsc_host_r.patch +++ b/debian/patches/features/x86/hyperv/0006-Staging-hv-storvsc-Fix-error-handling-storvsc_host_r.patch @@ -16,11 +16,9 @@ Signed-off-by: Greg Kroah-Hartman drivers/staging/hv/storvsc_drv.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) -diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c -index e16c7a3..a145245 100644 --- a/drivers/staging/hv/storvsc_drv.c +++ b/drivers/staging/hv/storvsc_drv.c -@@ -1019,7 +1019,7 @@ static int storvsc_host_reset(struct hv_device *device) +@@ -1019,7 +1019,7 @@ static int storvsc_host_reset(struct hv_ stor_device = get_out_stor_device(device); if (!stor_device) @@ -29,7 +27,7 @@ index e16c7a3..a145245 100644 request = &stor_device->reset_request; vstor_packet = &request->vstor_packet; -@@ -1036,13 +1036,11 @@ static int storvsc_host_reset(struct hv_device *device) +@@ -1036,13 +1036,11 @@ static int storvsc_host_reset(struct hv_ VM_PKT_DATA_INBAND, VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED); if (ret != 0) @@ -46,9 +44,9 @@ index e16c7a3..a145245 100644 /* -@@ -1050,8 +1048,7 @@ static int storvsc_host_reset(struct hv_device *device) - * should have been flushed out and return to us +@@ -1055,8 +1053,7 @@ static int storvsc_host_reset(struct hv_ */ + storvsc_wait_to_drain(stor_device); -cleanup: - return ret; @@ -56,7 +54,7 @@ index e16c7a3..a145245 100644 } -@@ -1060,16 +1057,11 @@ cleanup: +@@ -1065,16 +1062,11 @@ cleanup: */ static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd) { @@ -74,6 +72,3 @@ index e16c7a3..a145245 100644 } --- -1.7.9.5 - diff --git a/debian/patches/features/x86/hyperv/0067-Staging-hv-storvsc-Move-the-storage-driver-out-of-th.patch b/debian/patches/features/x86/hyperv/0067-Staging-hv-storvsc-Move-the-storage-driver-out-of-th.patch index 169991052..737615d1f 100644 --- a/debian/patches/features/x86/hyperv/0067-Staging-hv-storvsc-Move-the-storage-driver-out-of-th.patch +++ b/debian/patches/features/x86/hyperv/0067-Staging-hv-storvsc-Move-the-storage-driver-out-of-th.patch @@ -19,28 +19,13 @@ directory. Signed-off-by: K. Y. Srinivasan Acked-by: James Bottomley Signed-off-by: Greg Kroah-Hartman +[bwh: Adjusted to apply after commit 5c1b10ab7f93d24f29b5630286e323d1c5802d5c + ('storvsc: Account for in-transit packets in the RESET path') backported + in 3.2.33, moving that fix to the new file] --- - drivers/scsi/Kconfig | 7 + - drivers/scsi/Makefile | 3 + - drivers/scsi/storvsc_drv.c | 1548 ++++++++++++++++++++++++++++++++++++++ - drivers/staging/Kconfig | 2 - - drivers/staging/Makefile | 1 - - drivers/staging/hv/Kconfig | 5 - - drivers/staging/hv/Makefile | 3 - - drivers/staging/hv/TODO | 5 - - drivers/staging/hv/storvsc_drv.c | 1548 -------------------------------------- - 9 files changed, 1558 insertions(+), 1564 deletions(-) - create mode 100644 drivers/scsi/storvsc_drv.c - delete mode 100644 drivers/staging/hv/Kconfig - delete mode 100644 drivers/staging/hv/Makefile - delete mode 100644 drivers/staging/hv/TODO - delete mode 100644 drivers/staging/hv/storvsc_drv.c - -diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig -index 06ea3bc..4910269 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig -@@ -662,6 +662,13 @@ config VMWARE_PVSCSI +@@ -663,6 +663,13 @@ config VMWARE_PVSCSI To compile this driver as a module, choose M here: the module will be called vmw_pvscsi. @@ -54,11 +39,9 @@ index 06ea3bc..4910269 100644 config LIBFC tristate "LibFC module" select SCSI_FC_ATTRS -diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile -index 2b88749..e4c1a69 100644 --- a/drivers/scsi/Makefile +++ b/drivers/scsi/Makefile -@@ -142,6 +142,7 @@ obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscsi.o bnx2i/ +@@ -142,6 +142,7 @@ obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscs obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/ obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o obj-$(CONFIG_VMWARE_PVSCSI) += vmw_pvscsi.o @@ -66,7 +49,7 @@ index 2b88749..e4c1a69 100644 obj-$(CONFIG_ARM) += arm/ -@@ -170,6 +171,8 @@ scsi_mod-$(CONFIG_SCSI_PROC_FS) += scsi_proc.o +@@ -170,6 +171,8 @@ scsi_mod-$(CONFIG_SCSI_PROC_FS) += scsi_ scsi_mod-y += scsi_trace.o scsi_mod-$(CONFIG_PM) += scsi_pm.o @@ -75,12 +58,9 @@ index 2b88749..e4c1a69 100644 scsi_tgt-y += scsi_tgt_lib.o scsi_tgt_if.o sd_mod-objs := sd.o -diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c -new file mode 100644 -index 0000000..695ffc3 --- /dev/null +++ b/drivers/scsi/storvsc_drv.c -@@ -0,0 +1,1548 @@ +@@ -0,0 +1,1553 @@ +/* + * Copyright (c) 2009, Microsoft Corporation. + * @@ -1294,7 +1274,12 @@ index 0000000..695ffc3 + /* + * At this point, all outstanding requests in the adapter + * should have been flushed out and return to us ++ * There is a potential race here where the host may be in ++ * the process of responding when we return from here. ++ * Just wait for all in-transit packets to be accounted for ++ * before we return from here. + */ ++ storvsc_wait_to_drain(stor_device); + + return SUCCESS; +} @@ -1629,8 +1614,6 @@ index 0000000..695ffc3 +MODULE_DESCRIPTION("Microsoft Hyper-V virtual storage driver"); +module_init(storvsc_drv_init); +module_exit(storvsc_drv_exit); -diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig -index 25cdff3..ea57692 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -80,8 +80,6 @@ source "drivers/staging/vt6655/Kconfig" @@ -1642,11 +1625,9 @@ index 25cdff3..ea57692 100644 source "drivers/staging/vme/Kconfig" source "drivers/staging/sep/Kconfig" -diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile -index a25f3f2..d9e474d 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile -@@ -31,7 +31,6 @@ obj-$(CONFIG_USB_SERIAL_QUATECH_USB2) += quatech_usb2/ +@@ -31,7 +31,6 @@ obj-$(CONFIG_USB_SERIAL_QUATECH_USB2) += obj-$(CONFIG_OCTEON_ETHERNET) += octeon/ obj-$(CONFIG_VT6655) += vt6655/ obj-$(CONFIG_VT6656) += vt6656/ @@ -1654,9 +1635,6 @@ index a25f3f2..d9e474d 100644 obj-$(CONFIG_VME_BUS) += vme/ obj-$(CONFIG_DX_SEP) += sep/ obj-$(CONFIG_IIO) += iio/ -diff --git a/drivers/staging/hv/Kconfig b/drivers/staging/hv/Kconfig -deleted file mode 100644 -index 60ac479..0000000 --- a/drivers/staging/hv/Kconfig +++ /dev/null @@ -1,5 +0,0 @@ @@ -1665,18 +1643,12 @@ index 60ac479..0000000 - depends on HYPERV && SCSI - help - Select this option to enable the Hyper-V virtual storage driver. -diff --git a/drivers/staging/hv/Makefile b/drivers/staging/hv/Makefile -deleted file mode 100644 -index af95a6b..0000000 --- a/drivers/staging/hv/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-$(CONFIG_HYPERV_STORAGE) += hv_storvsc.o - -hv_storvsc-y := storvsc_drv.o -diff --git a/drivers/staging/hv/TODO b/drivers/staging/hv/TODO -deleted file mode 100644 -index dea7d92..0000000 --- a/drivers/staging/hv/TODO +++ /dev/null @@ -1,5 +0,0 @@ @@ -1685,12 +1657,9 @@ index dea7d92..0000000 - -Please send patches for this code to Greg Kroah-Hartman , -Haiyang Zhang , and K. Y. Srinivasan -diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c -deleted file mode 100644 -index 695ffc3..0000000 --- a/drivers/staging/hv/storvsc_drv.c +++ /dev/null -@@ -1,1548 +0,0 @@ +@@ -1,1553 +0,0 @@ -/* - * Copyright (c) 2009, Microsoft Corporation. - * @@ -2904,7 +2873,12 @@ index 695ffc3..0000000 - /* - * At this point, all outstanding requests in the adapter - * should have been flushed out and return to us +- * There is a potential race here where the host may be in +- * the process of responding when we return from here. +- * Just wait for all in-transit packets to be accounted for +- * before we return from here. - */ +- storvsc_wait_to_drain(stor_device); - - return SUCCESS; -} @@ -3239,6 +3213,3 @@ index 695ffc3..0000000 -MODULE_DESCRIPTION("Microsoft Hyper-V virtual storage driver"); -module_init(storvsc_drv_init); -module_exit(storvsc_drv_exit); --- -1.7.9.5 - diff --git a/debian/patches/series b/debian/patches/series index 34ade1492..00b0b5ad7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -399,14 +399,8 @@ bugfix/x86/drm-i915-i8xx-interrupt-handler.patch features/arm/ahci-Add-JMicron-362-device-IDs.patch bugfix/all/speakup-lower-default-software-speech-rate.patch debian/perf-hide-abi-change-in-3.2.30.patch -bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch debian/iwlwifi-do-not-request-unreleased-firmware.patch debian/hid-avoid-ABI-change-in-3.2.31.patch debian/xfrm-avoid-ABI-change-in-3.2.31.patch -bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch -bugfix/all/kernel-sys.c-fix-stack-memory-content-leak-via-UNAME.patch bugfix/all/use-clamp_t-in-UNAME26-fix.patch -bugfix/x86/ALSA-hda-Fix-oops-caused-by-recent-commit-Fix-intern.patch debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch -e1000-fix-vlan-processing-regression.patch -drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch