commit 5390967b2f98e6aa46f20eae09580e7db73826b9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 31 10:05:17 2012 -0700

    Linux 3.4.17

commit 1f94bd43033d37549313c2b3cc2447800a20291c
Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Date:   Fri Jun 22 09:43:07 2012 +0200

    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 <sjoerd.simons@collabora.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0187c24809c9590412c0112dab88f28621a961ed
Author: Yinghai Lu <yinghai@kernel.org>
Date:   Mon Oct 22 16:35:18 2012 -0700

    x86, mm: Use memblock memory loop instead of e820_RAM
    
    commit 1f2ff682ac951ed82cc043cf140d2851084512df upstream.
    
    We need to handle E820_RAM and E820_RESERVED_KERNEL at the same time.
    
    Also memblock has page aligned range for ram, so we could avoid mapping
    partial pages.
    
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/CAE9FiQVZirvaBMFYRfXMmWEcHbKSicQEHz4VAwUv0xFCk51ZNw@mail.gmail.com
    Acked-by: Jacob Shin <jacob.shin@amd.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0419caba889d9a5f743a51b7cf9269c16c397a5
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Wed Oct 3 16:25:17 2012 +0100

    staging: comedi: amplc_pc236: fix invalid register access during detach
    
    commit aaeb61a97b7159ebe30b18a422d04eeabfa8790b upstream.
    
    `pc236_detach()` is called by the comedi core if it attempted to attach
    a device and failed.  `pc236_detach()` calls `pc236_intr_disable()` if
    the comedi device private data pointer (`devpriv`) is non-null.  This
    test is insufficient as `pc236_intr_disable()` accesses hardware
    registers and the attach routine may have failed before it has saved
    their I/O base addresses.
    
    Fix it by checking `dev->iobase` is non-zero before calling
    `pc236_intr_disable()` as that means the I/O base addresses have been
    saved and the hardware registers can be accessed.  It also implies the
    comedi device private data pointer is valid, so there is no need to
    check it.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 775dc1a3fd51abc6e459aa92e049fd3687b66c2f
Author: Olof Johansson <olof@lixom.net>
Date:   Wed Oct 24 10:00:44 2012 -0700

    x86: efi: Turn off efi_enabled after setup on mixed fw/kernel
    
    commit 5189c2a7c7769ee9d037d76c1a7b8550ccf3481c upstream.
    
    When 32-bit EFI is used with 64-bit kernel (or vice versa), turn off
    efi_enabled once setup is done. Beyond setup, it is normally used to
    determine if runtime services are available and we will have none.
    
    This will resolve issues stemming from efivars modprobe panicking on a
    32/64-bit setup, as well as some reboot issues on similar setups.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=45991
    
    Reported-by: Marko Kohtala <marko.kohtala@gmail.com>
    Reported-by: Maxim Kammerer <mk@dee.su>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Acked-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
    Cc: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a57a57aea0ad2ced60a8aa59d49fe542f23efb72
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Fri Sep 28 17:55:44 2012 -0700

    efi: Defer freeing boot services memory until after ACPI init
    
    commit 785107923a83d8456bbd8564e288a24d84109a46 upstream.
    
    Some new ACPI 5.0 tables reference resources stored in boot services
    memory, so keep that memory around until we have ACPI and can extract
    data from it.
    
    Signed-off-by: Josh Triplett <josh@joshtriplett.org>
    Link: http://lkml.kernel.org/r/baaa6d44bdc4eb0c58e5d1b4ccd2c729f854ac55.1348876882.git.josh@joshtriplett.org
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Cc: Matt Fleming <matt@console-pimps.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a32a0b9985742493575ffa1c6fedf043d966708
Author: Yinghai Lu <yinghai@kernel.org>
Date:   Thu Oct 25 15:45:26 2012 -0700

    x86, mm: Undo incorrect revert in arch/x86/mm/init.c
    
    commit f82f64dd9f485e13f29f369772d4a0e868e5633a upstream.
    
    Commit
    
        844ab6f9 x86, mm: Find_early_table_space based on ranges that are actually being mapped
    
    added back some lines back wrongly that has been removed in commit
    
        7b16bbf97 Revert "x86/mm: Fix the size calculation of mapping tables"
    
    remove them again.
    
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/CAE9FiQW_vuaYQbmagVnxT2DGsYc=9tNeAbdBq53sYkitPOwxSQ@mail.gmail.com
    Acked-by: Jacob Shin <jacob.shin@amd.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3fd37d2b84e53427b10e6900f7039f9ea9c3a408
