From: Greg Kroah-Hartman Date: Fri, 1 Jun 2012 08:54:36 +0000 (+0800) Subject: 3.0-stable patches X-Git-Tag: v3.0.34~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f91d4d9c08c301de49661a6a32e1e406d5ab4ea8;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches 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 --- 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 index 00000000000..2fe5ab76651 --- /dev/null +++ b/queue-3.0/mac80211-fix-addba-declined-after-suspend-with-wowlan.patch @@ -0,0 +1,51 @@ +From 7b21aea04d084916ac4e0e8852dcc9cd60ec0d1d Mon Sep 17 00:00:00 2001 +From: Eyal Shapira +Date: Tue, 29 May 2012 02:00:22 -0700 +Subject: mac80211: fix ADDBA declined after suspend with wowlan + +From: Eyal Shapira + +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 +Reviewed-by: Johannes Berg +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..5168a296988 --- /dev/null +++ b/queue-3.0/nfsv4-map-nfs4err_share_denied-into-an-eacces-error-instead-of-eio.patch @@ -0,0 +1,34 @@ +From fb13bfa7e1bcfdcfdece47c24b62f1a1cad957e9 Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +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 + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..21ae2b2f3d4 --- /dev/null +++ b/queue-3.0/parisc-fix-boot-failure-on-32-bit-systems-caused-by-branch-stubs-placed-before-.text.patch @@ -0,0 +1,46 @@ +From ed5fb2471b7060767957fb964eb1aaec71533ab1 Mon Sep 17 00:00:00 2001 +From: John David Anglin +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 + +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 +Signed-off-by: James Bottomley +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..1796382bbb7 --- /dev/null +++ b/queue-3.0/parisc-fix-tlb-fault-path-on-pa2.0-narrow-systems.patch @@ -0,0 +1,140 @@ +From 2f649c1f6f0fef445ce79a19b79e5ce8fe9d7f19 Mon Sep 17 00:00:00 2001 +From: James Bottomley +Date: Mon, 21 May 2012 07:49:01 +0100 +Subject: PARISC: fix TLB fault path on PA2.0 narrow systems + +From: James Bottomley + +commit 2f649c1f6f0fef445ce79a19b79e5ce8fe9d7f19 upstream. + +commit 5e185581d7c46ddd33cd9c01106d1fc86efb9376 +Author: James Bottomley + + [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 +Signed-off-by: James Bottomley +Signed-off-by: Greg Kroah-Hartman + +--- + 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 + diff --git a/queue-3.0/series b/queue-3.0/series index 801dd57e216..6deebfb7fee 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -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 index 00000000000..e8cdbb7b212 --- /dev/null +++ b/queue-3.0/solos-pci-fix-dma-support.patch @@ -0,0 +1,49 @@ +From b4bd8ad9bb311e8536f726f7a633620ccd358cde Mon Sep 17 00:00:00 2001 +From: David Woodhouse +Date: Thu, 24 May 2012 04:58:27 +0000 +Subject: solos-pci: Fix DMA support + +From: David Woodhouse + +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 +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + 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;