]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Jun 2012 08:54:36 +0000 (16:54 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Jun 2012 08:54:36 +0000 (16:54 +0800)
added patches:
mac80211-fix-addba-declined-after-suspend-with-wowlan.patch
nfsv4-map-nfs4err_share_denied-into-an-eacces-error-instead-of-eio.patch
parisc-fix-boot-failure-on-32-bit-systems-caused-by-branch-stubs-placed-before-.text.patch
parisc-fix-tlb-fault-path-on-pa2.0-narrow-systems.patch
solos-pci-fix-dma-support.patch

queue-3.0/mac80211-fix-addba-declined-after-suspend-with-wowlan.patch [new file with mode: 0644]
queue-3.0/nfsv4-map-nfs4err_share_denied-into-an-eacces-error-instead-of-eio.patch [new file with mode: 0644]
queue-3.0/parisc-fix-boot-failure-on-32-bit-systems-caused-by-branch-stubs-placed-before-.text.patch [new file with mode: 0644]
queue-3.0/parisc-fix-tlb-fault-path-on-pa2.0-narrow-systems.patch [new file with mode: 0644]
queue-3.0/series
queue-3.0/solos-pci-fix-dma-support.patch [new file with mode: 0644]

diff --git a/queue-3.0/mac80211-fix-addba-declined-after-suspend-with-wowlan.patch b/queue-3.0/mac80211-fix-addba-declined-after-suspend-with-wowlan.patch
new file mode 100644 (file)
index 0000000..2fe5ab7
--- /dev/null
@@ -0,0 +1,51 @@
+From 7b21aea04d084916ac4e0e8852dcc9cd60ec0d1d Mon Sep 17 00:00:00 2001
+From: Eyal Shapira <eyal@wizery.com>
+Date: Tue, 29 May 2012 02:00:22 -0700
+Subject: mac80211: fix ADDBA declined after suspend with wowlan
+
+From: Eyal Shapira <eyal@wizery.com>
+
+commit 7b21aea04d084916ac4e0e8852dcc9cd60ec0d1d upstream.
+
+WLAN_STA_BLOCK_BA is set while suspending but doesn't get cleared
+when resuming in case of wowlan. This causes further ADDBA requests
+received to be rejected. Fix it by clearing it in the wowlan path
+as well.
+
+Signed-off-by: Eyal Shapira <eyal@wizery.com>
+Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/util.c |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/net/mac80211/util.c
++++ b/net/mac80211/util.c
+@@ -1254,6 +1254,12 @@ int ieee80211_reconfig(struct ieee80211_
+               }
+       }
++      /* add back keys */
++      list_for_each_entry(sdata, &local->interfaces, list)
++              if (ieee80211_sdata_running(sdata))
++                      ieee80211_enable_keys(sdata);
++
++ wake_up:
+       /*
+        * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
+        * sessions can be established after a resume.
+@@ -1275,12 +1281,6 @@ int ieee80211_reconfig(struct ieee80211_
+               mutex_unlock(&local->sta_mtx);
+       }
+-      /* add back keys */
+-      list_for_each_entry(sdata, &local->interfaces, list)
+-              if (ieee80211_sdata_running(sdata))
+-                      ieee80211_enable_keys(sdata);
+-
+- wake_up:
+       ieee80211_wake_queues_by_reason(hw,
+                       IEEE80211_QUEUE_STOP_REASON_SUSPEND);
diff --git a/queue-3.0/nfsv4-map-nfs4err_share_denied-into-an-eacces-error-instead-of-eio.patch b/queue-3.0/nfsv4-map-nfs4err_share_denied-into-an-eacces-error-instead-of-eio.patch
new file mode 100644 (file)
index 0000000..5168a29
--- /dev/null
@@ -0,0 +1,34 @@
+From fb13bfa7e1bcfdcfdece47c24b62f1a1cad957e9 Mon Sep 17 00:00:00 2001
+From: Trond Myklebust <Trond.Myklebust@netapp.com>
+Date: Mon, 28 May 2012 11:36:28 -0400
+Subject: NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO
+
+From: Trond Myklebust <Trond.Myklebust@netapp.com>
+
+commit fb13bfa7e1bcfdcfdece47c24b62f1a1cad957e9 upstream.
+
+If a file OPEN is denied due to a share lock, the resulting
+NFS4ERR_SHARE_DENIED is currently mapped to the default EIO.
+This patch adds a more appropriate mapping, and brings Linux
+into line with what Solaris 10 does.
+
+See https://bugzilla.kernel.org/show_bug.cgi?id=43286
+
+Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/nfs/nfs4proc.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/fs/nfs/nfs4proc.c
++++ b/fs/nfs/nfs4proc.c
+@@ -94,6 +94,8 @@ static int nfs4_map_errors(int err)
+       case -NFS4ERR_BADOWNER:
+       case -NFS4ERR_BADNAME:
+               return -EINVAL;
++      case -NFS4ERR_SHARE_DENIED:
++              return -EACCES;
+       default:
+               dprintk("%s could not handle NFSv4 error %d\n",
+                               __func__, -err);
diff --git a/queue-3.0/parisc-fix-boot-failure-on-32-bit-systems-caused-by-branch-stubs-placed-before-.text.patch b/queue-3.0/parisc-fix-boot-failure-on-32-bit-systems-caused-by-branch-stubs-placed-before-.text.patch
new file mode 100644 (file)
index 0000000..21ae2b2
--- /dev/null
@@ -0,0 +1,46 @@
+From ed5fb2471b7060767957fb964eb1aaec71533ab1 Mon Sep 17 00:00:00 2001
+From: John David Anglin <dave.anglin@bell.net>
+Date: Thu, 17 May 2012 10:34:34 -0400
+Subject: PARISC: fix boot failure on 32-bit systems caused by branch stubs placed before .text
+
+From: John David Anglin <dave.anglin@bell.net>
+
+commit ed5fb2471b7060767957fb964eb1aaec71533ab1 upstream.
+
+In certain configurations, the resulting kernel becomes too large to boot
+because the linker places the long branch stubs for the merged .text section
+at the very start of the image.  As a result, the initial transfer of control
+jumps to an unexpected location.  Fix this by placing the head text in a
+separate section so the stubs for .text are not at the start of the image.
+
+Signed-off-by: John David Anglin <dave.anglin@bell.net>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/parisc/kernel/vmlinux.lds.S |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/arch/parisc/kernel/vmlinux.lds.S
++++ b/arch/parisc/kernel/vmlinux.lds.S
+@@ -50,8 +50,10 @@ SECTIONS
+       . = KERNEL_BINARY_TEXT_START;
+       _text = .;              /* Text and read-only data */
+-      .text ALIGN(16) : {
++      .head ALIGN(16) : {
+               HEAD_TEXT
++      } = 0
++      .text ALIGN(16) : {
+               TEXT_TEXT
+               SCHED_TEXT
+               LOCK_TEXT
+@@ -65,7 +67,7 @@ SECTIONS
+               *(.fixup)
+               *(.lock.text)           /* out-of-line lock text */
+               *(.gnu.warning)
+-      } = 0
++      }
+       /* End of text section */
+       _etext = .;
diff --git a/queue-3.0/parisc-fix-tlb-fault-path-on-pa2.0-narrow-systems.patch b/queue-3.0/parisc-fix-tlb-fault-path-on-pa2.0-narrow-systems.patch
new file mode 100644 (file)
index 0000000..1796382
--- /dev/null
@@ -0,0 +1,140 @@
+From 2f649c1f6f0fef445ce79a19b79e5ce8fe9d7f19 Mon Sep 17 00:00:00 2001
+From: James Bottomley <JBottomley@Parallels.com>
+Date: Mon, 21 May 2012 07:49:01 +0100
+Subject: PARISC: fix TLB fault path on PA2.0 narrow systems
+
+From: James Bottomley <JBottomley@Parallels.com>
+
+commit 2f649c1f6f0fef445ce79a19b79e5ce8fe9d7f19 upstream.
+
+commit 5e185581d7c46ddd33cd9c01106d1fc86efb9376
+Author: James Bottomley <JBottomley@Parallels.com>
+
+    [PARISC] fix PA1.1 oops on boot
+
+Didn't quite fix the crash on boot.  It moved it from PA1.1 processors to
+PA2.0 narrow kernels.  The final fix is to make sure the [id]tlb_miss_20 paths
+also work.  Even on narrow systems, these paths require using the wide
+instructions becuase the tlb insertion format is wide.  Fix this by
+conditioning the dep[wd],z on whether we're being called from _11 or _20[w]
+paths.
+
+Tested-by: Helge Deller <deller@gmx.de>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/parisc/kernel/entry.S |   30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+--- a/arch/parisc/kernel/entry.S
++++ b/arch/parisc/kernel/entry.S
+@@ -552,7 +552,7 @@
+        * entry (identifying the physical page) and %r23 up with
+        * the from tlb entry (or nothing if only a to entry---for
+        * clear_user_page_asm) */
+-      .macro          do_alias        spc,tmp,tmp1,va,pte,prot,fault
++      .macro          do_alias        spc,tmp,tmp1,va,pte,prot,fault,patype
+       cmpib,COND(<>),n 0,\spc,\fault
+       ldil            L%(TMPALIAS_MAP_START),\tmp
+ #if defined(CONFIG_64BIT) && (TMPALIAS_MAP_START >= 0x80000000)
+@@ -581,11 +581,15 @@
+        */
+       cmpiclr,=       0x01,\tmp,%r0
+       ldi             (_PAGE_DIRTY|_PAGE_READ|_PAGE_WRITE),\prot
+-#ifdef CONFIG_64BIT
++.ifc \patype,20
+       depd,z          \prot,8,7,\prot
+-#else
++.else
++.ifc \patype,11
+       depw,z          \prot,8,7,\prot
+-#endif
++.else
++      .error "undefined PA type to do_alias"
++.endif
++.endif
+       /*
+        * OK, it is in the temp alias region, check whether "from" or "to".
+        * Check "subtle" note in pacache.S re: r23/r26.
+@@ -1189,7 +1193,7 @@ dtlb_miss_20w:
+       nop
+ dtlb_check_alias_20w:
+-      do_alias        spc,t0,t1,va,pte,prot,dtlb_fault
++      do_alias        spc,t0,t1,va,pte,prot,dtlb_fault,20
+       idtlbt          pte,prot
+@@ -1213,7 +1217,7 @@ nadtlb_miss_20w:
+       nop
+ nadtlb_check_alias_20w:
+-      do_alias        spc,t0,t1,va,pte,prot,nadtlb_emulate
++      do_alias        spc,t0,t1,va,pte,prot,nadtlb_emulate,20
+       idtlbt          pte,prot
+@@ -1245,7 +1249,7 @@ dtlb_miss_11:
+       nop
+ dtlb_check_alias_11:
+-      do_alias        spc,t0,t1,va,pte,prot,dtlb_fault
++      do_alias        spc,t0,t1,va,pte,prot,dtlb_fault,11
+       idtlba          pte,(va)
+       idtlbp          prot,(va)
+@@ -1277,7 +1281,7 @@ nadtlb_miss_11:
+       nop
+ nadtlb_check_alias_11:
+-      do_alias        spc,t0,t1,va,pte,prot,nadtlb_emulate
++      do_alias        spc,t0,t1,va,pte,prot,nadtlb_emulate,11
+       idtlba          pte,(va)
+       idtlbp          prot,(va)
+@@ -1304,7 +1308,7 @@ dtlb_miss_20:
+       nop
+ dtlb_check_alias_20:
+-      do_alias        spc,t0,t1,va,pte,prot,dtlb_fault
++      do_alias        spc,t0,t1,va,pte,prot,dtlb_fault,20
+       
+       idtlbt          pte,prot
+@@ -1330,7 +1334,7 @@ nadtlb_miss_20:
+       nop
+ nadtlb_check_alias_20:
+-      do_alias        spc,t0,t1,va,pte,prot,nadtlb_emulate
++      do_alias        spc,t0,t1,va,pte,prot,nadtlb_emulate,20
+       idtlbt          pte,prot
+@@ -1457,7 +1461,7 @@ naitlb_miss_20w:
+       nop
+ naitlb_check_alias_20w:
+-      do_alias        spc,t0,t1,va,pte,prot,naitlb_fault
++      do_alias        spc,t0,t1,va,pte,prot,naitlb_fault,20
+       iitlbt          pte,prot
+@@ -1511,7 +1515,7 @@ naitlb_miss_11:
+       nop
+ naitlb_check_alias_11:
+-      do_alias        spc,t0,t1,va,pte,prot,itlb_fault
++      do_alias        spc,t0,t1,va,pte,prot,itlb_fault,11
+       iitlba          pte,(%sr0, va)
+       iitlbp          prot,(%sr0, va)
+@@ -1557,7 +1561,7 @@ naitlb_miss_20:
+       nop
+ naitlb_check_alias_20:
+-      do_alias        spc,t0,t1,va,pte,prot,naitlb_fault
++      do_alias        spc,t0,t1,va,pte,prot,naitlb_fault,20
+       iitlbt          pte,prot
index 801dd57e2164e65acd3f705f487720cafb41f47e..6deebfb7fee2238b0caa2717ea5dc479bbf3641d 100644 (file)
@@ -6,3 +6,8 @@ mm-fix-faulty-initialization-in-vmalloc_init.patch
 iwlwifi-update-bt-traffic-load-states-correctly.patch
 cifs-include-backup-intent-search-flags-during-searches-try-2.patch
 cifs-fix-oops-while-traversing-open-file-list-try-4.patch
+parisc-fix-boot-failure-on-32-bit-systems-caused-by-branch-stubs-placed-before-.text.patch
+parisc-fix-tlb-fault-path-on-pa2.0-narrow-systems.patch
+solos-pci-fix-dma-support.patch
+mac80211-fix-addba-declined-after-suspend-with-wowlan.patch
+nfsv4-map-nfs4err_share_denied-into-an-eacces-error-instead-of-eio.patch
diff --git a/queue-3.0/solos-pci-fix-dma-support.patch b/queue-3.0/solos-pci-fix-dma-support.patch
new file mode 100644 (file)
index 0000000..e8cdbb7
--- /dev/null
@@ -0,0 +1,49 @@
+From b4bd8ad9bb311e8536f726f7a633620ccd358cde Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2@infradead.org>
+Date: Thu, 24 May 2012 04:58:27 +0000
+Subject: solos-pci: Fix DMA support
+
+From: David Woodhouse <dwmw2@infradead.org>
+
+commit b4bd8ad9bb311e8536f726f7a633620ccd358cde upstream.
+
+DMA support has finally made its way to the top of the TODO list, having
+realised that a Geode using MMIO can't keep up with two ADSL2+ lines
+each running at 21Mb/s.
+
+This patch fixes a couple of bugs in the DMA support in the driver, so
+once the corresponding FPGA update is complete and tested everything
+should work properly.
+
+We weren't storing the currently-transmitting skb, so we were never
+unmapping it and never freeing/popping it when the TX was done.
+And the addition of pci_set_master() is fairly self-explanatory.
+
+Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/atm/solos-pci.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/atm/solos-pci.c
++++ b/drivers/atm/solos-pci.c
+@@ -984,6 +984,7 @@ static uint32_t fpga_tx(struct solos_car
+                       } else if (skb && card->using_dma) {
+                               SKB_CB(skb)->dma_addr = pci_map_single(card->dev, skb->data,
+                                                                      skb->len, PCI_DMA_TODEVICE);
++                              card->tx_skb[port] = skb;
+                               iowrite32(SKB_CB(skb)->dma_addr,
+                                         card->config_regs + TX_DMA_ADDR(port));
+                       }
+@@ -1152,7 +1153,8 @@ static int fpga_probe(struct pci_dev *de
+               db_fpga_upgrade = db_firmware_upgrade = 0;
+       }
+-      if (card->fpga_version >= DMA_SUPPORTED){
++      if (card->fpga_version >= DMA_SUPPORTED) {
++              pci_set_master(dev);
+               card->using_dma = 1;
+       } else {
+               card->using_dma = 0;