Author: Jacob Shin <jacob.shin@amd.com>
Date:   Wed Oct 24 14:24:44 2012 -0500

    x86, mm: Find_early_table_space based on ranges that are actually being mapped
    
    commit 844ab6f993b1d32eb40512503d35ff6ad0c57030 upstream.
    
    Current logic finds enough space for direct mapping page tables from 0
    to end. Instead, we only need to find enough space to cover mr[0].start
    to mr[nr_range].end -- the range that is actually being mapped by
    init_memory_mapping()
    
    This is needed after 1bbbbe779aabe1f0768c2bf8f8c0a5583679b54a, to address
    the panic reported here:
    
      https://lkml.org/lkml/2012/10/20/160
      https://lkml.org/lkml/2012/10/21/157
    
    Signed-off-by: Jacob Shin <jacob.shin@amd.com>
    Link: http://lkml.kernel.org/r/20121024195311.GB11779@jshin-Toonie
    Tested-by: Tom Rini <trini@ti.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c422bb689034ce2c2b781754b03fb93bc67fa78
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Wed Oct 17 13:50:43 2012 +0200

    Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz"
    
    commit 73b26df5fa1a6245d6fc982362518b620bc7c2fe upstream.
    
    This reverts commit a240dc7b3c7463bd60cf0a9b2a90f52f78aae0fd.
    
    This commit is reducing tx power by at least 10 db on some devices,
    e.g. the Buffalo WZR-HP-G450H.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Cc: rmanohar@qca.qualcomm.com
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b79a8a53612672adf053aaebb74ebc51a44e321
Author: Andreas Herrmann <andreas.herrmann3@amd.com>
Date:   Tue Oct 23 00:55:10 2012 +0200

    cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code
    
    commit e4df1cbcc1f329e53a1fff7450b2229e0addff20 upstream.
    
    Commit 6889125b8b4e09c5e53e6ecab3433bed1ce198c9
    (cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU)
    causes powernow-k8 to trigger a preempt warning, e.g.:
    
      BUG: using smp_processor_id() in preemptible [00000000] code: cpufreq/3776
      caller is powernowk8_target+0x20/0x49
      Pid: 3776, comm: cpufreq Not tainted 3.6.0 #9
      Call Trace:
       [<ffffffff8125b447>] debug_smp_processor_id+0xc7/0xe0
       [<ffffffff814877e7>] powernowk8_target+0x20/0x49
       [<ffffffff81482b02>] __cpufreq_driver_target+0x82/0x8a
       [<ffffffff81484fc6>] cpufreq_governor_performance+0x4e/0x54
       [<ffffffff81482c50>] __cpufreq_governor+0x8c/0xc9
       [<ffffffff81482e6f>] __cpufreq_set_policy+0x1a9/0x21e
       [<ffffffff814839af>] store_scaling_governor+0x16f/0x19b
       [<ffffffff81484f16>] ? cpufreq_update_policy+0x124/0x124
       [<ffffffff8162b4a5>] ? _raw_spin_unlock_irqrestore+0x2c/0x49
       [<ffffffff81483640>] store+0x60/0x88
       [<ffffffff811708c0>] sysfs_write_file+0xf4/0x130
       [<ffffffff8111243b>] vfs_write+0xb5/0x151
       [<ffffffff811126e0>] sys_write+0x4a/0x71
       [<ffffffff816319a9>] system_call_fastpath+0x16/0x1b
    
    Fix this by by always using work_on_cpu().
    
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44b977a87305bb075adb5b764f115237e474e626
Author: Piotr Haber <phaber@broadcom.com>
Date:   Thu Oct 11 14:05:15 2012 +0200

    bcma: fix unregistration of cores
    
    commit 1fffa905adffbf0d3767fc978ef09afb830275eb upstream.
    
    When cores are unregistered, entries
    need to be removed from cores list in a safe manner.
    
    Reported-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Reviewed-by: Arend Van Spriel <arend@broadcom.com>
    Signed-off-by: Piotr Haber <phaber@broadcom.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e8cec32110be45739569e04f35d83d47064dd86
Author: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Date:   Sun Oct 21 19:58:30 2012 +0800

    dmaengine: imx-dma: fix missing unlock on error in imxdma_xfer_desc()
    
    commit 720dfd250e48a8c7fd1b2b8645955413989c4ee0 upstream.
    
    Add the missing unlock on the error handling path in function
    imxdma_xfer_desc().
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73cb40932358f82d55117a70a0d38026923e823f
Author: Barry Song <Baohua.Song@csr.com>
Date:   Thu Sep 27 16:36:10 2012 +0800

    dmaengine: sirf: fix a typo in moving running dma_desc to active queue
    
    commit 26fd12209c08fe947be1828896ef4ffc5bd0e6df upstream.
    
    list_move_tail(&schan->queued, &schan->active) makes the list_empty(schan->queued)
    undefined, we either should change it to:
    list_move_tail(schan->queued.next, &schan->active)
    or
    list_move_tail(&sdesc->node, &schan->active)
    
    Signed-off-by: Barry Song <Baohua.Song@csr.com>
    Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16642956664f3e93c88e9e2a22713d5456568822
Author: Barry Song <Baohua.Song@csr.com>
Date:   Thu Sep 27 16:35:38 2012 +0800

    dmaengine: sirf: fix a typo in dma_prep_interleaved
    
    commit 5997e089e4c3a7f0958a8fb0a54ec2b5a6f06168 upstream.
    
    either DEV_TO_MEM or MEM_TO_DEV is supported, so change
    OR to AND.
    
    Signed-off-by: Barry Song <Baohua.Song@csr.com>
    Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2c439d432f759533d396b31f856fcb484268104
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Thu Oct 25 22:28:12 2012 +0200

    freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD
    
    commit b40a79591ca918e7b91b0d9b6abd5d00f2e88c19 upstream.
    
    flush_old_exec() clears PF_KTHREAD but forgets about PF_NOFREEZE.
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0fb0773f2da4ffa566e0c813dc295c44208debb5
Author: Johan Hedberg <johan.hedberg@intel.com>
Date:   Thu Oct 11 16:26:06 2012 +0200

    Bluetooth: SMP: Fix setting unknown auth_req bits
    
    commit 065a13e2cc665f6547dc7e8a9d6b6565badf940a upstream.
    
    When sending a pairing request or response we should not just blindly
    copy the value that the remote device sent. Instead we should at least
    make sure to mask out any unknown bits. This is particularly critical
    from the upcoming LE Secure Connections feature perspective as
    incorrectly indicating support for it (by copying the remote value)
    would cause a failure to pair with devices that support it.
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Acked-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a01241c81ac4bf6a7a486051699f791634e7b22
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Tue Oct 2 21:34:23 2012 +0200

    mac80211: check if key has TKIP type before updating IV
    
    commit 4045f72bcf3c293c7c5932ef001742d8bb5ded76 upstream.
    
    This patch fix corruption which can manifest itself by following crash
    when switching on rfkill switch with rt2x00 driver:
    https://bugzilla.redhat.com/attachment.cgi?id=615362
    
    Pointer key->u.ccmp.tfm of group key get corrupted in:
    
    ieee80211_rx_h_michael_mic_verify():
    
            /* update IV in key information to be able to detect replays */
            rx->key->u.tkip.rx[rx->security_idx].iv32 = rx->tkip_iv32;
            rx->key->u.tkip.rx[rx->security_idx].iv16 = rx->tkip_iv16;
    
    because rt2x00 always set RX_FLAG_MMIC_STRIPPED, even if key is not TKIP.
    
    We already check type of the key in different path in
    ieee80211_rx_h_michael_mic_verify() function, so adding additional
    check here is reasonable.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit adb91f6de096f878fb1cb9e0ff5839b2d432e67e
