--- /dev/null
+From 3bf3f8b19d2bfccc40f13c456bf339fd8f535ebc Mon Sep 17 00:00:00 2001
+From: "Luck, Tony" <tony.luck@intel.com>
+Date: Fri, 21 Oct 2011 14:42:55 -0700
+Subject: ACPI atomicio: Convert width in bits to bytes in __acpi_ioremap_fast()
+
+From: "Luck, Tony" <tony.luck@intel.com>
+
+commit 3bf3f8b19d2bfccc40f13c456bf339fd8f535ebc upstream.
+
+Callers to __acpi_ioremap_fast() pass the bit_width that they found in the
+acpi_generic_address structure. Convert from bits to bytes when passing to
+__acpi_find_iomap() - as it wants to see bytes, not bits.
+
+Signed-off-by: Tony Luck <tony.luck@intel.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/atomicio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/acpi/atomicio.c
++++ b/drivers/acpi/atomicio.c
+@@ -76,7 +76,7 @@ static void __iomem *__acpi_ioremap_fast
+ {
+ struct acpi_iomap *map;
+
+- map = __acpi_find_iomap(paddr, size);
++ map = __acpi_find_iomap(paddr, size/8);
+ if (map)
+ return map->vaddr + (paddr - map->paddr);
+ else
--- /dev/null
+From c1056b42a87b59375f8f81a92ef029165f44fcce Mon Sep 17 00:00:00 2001
+From: Bart Van Assche <bvanassche@acm.org>
+Date: Wed, 2 Nov 2011 20:16:05 +0100
+Subject: ACPI: Fix CONFIG_ACPI_DOCK=n compiler warning
+
+From: Bart Van Assche <bvanassche@acm.org>
+
+commit c1056b42a87b59375f8f81a92ef029165f44fcce upstream.
+
+Recently the ACPI ops structs were constified but the inline version
+of register_hotplug_dock_device() was overlooked (see also commit
+9c8b04b, June 25 2011). Update the inline function
+register_hotplug_dock_device() that is enabled with
+CONFIG_ACPI_DOCK=n too. This patch fixes at least the following
+compiler warnings:
+
+drivers/ata/libata-acpi.c: In function .ata_acpi_associate.:
+drivers/ata/libata-acpi.c:266:11: warning: passing argument 2 of .register_hotplug_dock_device. discards qualifiers from pointer target type
+include/acpi/acpi_drivers.h:146:19: note: expected .struct acpi_dock_ops *. but argument is of type .const struct acpi_dock_ops *.
+drivers/ata/libata-acpi.c:275:11: warning: passing argument 2 of .register_hotplug_dock_device. discards qualifiers from pointer target type
+include/acpi/acpi_drivers.h:146:19: note: expected .struct acpi_dock_ops *. but argument is of type .const struct acpi_dock_ops *.
+
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/acpi/acpi_drivers.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/acpi/acpi_drivers.h
++++ b/include/acpi/acpi_drivers.h
+@@ -144,7 +144,7 @@ static inline void unregister_dock_notif
+ {
+ }
+ static inline int register_hotplug_dock_device(acpi_handle handle,
+- struct acpi_dock_ops *ops,
++ const struct acpi_dock_ops *ops,
+ void *context)
+ {
+ return -ENODEV;
--- /dev/null
+From 98fb2cc115b4ef1ea0a2d87a170c183bd395dd6c Mon Sep 17 00:00:00 2001
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Date: Mon, 24 Oct 2011 18:13:40 +0530
+Subject: ath9k_hw: Update AR9485 initvals to fix system hang issue
+
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+
+commit 98fb2cc115b4ef1ea0a2d87a170c183bd395dd6c upstream.
+
+This patch fixes system hang when resuming from S3 state
+and lower rate sens failure issue.
+
+Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath/ath9k/ar9485_initvals.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9485_initvals.h
++++ b/drivers/net/wireless/ath/ath9k/ar9485_initvals.h
+@@ -521,7 +521,7 @@ static const u32 ar9485_1_1_radio_postam
+ {0x000160ac, 0x24611800},
+ {0x000160b0, 0x03284f3e},
+ {0x0001610c, 0x00170000},
+- {0x00016140, 0x10804008},
++ {0x00016140, 0x50804008},
+ };
+
+ static const u32 ar9485_1_1_mac_postamble[][5] = {
+@@ -603,7 +603,7 @@ static const u32 ar9485_1_1_radio_core[]
+
+ static const u32 ar9485_1_1_pcie_phy_pll_on_clkreq_enable_L1[][2] = {
+ /* Addr allmodes */
+- {0x00018c00, 0x10052e5e},
++ {0x00018c00, 0x18052e5e},
+ {0x00018c04, 0x000801d8},
+ {0x00018c08, 0x0000080c},
+ };
+@@ -776,7 +776,7 @@ static const u32 ar9485_modes_green_ob_d
+
+ static const u32 ar9485_1_1_pcie_phy_clkreq_disable_L1[][2] = {
+ /* Addr allmodes */
+- {0x00018c00, 0x10013e5e},
++ {0x00018c00, 0x18013e5e},
+ {0x00018c04, 0x000801d8},
+ {0x00018c08, 0x0000080c},
+ };
+@@ -882,7 +882,7 @@ static const u32 ar9485_fast_clock_1_1_b
+
+ static const u32 ar9485_1_1_pcie_phy_pll_on_clkreq_disable_L1[][2] = {
+ /* Addr allmodes */
+- {0x00018c00, 0x10012e5e},
++ {0x00018c00, 0x18012e5e},
+ {0x00018c04, 0x000801d8},
+ {0x00018c08, 0x0000080c},
+ };
+@@ -1021,7 +1021,7 @@ static const u32 ar9485_common_rx_gain_1
+
+ static const u32 ar9485_1_1_pcie_phy_clkreq_enable_L1[][2] = {
+ /* Addr allmodes */
+- {0x00018c00, 0x10053e5e},
++ {0x00018c00, 0x18053e5e},
+ {0x00018c04, 0x000801d8},
+ {0x00018c08, 0x0000080c},
+ };
--- /dev/null
+From 6911bf0453e0d6ea8eb694a4ce67a68d071c538e Mon Sep 17 00:00:00 2001
+From: Eliad Peller <eliad@wizery.com>
+Date: Thu, 20 Oct 2011 19:05:50 +0200
+Subject: mac80211: config hw when going back on-channel
+
+From: Eliad Peller <eliad@wizery.com>
+
+commit 6911bf0453e0d6ea8eb694a4ce67a68d071c538e upstream.
+
+When going back on-channel, we should reconfigure
+the hw iff the hardware is not already configured
+to the operational channel.
+
+Signed-off-by: Eliad Peller <eliad@wizery.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/mac80211/work.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/net/mac80211/work.c
++++ b/net/mac80211/work.c
+@@ -1093,7 +1093,6 @@ static void ieee80211_work_work(struct w
+ }
+
+ if (!remain_off_channel && local->tmp_channel) {
+- bool on_oper_chan = ieee80211_cfg_on_oper_channel(local);
+ local->tmp_channel = NULL;
+ /* If tmp_channel wasn't operating channel, then
+ * we need to go back on-channel.
+@@ -1103,7 +1102,7 @@ static void ieee80211_work_work(struct w
+ * we still need to do a hardware config. Currently,
+ * we cannot be here while scanning, however.
+ */
+- if (ieee80211_cfg_on_oper_channel(local) && !on_oper_chan)
++ if (!ieee80211_cfg_on_oper_channel(local))
+ ieee80211_hw_config(local, 0);
+
+ /* At the least, we need to disable offchannel_ps,
--- /dev/null
+From 05cb91085760ca378f28fc274fbf77fc4fd9886c Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Fri, 28 Oct 2011 11:59:47 +0200
+Subject: mac80211: disable powersave for broken APs
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit 05cb91085760ca378f28fc274fbf77fc4fd9886c upstream.
+
+Only AID values 1-2007 are valid, but some APs have been
+found to send random bogus values, in the reported case an
+AP that was sending the AID field value 0xffff, an AID of
+0x3fff (16383).
+
+There isn't much we can do but disable powersave since
+there's no way it can work properly in this case.
+
+Reported-by: Bill C Riemers <briemers@redhat.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/mac80211/ieee80211_i.h | 1 +
+ net/mac80211/mlme.c | 18 ++++++++++++++++--
+ 2 files changed, 17 insertions(+), 2 deletions(-)
+
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -390,6 +390,7 @@ struct ieee80211_if_managed {
+
+ unsigned long timers_running; /* used for quiesce/restart */
+ bool powersave; /* powersave requested for this iface */
++ bool broken_ap; /* AP is broken -- turn off powersave */
+ enum ieee80211_smps_mode req_smps, /* requested smps mode */
+ ap_smps, /* smps mode AP thinks we're in */
+ driver_smps_mode; /* smps mode request */
+--- a/net/mac80211/mlme.c
++++ b/net/mac80211/mlme.c
+@@ -613,6 +613,9 @@ static bool ieee80211_powersave_allowed(
+ if (!mgd->powersave)
+ return false;
+
++ if (mgd->broken_ap)
++ return false;
++
+ if (!mgd->associated)
+ return false;
+
+@@ -1467,10 +1470,21 @@ static bool ieee80211_assoc_success(stru
+ capab_info = le16_to_cpu(mgmt->u.assoc_resp.capab_info);
+
+ if ((aid & (BIT(15) | BIT(14))) != (BIT(15) | BIT(14)))
+- printk(KERN_DEBUG "%s: invalid aid value %d; bits 15:14 not "
+- "set\n", sdata->name, aid);
++ printk(KERN_DEBUG
++ "%s: invalid AID value 0x%x; bits 15:14 not set\n",
++ sdata->name, aid);
+ aid &= ~(BIT(15) | BIT(14));
+
++ ifmgd->broken_ap = false;
++
++ if (aid == 0 || aid > IEEE80211_MAX_AID) {
++ printk(KERN_DEBUG
++ "%s: invalid AID value %d (out of range), turn off PS\n",
++ sdata->name, aid);
++ aid = 0;
++ ifmgd->broken_ap = true;
++ }
++
+ pos = mgmt->u.assoc_resp.variable;
+ ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), &elems);
+
--- /dev/null
+From eaa7af2ae582c9a8c51b374c48d5970b748a5ce2 Mon Sep 17 00:00:00 2001
+From: Eliad Peller <eliad@wizery.com>
+Date: Thu, 20 Oct 2011 19:05:49 +0200
+Subject: mac80211: fix remain_off_channel regression
+
+From: Eliad Peller <eliad@wizery.com>
+
+commit eaa7af2ae582c9a8c51b374c48d5970b748a5ce2 upstream.
+
+The offchannel code is currently broken - we should
+remain_off_channel if the work was started, and
+the work's channel and channel_type are the same
+as local->tmp_channel and local->tmp_channel_type.
+
+However, if wk->chan_type and local->tmp_channel_type
+coexist (e.g. have the same channel type), we won't
+remain_off_channel.
+
+This behavior was introduced by commit da2fd1f
+("mac80211: Allow work items to use existing
+channel type.")
+
+Tested-by: Ben Greear <greearb@candelatech.com>
+Signed-off-by: Eliad Peller <eliad@wizery.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/mac80211/work.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/mac80211/work.c
++++ b/net/mac80211/work.c
+@@ -1086,8 +1086,8 @@ static void ieee80211_work_work(struct w
+ continue;
+ if (wk->chan != local->tmp_channel)
+ continue;
+- if (ieee80211_work_ct_coexists(wk->chan_type,
+- local->tmp_channel_type))
++ if (!ieee80211_work_ct_coexists(wk->chan_type,
++ local->tmp_channel_type))
+ continue;
+ remain_off_channel = true;
+ }
--- /dev/null
+From bf5140817b2d65faac9b32fc9057a097044ac35b Mon Sep 17 00:00:00 2001
+From: Peter Wippich <pewi@gw-instruments.de>
+Date: Mon, 6 Jun 2011 15:50:58 +0200
+Subject: mtd: mtdchar: add missing initializer on raw write
+
+From: Peter Wippich <pewi@gw-instruments.de>
+
+commit bf5140817b2d65faac9b32fc9057a097044ac35b upstream.
+
+On writes in MODE_RAW the mtd_oob_ops struct is not sufficiently
+initialized which may cause nandwrite to fail. With this patch
+it is possible to write raw nand/oob data without additional ECC
+(either for testing or when some sectors need different oob layout
+e.g. bootloader) like
+nandwrite -n -r -o /dev/mtd0 <myfile>
+
+Signed-off-by: Peter Wippich <pewi@gw-instruments.de>
+Tested-by: Ricard Wanderlof <ricardw@axis.com>
+Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mtd/mtdchar.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/mtdchar.c
++++ b/drivers/mtd/mtdchar.c
+@@ -320,6 +320,7 @@ static ssize_t mtd_write(struct file *fi
+ ops.mode = MTD_OOB_RAW;
+ ops.datbuf = kbuf;
+ ops.oobbuf = NULL;
++ ops.ooboffs = 0;
+ ops.len = len;
+
+ ret = mtd->write_oob(mtd, *ppos, &ops);
--- /dev/null
+From c30bc94758ae2a38a5eb31767c1985c0aae0950b Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Thu, 3 Nov 2011 00:07:32 +0000
+Subject: netlink: validate NLA_MSECS length
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit c30bc94758ae2a38a5eb31767c1985c0aae0950b upstream.
+
+L2TP for example uses NLA_MSECS like this:
+policy:
+ [L2TP_ATTR_RECV_TIMEOUT] = { .type = NLA_MSECS, },
+code:
+ if (info->attrs[L2TP_ATTR_RECV_TIMEOUT])
+ cfg.reorder_timeout = nla_get_msecs(info->attrs[L2TP_ATTR_RECV_TIMEOUT]);
+
+As nla_get_msecs() is essentially nla_get_u64() plus the
+conversion to a HZ-based value, this will not properly
+reject attributes from userspace that aren't long enough
+and might overrun the message.
+
+Add NLA_MSECS to the attribute minlen array to check the
+size properly.
+
+Cc: Thomas Graf <tgraf@suug.ch>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ lib/nlattr.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/lib/nlattr.c
++++ b/lib/nlattr.c
+@@ -20,6 +20,7 @@ static const u16 nla_attr_minlen[NLA_TYP
+ [NLA_U16] = sizeof(u16),
+ [NLA_U32] = sizeof(u32),
+ [NLA_U64] = sizeof(u64),
++ [NLA_MSECS] = sizeof(u64),
+ [NLA_NESTED] = NLA_HDRLEN,
+ };
+
--- /dev/null
+From 8feaa43494cee5e938fd5a57b9e9bf1c827e6ccd Mon Sep 17 00:00:00 2001
+From: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
+Date: Fri, 26 Aug 2011 10:36:31 +0000
+Subject: powerpc/eeh: Fix /proc/ppc64/eeh creation
+
+From: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
+
+commit 8feaa43494cee5e938fd5a57b9e9bf1c827e6ccd upstream.
+
+Since commit 188917e183cf9ad0374b571006d0fc6d48a7f447, /proc/ppc64 is a
+symlink to /proc/powerpc/. That means that creating /proc/ppc64/eeh will
+end up with a unaccessible file, that is not listed under /proc/powerpc/
+and, then, not listed under /proc/ppc64/.
+
+Creating /proc/powerpc/eeh fixes that problem and maintain the
+compatibility intended with the ppc64 symlink.
+
+Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/platforms/pseries/eeh.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/platforms/pseries/eeh.c
++++ b/arch/powerpc/platforms/pseries/eeh.c
+@@ -1338,7 +1338,7 @@ static const struct file_operations proc
+ static int __init eeh_init_proc(void)
+ {
+ if (machine_is(pseries))
+- proc_create("ppc64/eeh", 0, NULL, &proc_eeh_operations);
++ proc_create("powerpc/eeh", 0, NULL, &proc_eeh_operations);
+ return 0;
+ }
+ __initcall(eeh_init_proc);
--- /dev/null
+From 8bdafa39a47265bc029838b35cc6585f69224afa Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Wed, 14 Sep 2011 09:43:15 +0000
+Subject: powerpc: Fix deadlock in icswx code
+
+From: Anton Blanchard <anton@samba.org>
+
+commit 8bdafa39a47265bc029838b35cc6585f69224afa upstream.
+
+The icswx code introduced an A-B B-A deadlock:
+
+ CPU0 CPU1
+ ---- ----
+lock(&anon_vma->mutex);
+ lock(&mm->mmap_sem);
+ lock(&anon_vma->mutex);
+lock(&mm->mmap_sem);
+
+Instead of using the mmap_sem to keep mm_users constant, take the
+page table spinlock.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/mm/mmu_context_hash64.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/arch/powerpc/mm/mmu_context_hash64.c
++++ b/arch/powerpc/mm/mmu_context_hash64.c
+@@ -136,8 +136,8 @@ int use_cop(unsigned long acop, struct m
+ if (!mm || !acop)
+ return -EINVAL;
+
+- /* We need to make sure mm_users doesn't change */
+- down_read(&mm->mmap_sem);
++ /* The page_table_lock ensures mm_users won't change under us */
++ spin_lock(&mm->page_table_lock);
+ spin_lock(mm->context.cop_lockp);
+
+ if (mm->context.cop_pid == COP_PID_NONE) {
+@@ -164,7 +164,7 @@ int use_cop(unsigned long acop, struct m
+
+ out:
+ spin_unlock(mm->context.cop_lockp);
+- up_read(&mm->mmap_sem);
++ spin_unlock(&mm->page_table_lock);
+
+ return ret;
+ }
+@@ -185,8 +185,8 @@ void drop_cop(unsigned long acop, struct
+ if (WARN_ON_ONCE(!mm))
+ return;
+
+- /* We need to make sure mm_users doesn't change */
+- down_read(&mm->mmap_sem);
++ /* The page_table_lock ensures mm_users won't change under us */
++ spin_lock(&mm->page_table_lock);
+ spin_lock(mm->context.cop_lockp);
+
+ mm->context.acop &= ~acop;
+@@ -213,7 +213,7 @@ void drop_cop(unsigned long acop, struct
+ }
+
+ spin_unlock(mm->context.cop_lockp);
+- up_read(&mm->mmap_sem);
++ spin_unlock(&mm->page_table_lock);
+ }
+ EXPORT_SYMBOL_GPL(drop_cop);
+
--- /dev/null
+From a11940978bd598e65996b4f807cf4904793f7025 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Wed, 10 Aug 2011 20:44:24 +0000
+Subject: powerpc: Fix oops when echoing bad values to /sys/devices/system/memory/probe
+
+From: Anton Blanchard <anton@samba.org>
+
+commit a11940978bd598e65996b4f807cf4904793f7025 upstream.
+
+If we echo an address the hypervisor doesn't like to
+/sys/devices/system/memory/probe we oops the box:
+
+# echo 0x10000000000 > /sys/devices/system/memory/probe
+
+kernel BUG at arch/powerpc/mm/hash_utils_64.c:541!
+
+The backtrace is:
+
+create_section_mapping
+arch_add_memory
+add_memory
+memory_probe_store
+sysdev_class_store
+sysfs_write_file
+vfs_write
+SyS_write
+
+In create_section_mapping we BUG if htab_bolt_mapping returned
+an error. A better approach is to return an error which will
+propagate back to userspace.
+
+Rerunning the test with this patch applied:
+
+# echo 0x10000000000 > /sys/devices/system/memory/probe
+-bash: echo: write error: Invalid argument
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/include/asm/sparsemem.h | 2 +-
+ arch/powerpc/mm/hash_utils_64.c | 6 +++---
+ arch/powerpc/mm/mem.c | 3 ++-
+ 3 files changed, 6 insertions(+), 5 deletions(-)
+
+--- a/arch/powerpc/include/asm/sparsemem.h
++++ b/arch/powerpc/include/asm/sparsemem.h
+@@ -16,7 +16,7 @@
+ #endif /* CONFIG_SPARSEMEM */
+
+ #ifdef CONFIG_MEMORY_HOTPLUG
+-extern void create_section_mapping(unsigned long start, unsigned long end);
++extern int create_section_mapping(unsigned long start, unsigned long end);
+ extern int remove_section_mapping(unsigned long start, unsigned long end);
+ #ifdef CONFIG_NUMA
+ extern int hot_add_scn_to_nid(unsigned long scn_addr);
+--- a/arch/powerpc/mm/hash_utils_64.c
++++ b/arch/powerpc/mm/hash_utils_64.c
+@@ -534,11 +534,11 @@ static unsigned long __init htab_get_tab
+ }
+
+ #ifdef CONFIG_MEMORY_HOTPLUG
+-void create_section_mapping(unsigned long start, unsigned long end)
++int create_section_mapping(unsigned long start, unsigned long end)
+ {
+- BUG_ON(htab_bolt_mapping(start, end, __pa(start),
++ return htab_bolt_mapping(start, end, __pa(start),
+ pgprot_val(PAGE_KERNEL), mmu_linear_psize,
+- mmu_kernel_ssize));
++ mmu_kernel_ssize);
+ }
+
+ int remove_section_mapping(unsigned long start, unsigned long end)
+--- a/arch/powerpc/mm/mem.c
++++ b/arch/powerpc/mm/mem.c
+@@ -123,7 +123,8 @@ int arch_add_memory(int nid, u64 start,
+ pgdata = NODE_DATA(nid);
+
+ start = (unsigned long)__va(start);
+- create_section_mapping(start, start + size);
++ if (create_section_mapping(start, start + size))
++ return -EINVAL;
+
+ /* this should work for most non-highmem platforms */
+ zone = pgdata->node_zones;
--- /dev/null
+From 6083184269fd723affca4f6340e491950267622a Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Wed, 10 Aug 2011 20:44:21 +0000
+Subject: powerpc/numa: Remove double of_node_put in hot_add_node_scn_to_nid
+
+From: Anton Blanchard <anton@samba.org>
+
+commit 6083184269fd723affca4f6340e491950267622a upstream.
+
+During memory hotplug testing, I got the following warning:
+
+ERROR: Bad of_node_put() on /memory@0
+
+of_node_release
+kref_put
+of_node_put
+of_find_node_by_type
+hot_add_node_scn_to_nid
+hot_add_scn_to_nid
+memory_add_physaddr_to_nid
+...
+
+of_find_node_by_type() loop does the of_node_put for us so we only
+need the handle the case where we terminate the loop early.
+
+As suggested by Stephen Rothwell we can do the of_node_put
+unconditionally outside of the loop since of_node_put handles a
+NULL argument fine.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/mm/numa.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/arch/powerpc/mm/numa.c
++++ b/arch/powerpc/mm/numa.c
+@@ -1214,11 +1214,12 @@ int hot_add_node_scn_to_nid(unsigned lon
+ break;
+ }
+
+- of_node_put(memory);
+ if (nid >= 0)
+ break;
+ }
+
++ of_node_put(memory);
++
+ return nid;
+ }
+
--- /dev/null
+From 9c740025c51a26ab00192cfc464064d4ccbfe3fc Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Sun, 14 Aug 2011 14:30:30 +0000
+Subject: powerpc/pseries: Avoid spurious error during hotplug CPU add
+
+From: Anton Blanchard <anton@samba.org>
+
+commit 9c740025c51a26ab00192cfc464064d4ccbfe3fc upstream.
+
+During hotplug CPU add we get the following error:
+
+Unexpected Error (0) returned from configure-connector
+
+ibm,configure-connector returns 0 for configuration complete, so
+catch this and avoid the error.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/platforms/pseries/dlpar.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/powerpc/platforms/pseries/dlpar.c
++++ b/arch/powerpc/platforms/pseries/dlpar.c
+@@ -112,6 +112,7 @@ void dlpar_free_cc_nodes(struct device_n
+ dlpar_free_one_cc_node(dn);
+ }
+
++#define COMPLETE 0
+ #define NEXT_SIBLING 1
+ #define NEXT_CHILD 2
+ #define NEXT_PROPERTY 3
+@@ -158,6 +159,9 @@ struct device_node *dlpar_configure_conn
+ spin_unlock(&rtas_data_buf_lock);
+
+ switch (rc) {
++ case COMPLETE:
++ break;
++
+ case NEXT_SIBLING:
+ dn = dlpar_parse_cc_node(ccwa);
+ if (!dn)
vfs-we-need-to-set-lookup_jumped-on-mountpoint-crossing.patch
target-fix-incorrect-se_cmd-assignment-in-core_tmr_drain_tmr_list.patch
target-fix-wrong-se_tmr-being-added-to-drain_tmr_list.patch
+powerpc-numa-remove-double-of_node_put-in-hot_add_node_scn_to_nid.patch
+powerpc-fix-oops-when-echoing-bad-values-to-sys-devices-system-memory-probe.patch
+powerpc-pseries-avoid-spurious-error-during-hotplug-cpu-add.patch
+powerpc-eeh-fix-proc-ppc64-eeh-creation.patch
+powerpc-fix-deadlock-in-icswx-code.patch
+acpi-atomicio-convert-width-in-bits-to-bytes-in-__acpi_ioremap_fast.patch
+acpi-fix-config_acpi_dock-n-compiler-warning.patch
+netlink-validate-nla_msecs-length.patch
+ath9k_hw-update-ar9485-initvals-to-fix-system-hang-issue.patch
+mac80211-fix-remain_off_channel-regression.patch
+mac80211-config-hw-when-going-back-on-channel.patch
+mac80211-disable-powersave-for-broken-aps.patch
+mtd-mtdchar-add-missing-initializer-on-raw-write.patch