Author: Ivan Shugov <ivan.shugov@gmail.com>
Date:   Wed Oct 24 11:02:44 2012 +0200

    ARM: at91: at91sam9g10: fix SOC type detection
    
    commit 3d9a0183dd3423353e9e363bcc261c1220d05f9f upstream.
    
    Newer at91sam9g10 SoC revision can't be detected, so the kernel can't boot with
    this kind of kernel panic:
    "AT91: Impossible to detect the SOC type"
    
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: Atmel AT91SAM9G10-EK
    Ignoring tag cmdline (using the default kernel command line)
    bootconsole [earlycon0] enabled
    Memory policy: ECC disabled, Data cache writeback
    Kernel panic - not syncing: AT91: Impossible to detect the SOC type
    [<c00133d4>] (unwind_backtrace+0x0/0xe0) from [<c02366dc>] (panic+0x78/0x1cc)
    [<c02366dc>] (panic+0x78/0x1cc) from [<c02fa35c>] (at91_map_io+0x90/0xc8)
    [<c02fa35c>] (at91_map_io+0x90/0xc8) from [<c02f9860>] (paging_init+0x564/0x6d0)
    [<c02f9860>] (paging_init+0x564/0x6d0) from [<c02f7914>] (setup_arch+0x464/0x704)
    [<c02f7914>] (setup_arch+0x464/0x704) from [<c02f44f8>] (start_kernel+0x6c/0x2d4)
    [<c02f44f8>] (start_kernel+0x6c/0x2d4) from [<20008040>] (0x20008040)
    
    The reason for this is that the Debug Unit Chip ID Register has changed between
    Engineering Sample and definitive revision of the SoC. Changing the check of
    cidr to socid will address the problem. We do not integrate this check to the
    list just above because we also have to make sure that the extended id is
    disregarded.
    
    Signed-off-by: Ivan Shugov <ivan.shugov@gmail.com>
    [nicolas.ferre@atmel.com: change commit message]
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ff5ef252d9903de2b29dd2cdcea587d192d7635
Author: Bo Shen <voice.shen@atmel.com>
Date:   Mon Oct 15 17:30:27 2012 +0800

    ARM: at91/i2c: change id to let i2c-gpio work
    
    commit 7840487cd6298f9f931103b558290d8d98d41c49 upstream.
    
    The i2c core driver will turn the platform device ID to busnum
    When using platfrom device ID as -1, it means dynamically assigned
    the busnum. When writing code, we need to make sure the busnum,
    and call i2c_register_board_info(int busnum, ...) to register device
    if using -1, we do not know the value of busnum
    
    In order to solve this issue, set the platform device ID as a fix number
    Here using 0 to match the busnum used in i2c_regsiter_board_info()
    
    Signed-off-by: Bo Shen <voice.shen@atmel.com>
    Acked-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a6904a552465521b33d25d767a7db06ad04e434
Author: Josh Wu <josh.wu@atmel.com>
Date:   Fri Sep 14 17:01:29 2012 +0800

    ARM: at91/tc: fix typo in the DT document
    
    commit 11930c530f3edf81160e4962e363d579f5cdce7e upstream.
    
    Signed-off-by: Josh Wu <josh.wu@atmel.com>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit baa526f45d3f096a1cd9f14b668203a03bbab6f9
Author: Heiko Stuebner <heiko@sntech.de>
Date:   Wed Oct 17 16:47:11 2012 +0900

    ARM: SAMSUNG: Add naming of s3c64xx-spi devices
    
    commit 308b3afb97dc342e9c4f958d8b4c459ae0e22bd7 upstream.
    
    Commit a5238e360b71 (spi: s3c64xx: move controller information into driver
    data) introduced separate device names for the different subtypes of the
    spi controller but forgot to set these in the relevant machines.
    
    To fix this introduce a s3c64xx_spi_setname function and populate all
    Samsung arches with the correct names. The function resides in a new
    header, as the s3c64xx-spi.h contains driver platform data and should
    therefore at some later point move out of the Samsung include dir.
    
    Tested on a s3c2416-based machine.
    
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    [s.nawrocki@samsung.com: tested on mach-exynos]
    Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02b21626c5e97ab2286ed5b5a7e35181b16b9382
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Wed Oct 24 20:37:51 2012 +0200

    vhost: fix mergeable bufs on BE hosts
    
    commit 910a578f7e9400a78a3b13aba0b4d2df16a2cb05 upstream.
    
    We copy head count to a 16 bit field, this works by chance on LE but on
    BE guest gets 0. Fix it up.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Tested-by: Alexander Graf <agraf@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d649dd97f1ec8fd9c8ffd94877c5c806a202e8a
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 18:56:33 2012 +0200

    USB: mos7840: remove invalid disconnect handling
    
    commit e681b66f2e19fadbe8a7e2a17900978cb6bc921f upstream.
    
    Remove private zombie flag used to signal disconnect and to prevent
    control urb from being submitted from interrupt urb completion handler.
    
    The control urb will not be re-submitted as both the control urb and the
    interrupt urb is killed on disconnect.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 380c05e97c6393557757dc180c04bc405de9b620
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 18:56:32 2012 +0200

    USB: mos7840: remove NULL-urb submission
    
    commit 28c3ae9a8cf45f439c9a0779ebd0256e2ae72813 upstream.
    
    The private int_urb is never allocated so the submission from the
    control completion handler will always fail. Remove this odd piece of
    broken code.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45af0b209e5bdd66804a07b06dec30b5ccaef2de
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 13:35:10 2012 +0200

    USB: mos7840: fix port-device leak in error path
    
    commit 3eb55cc4ed88eee3b5230f66abcdbd2a91639eda upstream.
    
    The driver set the usb-serial port pointers to NULL on errors in attach,
    effectively preventing usb-serial core from decrementing the port ref
    counters and releasing the port devices and associated data.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b296aacfcceb3e6511b5d5fe77b22f5840ebe290
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 13:35:09 2012 +0200

    USB: mos7840: fix urb leak at release
    
    commit 65a4cdbb170e4ec1a7fa0e94936d47e24a17b0e8 upstream.
    
    Make sure control urb is freed at release.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b312595bebcd2216f8617778a55ccaa93fc5a51
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:18 2012 +0200

    USB: sierra: fix memory leak in probe error path
    
    commit 084817d79399ab5ccab2f90a148b0369912a8369 upstream.
    
    Move interface data allocation to attach so that it is deallocated on
    errors in usb-serial probe.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96e42e6acf74ad78cf9f37c2f2f2998ad7814929
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:17 2012 +0200

    USB: sierra: fix memory leak in attach error path
    
    commit 7e41f9bcdd2e813ea2a3c40db291d87ea06b559f upstream.
    
    Make sure port private data is deallocated on errors in attach.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a58af76b5dbe701c2d194648c579690ac6c29efd
Author: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>
Date:   Wed Oct 24 10:23:09 2012 -0400

    USB: serial: Fix memory leak in sierra_release()
    
    commit f7bc5051667b74c3861f79eed98c60d5c3b883f7 upstream.
    
    I found a memory leak in sierra_release() (well sierra_probe() I guess)
    that looses 8 bytes each time the driver releases a device.
    
    Signed-off-by: Len Sorensen <lsorense@csclub.uwaterloo.ca>
    Acked-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed7d272780f5185e9ca38cd63effd06a43c00cb1
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:12 2012 +0200

    USB: opticon: fix memory leak in error path
    
    commit acbf0e5263de563e25f7c104868e4490b9e72b13 upstream.
    
    Fix memory leak in write error path.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce11958aa9b27e162fe2c1a23e50e318de0319c4
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:11 2012 +0200

    USB: opticon: fix DMA from stack
    
    commit ea0dbebffe118724cd4df7d9b071ea8ee48d48f0 upstream.
    
    Make sure to allocate the control-message buffer dynamically as some
    platforms cannot do DMA from stack.
    
    Note that only the first byte of the old buffer was used.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02c6b1fd52e8987597f847aecc3a74c09a48083b
Author: Johan Hovold <jhovold@gmail.com>
Date:   Thu Oct 25 10:29:01 2012 +0200

    USB: whiteheat: fix memory leak in error path
    
    commit c129197c99550d356cf5f69b046994dd53cd1b9d upstream.
    
    Make sure command buffer is deallocated in case of errors during attach.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Cc: <support@connecttech.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 891fe9688fbd2ef1c04d8314b74c0037be2adb89
Author: Octavian Purdila <octavian.purdila@intel.com>
Date:   Mon Oct 1 22:21:12 2012 +0300

    usb hub: send clear_tt_buffer_complete events when canceling TT clear work
    
    commit 3b6054da68f9b0d5ed6a7ed0f42a79e61904352c upstream.
    
    There is a race condition in the USB hub code with regard to handling
    TT clear requests that can get the HCD driver in a deadlock. Usually
    when an TT clear request is scheduled it will be executed immediately:
    
    <7>[    6.077583] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
    <3>[    6.078041] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
    <7>[    6.078299] hub_tt_work:731
    <7>[    9.309089] usb 2-1.5: link qh1-0e01/f4d506c0 start 0 [1/2 us]
    <7>[    9.324526] ehci_hcd 0000:00:1d.0: reused qh f4d4db00 schedule
    <7>[    9.324539] usb 2-1.3: link qh1-0e01/f4d4db00 start 0 [1/2 us]
    <7>[    9.341530] usb 1-1.1: link qh4-0e01/f397aec0 start 2 [1/2 us]
    <7>[   10.116159] usb 2-1.3: unlink qh1-0e01/f4d4db00 start 0 [1/2 us]
    <3>[   10.116459] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d82
    <7>[   10.116537] hub_tt_work:731
    
    However, if a suspend operation is triggered before hub_tt_work is
    scheduled, hub_quiesce will cancel the work without notifying the HCD
    driver:
    
    <3>[   35.033941] usb 2-1: clear tt buffer port 3, a3 ep2 t04048d80
    <5>[   35.034022] sd 0:0:0:0: [sda] Stopping disk
    <7>[   35.034039] hub 2-1:1.0: hub_suspend
    <7>[   35.034067] usb 2-1: unlink qh256-0001/f3b1ab00 start 1 [1/0 us]
    <7>[   35.035085] hub 1-0:1.0: hub_suspend
    <7>[   35.035102] usb usb1: bus suspend, wakeup 0
    <7>[   35.035106] ehci_hcd 0000:00:1a.0: suspend root hub
    <7>[   35.035298] hub 2-0:1.0: hub_suspend
    <7>[   35.035313] usb usb2: bus suspend, wakeup 0
    <7>[   35.035315] ehci_hcd 0000:00:1d.0: suspend root hub
    <6>[   35.250017] PM: suspend of devices complete after 216.979 msecs
    <6>[   35.250822] PM: late suspend of devices complete after 0.799 msecs
    <7>[   35.252343] ehci_hcd 0000:00:1d.0: wakeup: 1
    <7>[   35.262923] ehci_hcd 0000:00:1d.0: --> PCI D3hot
    <7>[   35.263302] ehci_hcd 0000:00:1a.0: wakeup: 1
    <7>[   35.273912] ehci_hcd 0000:00:1a.0: --> PCI D3hot
    <6>[   35.274254] PM: noirq suspend of devices complete after 23.442 msecs
    <6>[   35.274975] ACPI: Preparing to enter system sleep state S3
    <6>[   35.292666] PM: Saving platform NVS memory
    <7>[   35.295030] Disabling non-boot CPUs ...
    <6>[   35.297351] CPU 1 is now offline
    <6>[   35.300345] CPU 2 is now offline
    <6>[   35.303929] CPU 3 is now offline
    <7>[   35.303931] lockdep: fixing up alternatives.
    <6>[   35.304825] Extended CMOS year: 2000
    
    When the device will resume the EHCI driver will get stuck in
    ehci_endpoint_disable waiting for the tt_clearing flag to reset:
    
    <0>[   47.610967] usb 2-1.3: **** DPM device timeout ****
    <7>[   47.610972]  f2f11c60 00000092 f2f11c0c c10624a5 00000003 f4c6e880 c1c8a4c0 c1c8a4c0
    <7>[   47.610983]  15c55698 0000000b f56b34c0 f2a45b70 f4c6e880 00000082 f2a4602c f2f11c30
    <7>[   47.610993]  c10787f8 f4cac000 f2a45b70 00000000 f4cac010 f2f11c58 00000046 00000001
    <7>[   47.611004] Call Trace:
    <7>[   47.611006]  [<c10624a5>] ? sched_clock_cpu+0xf5/0x160
    <7>[   47.611019]  [<c10787f8>] ? lock_release_holdtime.part.22+0x88/0xf0
    <7>[   47.611026]  [<c103ed46>] ? lock_timer_base.isra.35+0x26/0x50
    <7>[   47.611034]  [<c17592d3>] ? schedule_timeout+0x133/0x290
    <7>[   47.611044]  [<c175b43e>] schedule+0x1e/0x50
    <7>[   47.611051]  [<c17592d8>] schedule_timeout+0x138/0x290
    <7>[   47.611057]  [<c10624a5>] ? sched_clock_cpu+0xf5/0x160
    <7>[   47.611063]  [<c103e560>] ? usleep_range+0x40/0x40
    <7>[   47.611070]  [<c1759445>] schedule_timeout_uninterruptible+0x15/0x20
    <7>[   47.611077]  [<c14935f4>] ehci_endpoint_disable+0x64/0x160
    <7>[   47.611084]  [<c147d1ee>] ? usb_hcd_flush_endpoint+0x10e/0x1d0
    <7>[   47.611092]  [<c1165663>] ? sysfs_add_file+0x13/0x20
    <7>[   47.611100]  [<c147d5a9>] usb_hcd_disable_endpoint+0x29/0x40
    <7>[   47.611107]  [<c147fafc>] usb_disable_endpoint+0x5c/0x80
    <7>[   47.611111]  [<c147fb57>] usb_disable_interface+0x37/0x50
    <7>[   47.611116]  [<c1477650>] usb_reset_and_verify_device+0x4b0/0x640
    <7>[   47.611122]  [<c1474665>] ? hub_port_status+0xb5/0x100
    <7>[   47.611129]  [<c147a975>] usb_port_resume+0xd5/0x220
    <7>[   47.611136]  [<c148877f>] generic_resume+0xf/0x30
    <7>[   47.611142]  [<c14821a3>] usb_resume+0x133/0x180
    <7>[   47.611147]  [<c1473b10>] ? usb_dev_thaw+0x10/0x10
    <7>[   47.611152]  [<c1473b1d>] usb_dev_resume+0xd/0x10
    <7>[   47.611157]  [<c13baa60>] dpm_run_callback+0x40/0xb0
    <7>[   47.611164]  [<c13bdb03>] ? pm_runtime_enable+0x43/0x70
    <7>[   47.611171]  [<c13bafc6>] device_resume+0x1a6/0x2c0
    <7>[   47.611177]  [<c13ba940>] ? dpm_show_time+0xe0/0xe0
    <7>[   47.611183]  [<c13bb0f9>] async_resume+0x19/0x40
    <7>[   47.611189]  [<c10580c4>] async_run_entry_fn+0x64/0x160
    <7>[   47.611196]  [<c104a244>] ? process_one_work+0x104/0x480
    <7>[   47.611203]  [<c104a24c>] ? process_one_work+0x10c/0x480
    <7>[   47.611209]  [<c104a2c0>] process_one_work+0x180/0x480
    <7>[   47.611215]  [<c104a244>] ? process_one_work+0x104/0x480
    <7>[   47.611220]  [<c1058060>] ? async_schedule+0x10/0x10
    <7>[   47.611226]  [<c104c15c>] worker_thread+0x11c/0x2f0
    <7>[   47.611233]  [<c104c040>] ? manage_workers.isra.27+0x1f0/0x1f0
    <7>[   47.611239]  [<c10507f8>] kthread+0x78/0x80
    <7>[   47.611244]  [<c1750000>] ? timer_cpu_notify+0xd6/0x20d
    <7>[   47.611253]  [<c1050780>] ? __init_kthread_worker+0x60/0x60
    <7>[   47.611258]  [<c176357e>] kernel_thread_helper+0x6/0xd
    <7>[   47.611283] ------------[ cut here ]------------
    
    This patch changes hub_quiesce behavior to flush the TT clear work
    instead of canceling it, to make sure that no TT clear request remains
    uncompleted before suspend.
    
    Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 313f0fd814835c64b90d14be716a6fedbbd4b08e
Author: Michael Shigorin <mike@osdn.org.ua>
Date:   Mon Oct 22 12:18:56 2012 +0300

    usb-storage: add unusual_devs entry for Casio EX-N1 digital camera
    
    commit d7870af7e2e3a91b462075ec1ca669b482215187 upstream.
    
    This commit sets removable subclass for Casio EX-N1 digital camera.
    
    The patch has been tested within an ALT Linux kernel:
    http://git.altlinux.org/people/led/packages/?p=kernel-image-3.0.git;a=commitdiff;h=c0fd891836e89fe0c93a4d536a59216d90e4e3e7
    
    See also https://bugzilla.kernel.org/show_bug.cgi?id=49221
    
    Signed-off-by: Oleksandr Chumachenko <ledest@gmail.com>
    Signed-off-by: Michael Shigorin <mike@osdn.org.ua>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 145f944257416e38ef00505f07cac17e86ef9655
Author: Anisse Astier <anisse@astier.eu>
Date:   Tue Oct 9 12:22:37 2012 +0200

    ehci: Add yet-another Lucid nohandoff pci quirk
    
    commit 8daf8b6086f9d575200cd0aa3797e26137255609 upstream.
    
    Board name changed on another shipping Lucid tablet.
    
    Signed-off-by: Anisse Astier <anisse@astier.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8091a3cbabad7616b565a4d7148e8e6c565cdeb
Author: Anisse Astier <anisse@astier.eu>
Date:   Tue Oct 9 12:22:36 2012 +0200

    ehci: fix Lucid nohandoff pci quirk to be more generic with BIOS versions
    
    commit c323dc023b9501e5d09582ec7efd1d40a9001d99 upstream.
    
    BIOS vendors keep changing the BIOS versions. Only match the beginning
    of the string to match all Lucid tablets with board name M11JB.
    
    Signed-off-by: Anisse Astier <anisse@astier.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 057f0772b32f9a162c5104b1928b5886f1b85059
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Fri Oct 12 13:22:42 2012 -0700

    Drivers: hv: Cleanup error handling in vmbus_open()
    
    commit 1392550240aaa72ce3a094a38bd23525cd67ce60 upstream.
    
    Fix a memory leak  in the error handling path in the function vmbus_open().
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Reported-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b76336ec39f1af832ebd29add93cfe21e839581
Author: Arve Hjønnevåg <arve@android.com>
Date:   Tue Oct 16 15:29:55 2012 -0700

    Staging: android: binder: Allow using highmem for binder buffers
    
    commit 585650dcec88e704a19bb226a34b6a7166111623 upstream.
    
    The default kernel mapping for the pages allocated for the binder
    buffers is never used. Set the __GFP_HIGHMEM flag when allocating
    these pages so we don't needlessly use low memory pages that may
    be required elsewhere.
    
    Signed-off-by: Arve Hjønnevåg <arve@android.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c70fc22aa9f442379b1f64e863b8adf8da2356e8
Author: Arve Hjønnevåg <arve@android.com>
Date:   Tue Oct 16 15:29:54 2012 -0700

    Staging: android: binder: Fix memory leak on thread/process exit
    
    commit 675d66b0ed5fd170d6a44cf8dbb3fa56a5347bdb upstream.
    
    If a thread or process exited while a reply, one-way transaction or
    death notification was pending, the struct holding the pending work
    was leaked.
    
    Signed-off-by: Arve Hjønnevåg <arve@android.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa3b39b05f40bf7273bcd6c152f0b59005b83480
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Sat Sep 29 22:23:19 2012 +0200

    sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()
    
    commit 66081a72517a131430dcf986775f3268aafcb546 upstream.
    
    The warning check for duplicate sysfs entries can cause a buffer overflow
    when printing the warning, as strcat() doesn't check buffer sizes.
    Use strlcat() instead.
    
    Since strlcat() doesn't return a pointer to the passed buffer, unlike
    strcat(), I had to convert the nested concatenation in sysfs_add_one() to
    an admittedly more obscure comma operator construct, to avoid emitting code
    for the concatenation if CONFIG_BUG is disabled.
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 325c6bf91fd3c2e4fea473e9ca4eb30666dadb52
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Tue Oct 16 13:17:43 2012 -0700

    xhci: Fix potential NULL ptr deref in command cancellation.
    
    commit 43a09f7fb01fa1e091416a2aa49b6c666458c1ee upstream.
    
    The command cancellation code doesn't check whether find_trb_seg()
    couldn't find the segment that contains the TRB to be canceled.  This
    could cause a NULL pointer deference later in the function when next_trb
    is called.  It's unlikely to happen unless something is wrong with the
    command ring pointers, so add some debugging in case it happens.
    
    This patch should be backported to stable kernels as old as 3.0, that
    contain the commit b63f4053cc8aa22a98e3f9a97845afe6c15d0a0d "xHCI:
    handle command after aborting the command ring".
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c6dff65535906e5a7a27010447fad0cb316a1fb
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Oct 23 17:50:07 2012 -0400

    SUNRPC: Prevent races in xs_abort_connection()
    
    commit 4bc1e68ed6a8b59be8a79eb719be515a55c7bc68 upstream.
    
    The call to xprt_disconnect_done() that is triggered by a successful
    connection reset will trigger another automatic wakeup of all tasks
    on the xprt->pending rpc_wait_queue. In particular it will cause an
    early wake up of the task that called xprt_connect().
    
    All we really want to do here is clear all the socket-specific state
    flags, so we split that functionality out of xs_sock_mark_closed()
    into a helper that can be called by xs_abort_connection()
    
    Reported-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dedf1c2d17cd81796fc25190fd194e8dd0269817
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Oct 23 11:40:02 2012 -0400

    Revert "SUNRPC: Ensure we close the socket on EPIPE errors too..."
    
    commit b9d2bb2ee537424a7f855e1f93eed44eb9ee0854 upstream.
    
    This reverts commit 55420c24a0d4d1fce70ca713f84aa00b6b74a70e.
    Now that we clear the connected flag when entering TCP_CLOSE_WAIT,
    the deadlock described in this commit is no longer possible.
    Instead, the resulting call to xs_tcp_shutdown() can interfere
    with pending reconnection attempts.
    
    Reported-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea2887242aafd45727ca22564105fd244f4c6584
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Tue Oct 23 11:35:47 2012 -0400

    SUNRPC: Clear the connect flag when socket state is TCP_CLOSE_WAIT
    
    commit d0bea455dd48da1ecbd04fedf00eb89437455fdc upstream.
    
    This is needed to ensure that we call xprt_connect() upon the next
    call to call_connect().
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f659caf90048296ca120143964222c3f8b6dae7
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Mon Oct 22 17:14:36 2012 -0400

    SUNRPC: Get rid of the xs_error_report socket callback
    
    commit f878b657ce8e7d3673afe48110ec208a29e38c4a upstream.
    
    Chris Perl reports that we're seeing races between the wakeup call in
    xs_error_report and the connect attempts. Basically, Chris has shown
    that in certain circumstances, the call to xs_error_report causes the
    rpc_task that is responsible for reconnecting to wake up early, thus
    triggering a disconnect and retry.
    
    Since the sk->sk_error_report() calls in the socket layer are always
    followed by a tcp_done() in the cases where we care about waking up
    the rpc_tasks, just let the state_change callbacks take responsibility
    for those wake ups.
    
    Reported-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Tested-by: Chris Perl <chris.perl@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71a36b53c81c3ecd1359af68ca4373e7d941a4c5
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 25 13:37:31 2012 -0700

    mm: fix XFS oops due to dirty pages without buffers on s390
    
    commit ef5d437f71afdf4afdbab99213add99f4b1318fd upstream.
    
    On s390 any write to a page (even from kernel itself) sets architecture
    specific page dirty bit.  Thus when a page is written to via buffered
    write, HW dirty bit gets set and when we later map and unmap the page,
    page_remove_rmap() finds the dirty bit and calls set_page_dirty().
    
    Dirtying of a page which shouldn't be dirty can cause all sorts of
    problems to filesystems.  The bug we observed in practice is that
    buffers from the page get freed, so when the page gets later marked as
    dirty and writeback writes it, XFS crashes due to an assertion
    BUG_ON(!PagePrivate(page)) in page_buffers() called from
    xfs_count_page_state().
    
    Similar problem can also happen when zero_user_segment() call from
    xfs_vm_writepage() (or block_write_full_page() for that matter) set the
    hardware dirty bit during writeback, later buffers get freed, and then
    page unmapped.
    
    Fix the issue by ignoring s390 HW dirty bit for page cache pages of
    mappings with mapping_cap_account_dirty().  This is safe because for
    such mappings when a page gets marked as writeable in PTE it is also
    marked dirty in do_wp_page() or do_page_fault().  When the dirty bit is
    cleared by clear_page_dirty_for_io(), the page gets writeprotected in
    page_mkclean().  So pagecache page is writeable if and only if it is
    dirty.
    
    Thanks to Hugh Dickins for pointing out mapping has to have
    mapping_cap_account_dirty() for things to work and proposing a cleaned
    up variant of the patch.
    
    The patch has survived about two hours of running fsx-linux on tmpfs
    while heavily swapping and several days of running on out build machines
    where the original problem was triggered.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 368845fde9e704288f370df57988767aab6042b4
Author: Yinghai Lu <yinghai@kernel.org>
Date:   Mon Oct 22 16:35:18 2012 -0700

    x86, mm: Trim memory in memblock to be page aligned
    
    commit 6ede1fd3cb404c0016de6ac529df46d561bd558b upstream.
    
    We will not map partial pages, so need to make sure memblock
    allocation will not allocate those bytes out.
    
    Also we will use for_each_mem_pfn_range() to loop to map memory
    range to keep them consistent.
    
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/CAE9FiQVZirvaBMFYRfXMmWEcHbKSicQEHz4VAwUv0xFCk51ZNw@mail.gmail.com
    Acked-by: Jacob Shin <jacob.shin@amd.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c87ece5a158f3907193202d84f2a316a4c363768
Author: Will Deacon <will.deacon@arm.com>
Date:   Fri Oct 19 17:53:01 2012 +0100

    ARM: 7559/1: smp: switch away from the idmap before updating init_mm.mm_count
    
    commit 5f40b909728ad784eb43aa309d3c4e9bdf050781 upstream.
    
    When booting a secondary CPU, the primary CPU hands two sets of page
    tables via the secondary_data struct:
    
    	(1) swapper_pg_dir: a normal, cacheable, shared (if SMP) mapping
    	    of the kernel image (i.e. the tables used by init_mm).
    
    	(2) idmap_pgd: an uncached mapping of the .idmap.text ELF
    	    section.
    
    The idmap is generally used when enabling and disabling the MMU, which
    includes early CPU boot. In this case, the secondary CPU switches to
    swapper as soon as it enters C code:
    
    	struct mm_struct *mm = &init_mm;
    	unsigned int cpu = smp_processor_id();
    
    	/*
    	 * All kernel threads share the same mm context; grab a
    	 * reference and switch to it.
    	 */
    	atomic_inc(&mm->mm_count);
    	current->active_mm = mm;
    	cpumask_set_cpu(cpu, mm_cpumask(mm));
    	cpu_switch_mm(mm->pgd, mm);
    
    This causes a problem on ARMv7, where the identity mapping is treated as
    strongly-ordered leading to architecturally UNPREDICTABLE behaviour of
    exclusive accesses, such as those used by atomic_inc.
    
    This patch re-orders the secondary_start_kernel function so that we
    switch to swapper before performing any exclusive accesses.
    
    Reported-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
    Cc: David McKay <david.mckay@st.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24d1745f4d77918e78ff0095ab233ff4f786287c
Author: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Date:   Thu Oct 25 13:37:51 2012 -0700

    genalloc: stop crashing the system when destroying a pool
    
    commit eedce141cd2dad8d0cefc5468ef41898949a7031 upstream.
    
    The genalloc code uses the bitmap API from include/linux/bitmap.h and
    lib/bitmap.c, which is based on long values.  Both bitmap_set from
    lib/bitmap.c and bitmap_set_ll, which is the lockless version from
    genalloc.c, use BITMAP_LAST_WORD_MASK to set the first bits in a long in
    the bitmap.
    
    That one uses (1 << bits) - 1, 0b111, if you are setting the first three
    bits.  This means that the API counts from the least significant bits
    (LSB from now on) to the MSB.  The LSB in the first long is bit 0, then.
    The same works for the lookup functions.
    
    The genalloc code uses longs for the bitmap, as it should.  In
    include/linux/genalloc.h, struct gen_pool_chunk has unsigned long
    bits[0] as its last member.  When allocating the struct, genalloc should
    reserve enough space for the bitmap.  This should be a proper number of
    longs that can fit the amount of bits in the bitmap.
    
    However, genalloc allocates an integer number of bytes that fit the
    amount of bits, but may not be an integer amount of longs.  9 bytes, for
    example, could be allocated for 70 bits.
    
    This is a problem in itself if the Least Significat Bit in a long is in
    the byte with the largest address, which happens in Big Endian machines.
    This means genalloc is not allocating the byte in which it will try to
    set or check for a bit.
    
    This may end up in memory corruption, where genalloc will try to set the
    bits it has not allocated.  In fact, genalloc may not set these bits
    because it may find them already set, because they were not zeroed since
    they were not allocated.  And that's what causes a BUG when
    gen_pool_destroy is called and check for any set bits.
    
    What really happens is that genalloc uses kmalloc_node with __GFP_ZERO
    on gen_pool_add_virt.  With SLAB and SLUB, this means the whole slab
    will be cleared, not only the requested bytes.  Since struct
    gen_pool_chunk has a size that is a multiple of 8, and slab sizes are
    multiples of 8, we get lucky and allocate and clear the right amount of
    bytes.
    
    Hower, this is not the case with SLOB or with older code that did memset
    after allocating instead of using __GFP_ZERO.
    
    So, a simple module as this (running 3.6.0), will cause a crash when
    rmmod'ed.
    
      [root@phantom-lp2 foo]# cat foo.c
      #include <linux/kernel.h>
      #include <linux/module.h>
      #include <linux/init.h>
      #include <linux/genalloc.h>
    
      MODULE_LICENSE("GPL");
      MODULE_VERSION("0.1");
    
      static struct gen_pool *foo_pool;
    
      static __init int foo_init(void)
      {
              int ret;
              foo_pool = gen_pool_create(10, -1);
              if (!foo_pool)
                      return -ENOMEM;
              ret = gen_pool_add(foo_pool, 0xa0000000, 32 << 10, -1);
              if (ret) {
                      gen_pool_destroy(foo_pool);
                      return ret;
              }
              return 0;
      }
    
      static __exit void foo_exit(void)
      {
              gen_pool_destroy(foo_pool);
      }
    
      module_init(foo_init);
      module_exit(foo_exit);
      [root@phantom-lp2 foo]# zcat /proc/config.gz | grep SLOB
      CONFIG_SLOB=y
      [root@phantom-lp2 foo]# insmod ./foo.ko
      [root@phantom-lp2 foo]# rmmod foo
      ------------[ cut here ]------------
      kernel BUG at lib/genalloc.c:243!
      cpu 0x4: Vector: 700 (Program Check) at [c0000000bb0e7960]
          pc: c0000000003cb50c: .gen_pool_destroy+0xac/0x110
          lr: c0000000003cb4fc: .gen_pool_destroy+0x9c/0x110
          sp: c0000000bb0e7be0
         msr: 8000000000029032
        current = 0xc0000000bb0e0000
        paca    = 0xc000000006d30e00   softe: 0        irq_happened: 0x01
          pid   = 13044, comm = rmmod
      kernel BUG at lib/genalloc.c:243!
      [c0000000bb0e7ca0] d000000004b00020 .foo_exit+0x20/0x38 [foo]
      [c0000000bb0e7d20] c0000000000dff98 .SyS_delete_module+0x1a8/0x290
      [c0000000bb0e7e30] c0000000000097d4 syscall_exit+0x0/0x94
      --- Exception: c00 (System Call) at 000000800753d1a0
      SP (fffd0b0e640) is in userspace
    
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Benjamin Gaignard <benjamin.gaignard@stericsson.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3146a25c513a1a3d5452db06d711a0a816e76584
Author: Jan Luebbe <jlu@pengutronix.de>
Date:   Thu Oct 25 13:38:11 2012 -0700

    drivers/rtc/rtc-imxdi.c: add missing spin lock initialization
    
    commit fee0de7791f967c2c5f0d43eb7b7261761b45e64 upstream.
    
    Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Cc: Roland Stigge <stigge@antcom.de>
    Cc: Grant Likely <grant.likely@secretlab.ca>
    Tested-by: Roland Stigge <stigge@antcom.de>
    Cc: Sascha Hauer <kernel@pengutronix.de>
    Cc: Russell King <linux@arm.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fddae5c4eda4ebc63ae47f3d47e142ca08b31ff
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Oct 25 13:38:16 2012 -0700

    fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check
    
    commit 12176503366885edd542389eed3aaf94be163fdb upstream.
    
    The compat ioctl for VIDEO_SET_SPU_PALETTE was missing an error check
    while converting ioctl arguments.  This could lead to leaking kernel
    stack contents into userspace.
    
    Patch extracted from existing fix in grsecurity.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: David Miller <davem@davemloft.net>
    Cc: Brad Spengler <spender@grsecurity.net>
    Cc: PaX Team <pageexec@freemail.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 419cbf261a717df51878cadd00488ec2a9d9b3a4
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Oct 25 13:38:14 2012 -0700

    gen_init_cpio: avoid stack overflow when expanding
    
    commit 20f1de659b77364d55d4e7fad2ef657e7730323f upstream.
    
    Fix possible overflow of the buffer used for expanding environment
    variables when building file list.
    
    In the extremely unlikely case of an attacker having control over the
    environment variables visible to gen_init_cpio, control over the
    contents of the file gen_init_cpio parses, and gen_init_cpio was built
    without compiler hardening, the attacker can gain arbitrary execution
    control via a stack buffer overflow.
    
      $ cat usr/crash.list
      file foo ${BIG}${BIG}${BIG}${BIG}${BIG}${BIG} 0755 0 0
      $ BIG=$(perl -e 'print "A" x 4096;') ./usr/gen_init_cpio usr/crash.list
      *** buffer overflow detected ***: ./usr/gen_init_cpio terminated
    
    This also replaces the space-indenting with tabs.
    
    Patch based on existing fix extracted from grsecurity.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Michal Marek <mmarek@suse.cz>
    Cc: Brad Spengler <spender@grsecurity.net>
    Cc: PaX Team <pageexec@freemail.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 218246de04389b7aa0d1e799ed8b0115f342ee37
Author: Stefán Freyr <stefan.freyr@gmail.com>
Date:   Fri Oct 19 22:46:00 2012 +0200

    ALSA: hda - add dock support for Thinkpad T430
    
    commit 84f98fdf7865fbd35b312eb39ea91e5618c514c7 upstream.
    
    I have a Lenovo ThinkPad T430 and an UltraBase Series 3 docking
    station.
    
    Without this patch, if I plug my headphones into the jack on the
    computer, everything works fine. The computer speakers mute and the
    audio is played in the headphones. However, if I plug into the docking
    station headphone jack the computer speakers are muted but there is no
    audio in the headphones.
    
    Addresses https://bugs.launchpad.net/bugs/1060372
    
    Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c1e11543381f3ff0cee52b69903928ff881c0cb
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Oct 19 13:27:04 2012 -0400

    drm/radeon: add error output if VM CS fails on cayman
    
    commit c71721324c612f7f040657ce9917d87f530f9784 upstream.
    
    So we know why the CS was rejected.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8357dde8b780b426d398f9e3701fdc16f0856766
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Oct 16 12:51:45 2012 -0400

    drm/radeon: add some new SI PCI ids
    
    commit b6aa22db7857ab7ed042d6c56b800bfc727cfdff upstream.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>