commit b2824f4e0990716407b0c0e7acee75bb6353febf
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Dec 17 09:27:45 2012 -0800

    Linux 3.6.11

commit 8647f31166b23f82f8ba33b3bf563e9f2bbd8956
Author: Tommi Rantala <tt.rantala@gmail.com>
Date:   Thu Nov 22 03:23:16 2012 +0000

    sctp: fix -ENOMEM result with invalid user space pointer in sendto() syscall
    
    [ Upstream commit 6e51fe7572590d8d86e93b547fab6693d305fd0d ]
    
    Consider the following program, that sets the second argument to the
    sendto() syscall incorrectly:
    
     #include <string.h>
     #include <arpa/inet.h>
     #include <sys/socket.h>
    
     int main(void)
     {
             int fd;
             struct sockaddr_in sa;
    
             fd = socket(AF_INET, SOCK_STREAM, 132 /*IPPROTO_SCTP*/);
             if (fd < 0)
                     return 1;
    
             memset(&sa, 0, sizeof(sa));
             sa.sin_family = AF_INET;
             sa.sin_addr.s_addr = inet_addr("127.0.0.1");
             sa.sin_port = htons(11111);
    
             sendto(fd, NULL, 1, 0, (struct sockaddr *)&sa, sizeof(sa));
    
             return 0;
     }
    
    We get -ENOMEM:
    
     $ strace -e sendto ./demo
     sendto(3, NULL, 1, 0, {sa_family=AF_INET, sin_port=htons(11111), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ENOMEM (Cannot allocate memory)
    
    Propagate the error code from sctp_user_addto_chunk(), so that we will
    tell user space what actually went wrong:
    
     $ strace -e sendto ./demo
     sendto(3, NULL, 1, 0, {sa_family=AF_INET, sin_port=htons(11111), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EFAULT (Bad address)
    
    Noticed while running Trinity (the syscall fuzzer).
    
    Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11b435b090b40a36d3cf1eb45de8eceb012af93f
Author: Tommi Rantala <tt.rantala@gmail.com>
Date:   Tue Nov 27 04:01:46 2012 +0000

    sctp: fix memory leak in sctp_datamsg_from_user() when copy from user space fails
    
    [ Upstream commit be364c8c0f17a3dd42707b5a090b318028538eb9 ]
    
    Trinity (the syscall fuzzer) discovered a memory leak in SCTP,
    reproducible e.g. with the sendto() syscall by passing invalid
    user space pointer in the second argument:
    
     #include <string.h>
     #include <arpa/inet.h>
     #include <sys/socket.h>
    
     int main(void)
     {
             int fd;
             struct sockaddr_in sa;
    
             fd = socket(AF_INET, SOCK_STREAM, 132 /*IPPROTO_SCTP*/);
             if (fd < 0)
                     return 1;
    
             memset(&sa, 0, sizeof(sa));
             sa.sin_family = AF_INET;
             sa.sin_addr.s_addr = inet_addr("127.0.0.1");
             sa.sin_port = htons(11111);
    
             sendto(fd, NULL, 1, 0, (struct sockaddr *)&sa, sizeof(sa));
    
             return 0;
     }
    
    As far as I can tell, the leak has been around since ~2003.
    
    Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c60fcb1a18086c3050ff05c49f16ce4bf6d11421
Author: nikolay@redhat.com <nikolay@redhat.com>
Date:   Thu Nov 29 01:37:59 2012 +0000

    bonding: fix race condition in bonding_store_slaves_active
    
    [ Upstream commit e196c0e579902f42cf72414461fb034e5a1ffbf7 ]
    
    Race between bonding_store_slaves_active() and slave manipulation
     functions. The bond_for_each_slave use in bonding_store_slaves_active()
     is not protected by any synchronization mechanism.
     NULL pointer dereference is easy to reach.
     Fixed by acquiring the bond->lock for the slave walk.
    
     v2: Make description text < 75 columns
    
    Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ba4bcac7bec6cb59ab193156695a5c868e89cd2
Author: Sarveshwar Bandi <sarveshwar.bandi@emulex.com>
Date:   Wed Nov 21 04:35:03 2012 +0000

    bonding: Bonding driver does not consider the gso_max_size/gso_max_segs setting of slave devices.
    
    [ Upstream commit 0e376bd0b791ac6ac6bdb051492df0769c840848 ]
    
    Patch sets the lowest gso_max_size and gso_max_segs values of the slave devices during enslave and detach.
    
    Signed-off-by: Sarveshwar Bandi <sarveshwar.bandi@emulex.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be59563528b8b8668ab3c6cf5ec5091937bf9f2a
Author: Bjørn Mork <bjorn@mork.no>
Date:   Tue Nov 13 03:19:43 2012 +0000

    net: cdc_ncm: add Huawei devices
    
    [ Upstream commit bbc8d9228ea8e37ce29fa96150d10b85a2c7be60 ]
    
    A number of Huawei 3G and LTE modems implement a CDC NCM function,
    including the necessary functional descriptors, but using a non
    standard interface layout and class/subclass/protocol codes.
    
    These devices can be handled by this driver with only a minor
    change to the probing logic, allowing a single combined control
    and data interface.  This works because the devices
    - include a CDC Union descriptor labelling the combined
      interface as both master and slave, and
    - have an alternate setting #1 for the bulk endpoints on the
      combined interface.
    
    The 3G/LTE network connection is managed by vendor specific AT
    commands on a serial function in the same composite device.
    Handling the managment function is out of the scope of this
    driver.  It will be handled by an appropriate USB serial
    driver.
    
    Reported-and-Tested-by: Olof Ermis <olof.ermis@gmail.com>
    Reported-and-Tested-by: Tommy Cheng <tommy7765@yahoo.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e635504f704be0cfb3bb24823dcf2790ccb7ff4
Author: Jay Purohit <jspurohit@velocitylimitless.com>
Date:   Sun Oct 14 07:07:21 2012 +0000

    usb/ipheth: Add iPhone 5 support
    
    [ Upstream commit af1b85e49089f945deb46258b0fc4bc9910afb22 ]
    
    I noticed that the iPhone ethernet driver did not support
    iPhone 5. I quickly added support to it in my kernel, here's
    a patch.
    
    Signed-off-by: Jay Purohit <jspurohit@velocitylimitless.com>
    Acked-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
    Signed-off-by: Jan Ceuleers <jan.ceuleers@computer.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 973e442c150c34d5b20a7e20f514aea515053f85
Author: Neal Cardwell <ncardwell@google.com>
Date:   Sun Dec 9 11:09:54 2012 +0000

    inet_diag: validate port comparison byte code to prevent unsafe reads
    
    [ Upstream commit 5e1f54201cb481f40a04bc47e1bc8c093a189e23 ]
    
    Add logic to verify that a port comparison byte code operation
    actually has the second inet_diag_bc_op from which we read the port
    for such operations.
    
    Previously the code blindly referenced op[1] without first checking
    whether a second inet_diag_bc_op struct could fit there. So a
    malicious user could make the kernel read 4 bytes beyond the end of
    the bytecode array by claiming to have a whole port comparison byte
    code (2 inet_diag_bc_op structs) when in fact the bytecode was not
    long enough to hold both.
    
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38a5e42f97db0bdc47f6f5128777cc6f09ed5669
Author: Neal Cardwell <ncardwell@google.com>
Date:   Sat Dec 8 19:43:23 2012 +0000

    inet_diag: avoid unsafe and nonsensical prefix matches in inet_diag_bc_run()
    
    [ Upstream commit f67caec9068cee426ec23cf9005a1dee2ecad187 ]
    
    Add logic to check the address family of the user-supplied conditional
    and the address family of the connection entry. We now do not do
    prefix matching of addresses from different address families (AF_INET
    vs AF_INET6), except for the previously existing support for having an
    IPv4 prefix match an IPv4-mapped IPv6 address (which this commit
    maintains as-is).
    
    This change is needed for two reasons:
    
    (1) The addresses are different lengths, so comparing a 128-bit IPv6
    prefix match condition to a 32-bit IPv4 connection address can cause
    us to unwittingly walk off the end of the IPv4 address and read
    garbage or oops.
    
    (2) The IPv4 and IPv6 address spaces are semantically distinct, so a
    simple bit-wise comparison of the prefixes is not meaningful, and
    would lead to bogus results (except for the IPv4-mapped IPv6 case,
    which this commit maintains).
    
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d9f468752e874cc9aae3d0b23a3fd217ea7ddc3
Author: Neal Cardwell <ncardwell@google.com>
Date:   Sat Dec 8 19:43:22 2012 +0000

    inet_diag: validate byte code to prevent oops in inet_diag_bc_run()
    
    [ Upstream commit 405c005949e47b6e91359159c24753519ded0c67 ]
    
    Add logic to validate INET_DIAG_BC_S_COND and INET_DIAG_BC_D_COND
    operations.
    
    Previously we did not validate the inet_diag_hostcond, address family,
    address length, and prefix length. So a malicious user could make the
    kernel read beyond the end of the bytecode array by claiming to have a
    whole inet_diag_hostcond when the bytecode was not long enough to
    contain a whole inet_diag_hostcond of the given address family. Or
    they could make the kernel read up to about 27 bytes beyond the end of
    a connection address by passing a prefix length that exceeded the
    length of addresses of the given family.
    
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72c455390b576a2b125d9a98106b8b61a74a5072
Author: Neal Cardwell <ncardwell@google.com>
Date:   Sat Dec 8 19:43:21 2012 +0000

    inet_diag: fix oops for IPv4 AF_INET6 TCP SYN-RECV state
    
    [ Upstream commit 1c95df85ca49640576de2f0a850925957b547b84 ]
    
    Fix inet_diag to be aware of the fact that AF_INET6 TCP connections
    instantiated for IPv4 traffic and in the SYN-RECV state were actually
    created with inet_reqsk_alloc(), instead of inet6_reqsk_alloc(). This
    means that for such connections inet6_rsk(req) returns a pointer to a
    random spot in memory up to roughly 64KB beyond the end of the
    request_sock.
    
    With this bug, for a server using AF_INET6 TCP sockets and serving
    IPv4 traffic, an inet_diag user like `ss state SYN-RECV` would lead to
    inet_diag_fill_req() causing an oops or the export to user space of 16
    bytes of kernel memory as a garbage IPv6 address, depending on where
    the garbage inet6_rsk(req) pointed.
    
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f410b53608cc49ab1d6bdfd36e7843f851ae1d3b
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sun Dec 9 23:41:06 2012 +0000

    ipv4: ip_check_defrag must not modify skb before unsharing
    
    [ Upstream commit 1bf3751ec90cc3174e01f0d701e8449ce163d113 ]
    
    ip_check_defrag() might be called from af_packet within the
    RX path where shared SKBs are used, so it must not modify
    the input SKB before it has unshared it for defragmentation.
    Use skb_copy_bits() to get the IP header and only pull in
    everything later.
    
    The same is true for the other caller in macvlan as it is
    called from dev->rx_handler which can also get a shared SKB.
    
    Reported-by: Eric Leblond <eric@regit.org>
    Cc: stable@vger.kernel.org
    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@linuxfoundation.org>

commit 67e248587152f3976ab9277a48442dbec1ac6fdd
Author: Neal Cardwell <ncardwell@google.com>
Date:   Sat Nov 24 18:54:37 2012 +0000

    ipv4: avoid passing NULL to inet_putpeer() in icmpv4_xrlim_allow()
    
    [ Upstream commit e1a676424c290b1c8d757e3860170ac7ecd89af4 ]
    
    inet_getpeer_v4() can return NULL under OOM conditions, and while
    inet_peer_xrlim_allow() is OK with a NULL peer, inet_putpeer() will
    crash.
    
    This code path now uses the same idiom as the others from:
    1d861aa4b3fb08822055345f480850205ffe6170 ("inet: Minimize use of
    cached route inetpeer.").
    
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1322cf6f121852ba706ec7ae7dab636fe4533447
Author: Julian Anastasov <ja@ssi.bg>
Date:   Thu Nov 22 23:04:14 2012 +0200

    ipv4: do not cache looped multicasts
    
    [ Upstream commit 636174219b52b5a8bc51bc23bbcba97cd30a65e3 ]
    
    	Starting from 3.6 we cache output routes for
    multicasts only when using route to 224/4. For local receivers
    we can set RTCF_LOCAL flag depending on the membership but
    in such case we use maddr and saddr which are not caching
    keys as before. Additionally, we can not use same place to
    cache routes that differ in RTCF_LOCAL flag value.
    
    	Fix it by caching only RTCF_MULTICAST entries
    without RTCF_LOCAL (send-only, no loopback). As a side effect,
    we avoid unneeded lookup for fnhe when not caching because
    multicasts are not redirected and they do not learn PMTU.
    
    	Thanks to Maxime Bizon for showing the caching
    problems in __mkroute_output for 3.6 kernels: different
    RTCF_LOCAL flag in cache can lead to wrong ip_mc_output or
    ip_output call and the visible problem is that traffic can
    not reach local receivers via loopback.
    
    Reported-by: Maxime Bizon <mbizon@freebox.fr>
    Tested-by: Maxime Bizon <mbizon@freebox.fr>
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0541e18c62297c69592160e33ce0f460ae490f5f
Author: Alexander Shiyan <shc_work@mail.ru>
Date:   Tue Nov 20 09:59:11 2012 +0000

    irda: sir_dev: Fix copy/paste typo
    
    [ Upstream commit 2355a62bcbdcc4b567425bab036bfab6ade87eed ]
    
    Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit acc3e478d8d413bf442e788b4f5ee5352dc62040
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Nov 20 15:14:51 2012 -0500

    ipv6: fix inet6_csk_update_pmtu() return value
    
    [ Upstream commit b4dd006760d671337b62532277b0296bcee8dfd4 ]
    
    In case of error, inet6_csk_update_pmtu() should consistently
    return NULL.
    
    Bug added in commit 35ad9b9cf7d8a
    (ipv6: Add helper inet6_csk_update_pmtu().)
    
    Reported-by: Lluís Batlle i Rossell <viric@viric.name>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be264e172c50e83d50724f03f4fa611f97096880
Author: Alan Cox <alan@linux.intel.com>
Date:   Tue Nov 20 06:31:57 2012 +0000

    ne2000: add the right platform device
    
    [ Upstream commit da9da01d9199b5bb15289d0859053c9aa3a34ac0 ]
    
    Without this udev doesn't have a way to key the ne device to the platform
    device.
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0f1fb5440da9656fc380fac544265ec891be844
Author: Francois Romieu <romieu@fr.zoreil.com>
Date:   Sun Nov 18 23:41:50 2012 +0100

    sis900: fix sis900_set_mode call parameters.
    
    [ Upstream commit 8495c0da20bc496ac9d5da2b292adb28f61d2713 ]
    
    Leftover of 57d6d456cfb89264f87d24f52640ede23fdf12bd ("sis900: stop
    using net_device.{base_addr, irq} and convert to __iomem.").
    
    It is needed for suspend / resume to work.
    
    Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
    Tested-by: Jan Janssen <medhefgo@web.de>
    Cc: Daniele Venzano <venza@brownhat.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50439c4394f0731dca76ef29916ce36abc093ad9
Author: Huang Ying <ying.huang@intel.com>
Date:   Wed Oct 24 14:54:13 2012 +0800

    PCI/PM: Fix deadlock when unbinding device if parent in D3cold
    
    commit 90b5c1d7c45eeb622302680ff96ed30c1a2b6f0e upstream.
    
    If a PCI device and its parents are put into D3cold, unbinding the
    device will trigger deadlock as follow:
    
    - driver_unbind
      - device_release_driver
        - device_lock(dev)				<--- previous lock here
        - __device_release_driver
          - pm_runtime_get_sync
            ...
              - rpm_resume(dev)
                - rpm_resume(dev->parent)
                  ...
                    - pci_pm_runtime_resume
                      ...
                      - pci_set_power_state
                        - __pci_start_power_transition
                          - pci_wakeup_bus(dev->parent->subordinate)
                            - pci_walk_bus
                              - device_lock(dev)	<--- deadlock here
    
    
    If we do not do device_lock in pci_walk_bus, we can avoid deadlock.
    Device_lock in pci_walk_bus is introduced in commit:
    d71374dafbba7ec3f67371d3b7e9f6310a588808, corresponding email thread
    is: https://lkml.org/lkml/2006/5/26/38.  The patch author Zhang Yanmin
    said device_lock is added to pci_walk_bus because:
    
      Some error handling functions call pci_walk_bus. For example, PCIe
      aer. Here we lock the device, so the driver wouldn't detach from the
      device, as the cb might call driver's callback function.
    
    So I fixed the deadlock as follows:
    
    - remove device_lock from pci_walk_bus
    - add device_lock into callback if callback will call driver's callback
    
    I checked pci_walk_bus users one by one, and found only PCIe aer needs
    device lock.
    
    Signed-off-by: Huang Ying <ying.huang@intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    CC: stable@vger.kernel.org		# v3.6+
    CC: Zhang Yanmin <yanmin.zhang@intel.com>

commit 2989161c3a4079f4b3340464a3a83af7bdb026ea
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 18 04:55:36 2012 -0700

    rcu: Fix batch-limit size problem
    
    commit 878d7439d0f45a95869e417576774673d1fa243f upstream.
    
    Commit 29c00b4a1d9e27 (rcu: Add event-tracing for RCU callback
    invocation) added a regression in rcu_do_batch()
    
    Under stress, RCU is supposed to allow to process all items in queue,
    instead of a batch of 10 items (blimit), but an integer overflow makes
    the effective limit being 1.  So, unless there is frequent idle periods
    (during which RCU ignores batch limits), RCU can be forced into a
    state where it cannot keep up with the callback-generation rate,
    eventually resulting in OOM.
    
    This commit therefore converts a few variables in rcu_do_batch() from
    int to long to fix this problem, along with the module parameters
    controlling the batch limits.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f063c3cae7e16c5d45941ab358aa8063349724f8
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Thu Nov 8 10:17:01 2012 -0500

    USB: EHCI: bugfix: urb->hcpriv should not be NULL
    
    commit 2656a9abcf1ec8dd5fee6a75d6997a0f2fa0094e upstream.
    
    This patch (as1632b) fixes a bug in ehci-hcd.  The USB core uses
    urb->hcpriv to determine whether or not an URB is active; host
    controller drivers are supposed to set this pointer to a non-NULL
    value when an URB is queued.  However ehci-hcd sets it to NULL for
    isochronous URBs, which defeats the check in usbcore.
    
    In itself this isn't a big deal.  But people have recently found that
    certain sequences of actions will cause the snd-usb-audio driver to
    reuse URBs without waiting for them to complete.  In the absence of
    proper checking by usbcore, the URBs get added to their endpoint list
    twice.  This leads to list corruption and a system freeze.
    
    The patch makes ehci-hcd assign a meaningful value to urb->hcpriv for
    isochronous URBs.  Improving robustness always helps.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Artem S. Tashkinov <t.artem@lycos.com>
    Reported-by: Christof Meerwald <cmeerw@cmeerw.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0ca3491f050132ed25ed2c213a7c41069dd75b1
Author: Zheng Liu <gnehzuil.liu@gmail.com>
Date:   Thu Nov 8 16:58:46 2012 -0800

    perf test: fix a build error on builtin-test
    
    commit 12f8f74b2a4d26c4facfa7ef99487cf0930f6ef7 upstream.
    
    Recently I build perf and get a build error on builtin-test.c. The error is as
    following:
    
    $ make
        CC perf.o
        CC builtin-test.o
    cc1: warnings being treated as errors
    builtin-test.c: In function ‘sched__get_first_possible_cpu’:
    builtin-test.c:977: warning: implicit declaration of function ‘CPU_ALLOC’
    builtin-test.c:977: warning: nested extern declaration of ‘CPU_ALLOC’
    builtin-test.c:977: warning: assignment makes pointer from integer without a cast
    builtin-test.c:978: warning: implicit declaration of function ‘CPU_ALLOC_SIZE’
    builtin-test.c:978: warning: nested extern declaration of ‘CPU_ALLOC_SIZE’
    builtin-test.c:979: warning: implicit declaration of function ‘CPU_ZERO_S’
    builtin-test.c:979: warning: nested extern declaration of ‘CPU_ZERO_S’
    builtin-test.c:982: warning: implicit declaration of function ‘CPU_FREE’
    builtin-test.c:982: warning: nested extern declaration of ‘CPU_FREE’
    builtin-test.c:992: warning: implicit declaration of function ‘CPU_ISSET_S’
    builtin-test.c:992: warning: nested extern declaration of ‘CPU_ISSET_S’
    builtin-test.c:998: warning: implicit declaration of function ‘CPU_CLR_S’
    builtin-test.c:998: warning: nested extern declaration of ‘CPU_CLR_S’
    make: *** [builtin-test.o] Error 1
    
    This problem is introduced in 3e7c439a. CPU_ALLOC and related macros are
    missing in sched__get_first_possible_cpu function. In 54489c18, commiter
    mentioned that CPU_ALLOC has been removed. So CPU_ALLOC calls in this
    function are removed to let perf to be built.
    
    Signed-off-by: Vinson Lee <vlee@twitter.com>
    Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Vinson Lee <vlee@twitter.com>
    Cc: Zheng Liu <wenqing.lz@taobao.com>
    Link: http://lkml.kernel.org/r/1352422726-31114-1-git-send-email-vlee@twitter.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7835873b63ae27db75c500bda28cbd56f098272
Author: Dan Williams <dcbw@redhat.com>
Date:   Thu Nov 8 12:47:41 2012 -0600

    cdc-acm: implement TIOCSSERIAL to avoid blocking close(2)
    
    commit ba2d8ce9db0a61505362bb17b8899df3d3326146 upstream.
    
    Some devices (ex Nokia C7) simply don't respond at all when data is sent
    to some of their USB interfaces.  The data gets stuck in the TTYs queue
    and sits there until close(2), which them blocks because closing_wait
    defaults to 30 seconds (even though the fd is O_NONBLOCK).  This is
    rarely desired.  Implement the standard mechanism to adjust closing_wait
    and let applications handle it how they want to.
    
    See also 02303f73373aa1da19dbec510ec5a4e2576f9610 for usb_wwan.c.
    
    Signed-off-by: Dan Williams <dcbw@redhat.com>
    Acked-by: Oliver Neukum <oneukum@suse.de>
    Tested-by: Aleksander Morgado <aleksander@gnu.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4d2d050bf079f65c5303fc73dc9a20c2931c1e2
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Thu Nov 29 22:31:16 2012 -0500

    ring-buffer: Fix race between integrity check and readers
    
    commit 9366c1ba13fbc41bdb57702e75ca4382f209c82f upstream.
    
    The function rb_check_pages() was added to make sure the ring buffer's
    pages were sane. This check is done when the ring buffer size is modified
    as well as when the iterator is released (closing the "trace" file),
    as that was considered a non fast path and a good place to do a sanity
    check.
    
    The problem is that the check does not have any locks around it.
    If one process were to read the trace file, and another were to read
    the raw binary file, the check could happen while the reader is reading
    the file.
    
    The issues with this is that the check requires to clear the HEAD page
    before doing the full check and it restores it afterward. But readers
    require the HEAD page to exist before it can read the buffer, otherwise
    it gives a nasty warning and disables the buffer.
    
    By adding the reader lock around the check, this keeps the race from
    happening.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ccb378e79f35451c5985833e3e4c3a153f1b19e
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Thu Nov 29 22:27:22 2012 -0500

    ring-buffer: Fix NULL pointer if rb_set_head_page() fails
    
    commit 54f7be5b831254199522523ccab4c3d954bbf576 upstream.
    
    The function rb_set_head_page() searches the list of ring buffer
    pages for a the page that has the HEAD page flag set. If it does
    not find it, it will do a WARN_ON(), disable the ring buffer and
    return NULL, as this should never happen.
    
    But if this bug happens to happen, not all callers of this function
    can handle a NULL pointer being returned from it. That needs to be
    fixed.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0af50117ada9b3af0fe6b68ce0d9ba8c5a0ab02a
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Sat Jun 9 19:10:27 2012 +0300

    ftrace: Clear bits properly in reset_iter_read()
    
    commit 70f77b3f7ec010ff9624c1f2e39a81babc9e2429 upstream.
    
    There is a typo here where '&' is used instead of '|' and it turns the
    statement into a noop.  The original code is equivalent to:
    
    	iter->flags &= ~((1 << 2) & (1 << 4));
    
    Link: http://lkml.kernel.org/r/20120609161027.GD6488@elgon.mountain
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86433feb1f8f76eeb6966c7c7ae3b1ff0baf2e5f
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Wed Oct 17 13:44:06 2012 -0700

    xhci: Extend Fresco Logic MSI quirk.
    
    commit bba18e33f25072ebf70fd8f7f0cdbf8cdb59a746 upstream.
    
    Ali reports that plugging a device into the Fresco Logic xHCI host with
    PCI device ID 1400 produces an IRQ error:
    
     do_IRQ: 3.176 No irq handler for vector (irq -1)
    
    Other early Fresco Logic host revisions don't support MSI, even though
    their PCI config space claims they do.  Extend the quirk to disabling
    MSI to this chipset revision.  Also enable the short transfer quirk,
    since it's likely this revision also has that quirk, and it should be
    harmless to enable.
    
    04:00.0 0c03: 1b73:1400 (rev 01) (prog-if 30 [XHCI])
            Subsystem: 1d5c:1000
            Physical Slot: 3
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin A routed to IRQ 51
            Region 0: Memory at d4600000 (32-bit, non-prefetchable) [size=64K]
            Capabilities: [50] Power Management version 3
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
                    Address: 00000000feeff00c  Data: 41b1
            Capabilities: [80] Express (v1) Endpoint, MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us
                            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 512 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
            Kernel driver in use: xhci_hcd
    
    This patch should be backported to stable kernels as old as 2.6.36, that
    contain the commit f5182b4155b9d686c5540a6822486400e34ddd98 "xhci:
    Disable MSI for some Fresco Logic hosts."
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Reported-by: A Sh <smr.ash1991@gmail.com>
    Tested-by: A Sh <smr.ash1991@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21bf6336529eb45c20bd30c73fc65c5874499c8b
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Nov 26 12:36:21 2012 -0500

    USB: OHCI: workaround for hardware bug: retired TDs not added to the Done Queue
    
    commit 50ce5c0683aa83eb161624ea89daa5a9eee0c2ce upstream.
    
    This patch (as1636) is a partial workaround for a hardware bug
    affecting OHCI controllers by NVIDIA at least, maybe others too.  When
    the controller retires a Transfer Descriptor, it is supposed to add
    the TD onto the Done Queue.  But sometimes this doesn't happen, with
    the result that ohci-hcd never realizes the corresponding transfer has
    finished.  Symptoms can vary; a typical result is that USB audio stops
    working after a while.
    
    The patch works around the problem by recognizing that TDs are always
    processed in order.  Therefore, if a later TD is found on the Done
    Queue than all the earlier TDs for the same endpoint must be finished
    as well.
    
    Unfortunately this won't solve the problem in cases where the missing
    TD is the last one in the endpoint's queue.  A complete fix would
    require a signficant amount of change to the driver.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a528345ebd5e15732690ffb4fab211a757c9fe9
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Fri Nov 30 13:02:50 2012 +0100

    ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist
    
    commit d0c2ce16bec0afa6013b4c5220ca4c9c67210215 upstream.
    
    The ACPI video driver can't control backlight correctly on
    Asus UL30VT.  Vendor driver (asus-laptop) can work.  This patch is to
    add "Asus UL30VT" to ACPI video detect blacklist in order to use
    asus-laptop for video control on the "Asus UL30VT" rather than ACPI
    video driver.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=32592
    Reported-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 909cd1c7954423bb3db9819c4bba3063387bfb9d
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Tue Dec 4 23:30:19 2012 +0100

    ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000
    
    commit 129ff8f8d58297b04f47b5d6fad81aa2d08404e1 upstream.
    
    Or else the laptop will boot with a dimmed screen.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=51141
    Tested-by: Stefan Nagy <public@stefan-nagy.at>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a08b27b668958c2771def5b689de1dd03e98938
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Fri Nov 30 13:05:05 2012 +0100

    ACPI / PNP: Do not crash due to stale pointer use during system resume
    
    commit a6b5e88c0e42093b9057856f35770966c8c591e3 upstream.
    
    During resume from system suspend the 'data' field of
    struct pnp_dev in pnpacpi_set_resources() may be a stale pointer,
    due to removal of the associated ACPI device node object in the
    previous suspend-resume cycle.  This happens, for example, if a
    dockable machine is booted in the docking station and then suspended
    and resumed and suspended again.  If that happens,
    pnpacpi_build_resource_template() called from pnpacpi_set_resources()
    attempts to use that pointer and crashes.
    
    However, pnpacpi_set_resources() actually checks the device's ACPI
    handle, attempts to find the ACPI device node object attached to it
    and returns an error code if that fails, so in fact it knows what the
    correct value of dev->data should be.  Use this observation to update
    dev->data with the correct value if necessary and dump a call trace
    if that's the case (once).
    
    We still need to fix the root cause of this issue, but preventing
    systems from crashing because of it is an improvement too.
    
    Reported-and-tested-by: Zdenek Kabelac <zdenek.kabelac@gmail.com>
    References: https://bugzilla.kernel.org/show_bug.cgi?id=51071
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cdc43cb82c06bcbda97b29b704edc1c346809269
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Wed Nov 21 23:12:12 2012 +0100

    ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist.
    
    commit 876ab79055019e248508cfd0dee7caa3c0c831ed upstream.
    
    Sony Vaio VPCEB1S1E does not resume correctly without
    acpi_sleep=nonvs, so add it to the ACPI sleep blacklist.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=48781
    Reported-by: Sébastien Wilmet <swilmet@gnome.org>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f13bd1400f866d09ea5be07379cb5b7f0196110
Author: Kamil Iskra <kamil@iskra.name>
Date:   Fri Nov 16 22:28:58 2012 +0100

    ACPI / battery: Correct battery capacity values on Thinkpads
    
    commit 4000e626156935dfb626321ce09cae2c833eabbb upstream.
    
    Add a quirk to correctly report battery capacity on 2010 and 2011
    Lenovo Thinkpad models.
    
    The affected models that I tested (x201, t410, t410s, and x220)
    exhibit a problem where, when battery capacity reporting unit is mAh,
    the values being reported are wrong.  Pre-2010 and 2012 models appear
    to always report in mWh and are thus unaffected.  Also, in mid-2012
    Lenovo issued a BIOS update for the 2011 models that fixes the issue
    (tested on x220 with a post-1.29 BIOS).  No such update is available
    for the 2010 models, so those still need this patch.
    
    Problem description: for some reason, the affected Thinkpads switch
    the reporting unit between mAh and mWh; generally, mAh is used when a
    laptop is plugged in and mWh when it's unplugged, although a
    suspend/resume or rmmod/modprobe is needed for the switch to take
    effect.  The values reported in mAh are *always* wrong.  This does
    not appear to be a kernel regression; I believe that the values were
    never reported correctly.  I tested back to kernel 2.6.34, with
    multiple machines and BIOS versions.
    
    Simply plugging a laptop into mains before turning it on is enough to
    reproduce the problem.  Here's a sample /proc/acpi/battery/BAT0/info
    from Thinkpad x220 (before a BIOS update) with a 4-cell battery:
    
    present:                 yes
    design capacity:         2886 mAh
    last full capacity:      2909 mAh
    battery technology:      rechargeable
    design voltage:          14800 mV
    design capacity warning: 145 mAh
    design capacity low:     13 mAh
    cycle count:              0
    capacity granularity 1:  1 mAh
    capacity granularity 2:  1 mAh
    model number:            42T4899
    serial number:           21064
    battery type:            LION
    OEM info:                SANYO
    
    Once the laptop switches the unit to mWh (unplug from mains, suspend,
    resume), the output changes to:
    
    present:                 yes
    design capacity:         28860 mWh
    last full capacity:      29090 mWh
    battery technology:      rechargeable
    design voltage:          14800 mV
    design capacity warning: 1454 mWh
    design capacity low:     200 mWh
    cycle count:              0
    capacity granularity 1:  1 mWh
    capacity granularity 2:  1 mWh
    model number:            42T4899
    serial number:           21064
    battery type:            LION
    OEM info:                SANYO
    
    Can you see how the values for "design capacity", etc., differ by a
    factor of 10 instead of 14.8 (the design voltage of this battery)?
    On the battery itself it says: 14.8V, 1.95Ah, 29Wh, so clearly the
    values reported in mWh are correct and the ones in mAh are not.
    
    My guess is that this problem has been around ever since those
    machines were released, but because the most common Thinkpad
    batteries are rated at 10.8V, the error (8%) is small enough that it
    simply hasn't been noticed or at least nobody could be bothered to
    look into it.
    
    My patch works around the problem by adjusting the incorrectly
    reported mAh values by "10000 / design_voltage".  The patch also has
    code to figure out if it should be activated or not.  It only
    activates on Lenovo Thinkpads, only when the unit is mAh, and, as an
    extra precaution, only when the battery capacity reported through
    ACPI does not match what is reported through DMI (I've never
    encountered a machine where the first two conditions would be true
    but the last would not, but better safe than sorry).
    
    I've been using this patch for close to a year on several systems
    without any problems.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=41062
    Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf5bb9626c8254e0fd97d9cb335226d7da084a7d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Nov 28 10:19:16 2012 -0800

    USB: mark uas driver as BROKEN
    
    commit fb37ef98015f864d22be223a0e0d93547cd1d4ef upstream.
    
    As reported https://bugzilla.kernel.org/show_bug.cgi?id=51031, the UAS
    driver causes problems and has been asked to be not built into any of
    the major distributions.  To prevent users from running into problems
    with it, and for distros that were not notified, just mark the whole
    thing as broken.
    
    Acked-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3181d31e22748a7d87b10bc945caadbe399440a5
Author: Markus Becker <mab@comnets.uni-bremen.de>
Date:   Thu Nov 22 09:41:23 2012 +0100

    USB: cp210x: add Virtenio Preon32 device id
    
    commit 356fe44f4b8ece867bdb9876b1854d7adbef9de2 upstream.
    
    Signed-off-by: Markus Becker <mab@comnets.uni-bremen.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6637ab3edeadf996af9482a394fa97b24da4d68
Author: Peter Korsgaard <jacmet@sunsite.dk>
Date:   Thu Nov 22 16:30:46 2012 +0100

    usb: ftdi_sio: fixup BeagleBone A5+ quirk
    
    commit 1a88d5eee2ef2ad1d3c4e32043e9c4c5347d4fc1 upstream.
    
    BeagleBone A5+ devices ended up getting shipped with the
    'BeagleBone/XDS100V2' product string, and not XDS100 like it
    was agreed, so adjust the quirk to match.
    
    For details, see the thread on the beagle list:
    
    https://groups.google.com/forum/#!msg/beagleboard/zrFPew9_Wvo/ibWr1-eE8JwJ
    
    Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 641ddea7111889f8af6c21f77412a640ce34ce54
Author: Martin Teichmann <lkb.teichmann@gmail.com>
Date:   Wed Nov 21 16:45:07 2012 +0100

    USB: ftdi_sio: Add support for Newport AGILIS motor drivers
    
    commit d7e14b375b40c04cd735b115713043b69a2c68ac upstream.
    
    The Newport AGILIS model AG-UC8 compact piezo motor controller
    (http://search.newport.com/?q=*&x2=sku&q2=AG-UC8)
    is yet another device using an FTDI USB-to-serial chip. It works
    fine with the ftdi_sio driver when adding
    
      options ftdi-sio product=0x3000 vendor=0x104d
    
    to modprobe.d. udevadm reports "Newport" as the manufacturer,
    and "Agilis" as the product name.
    
    Signed-off-by: Martin Teichmann <lkb.teichmann@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4096992a240434ebaeb9372d83059f9b547b149b
Author: Bjørn Mork <bjorn@mork.no>
Date:   Sun Nov 25 17:05:10 2012 +0100

    USB: option: blacklist network interface on Huawei E173
    
    commit f36446cf9bbebaa03a80d95cfeeafbaf68218249 upstream.
    
    The Huawei E173 will normally appear as 12d1:1436 in Linux.  But
    the modem has another mode with different device ID and a slightly
    different set of descriptors. This is the mode used by Windows like
    this:
    
      3Modem:      USB\VID_12D1&PID_140C&MI_00\6&3A1D2012&0&0000
      Networkcard: USB\VID_12D1&PID_140C&MI_01\6&3A1D2012&0&0001
      Appli.Inter: USB\VID_12D1&PID_140C&MI_02\6&3A1D2012&0&0002
      PC UI Inter: USB\VID_12D1&PID_140C&MI_03\6&3A1D2012&0&0003
    
    All interfaces have the same ff/ff/ff class codes in this mode.
    Blacklisting the network interface to allow it to be picked up by
    the network driver.
    
    Reported-by: Thomas Schäfer <tschaefer@t-online.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0492c1af074d24e13b827ee805a5ed71588f2add
Author: li.rui27@zte.com.cn <li.rui27@zte.com.cn>
Date:   Tue Nov 20 14:31:47 2012 +0800

    USB: add new zte 3g-dongle's pid to option.c
    
    commit 31b6a1048b7292efff8b5b53ae3d9d29adde385e upstream.
    
    Signed-off-by: Rui li <li.rui27@zte.com.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 519b4022e803a6d983a895a30845adfc368fbfdf
Author: Jan Beulich <JBeulich@suse.com>
Date:   Fri Nov 2 14:02:40 2012 +0000

    x86: hpet: Fix masking of MSI interrupts
    
    commit 6acf5a8c931da9d26c8dd77d784daaf07fa2bff0 upstream.
    
    HPET_TN_FSB is not a proper mask bit; it merely toggles between MSI and
    legacy interrupt delivery. The proper mask bit is HPET_TN_ENABLE, so
    use both bits when (un)masking the interrupt.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Link: http://lkml.kernel.org/r/5093E09002000078000A60E6@nat28.tlf.novell.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20cd349c86c42696dd743526f1a87a774305dce3
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Tue Nov 6 11:47:13 2012 +0100

    floppy: destroy floppy workqueue before cleaning up the queue
    
    commit eac7cc52c6b410e542af431b2ee93f3d7dbfb6af upstream.
    
    We need to first destroy the floppy_wq workqueue before cleaning up
    the queue. Otherwise we might race with still pending work with the
    workqueue, but all the block queue already gone. This might lead to
    various oopses, such as
    
     CPU 0
     Pid: 6, comm: kworker/u:0 Not tainted 3.7.0-rc4 #1 Bochs Bochs
     RIP: 0010:[<ffffffff8134eef5>]  [<ffffffff8134eef5>] blk_peek_request+0xd5/0x1c0
     RSP: 0000:ffff88000dc7dd88  EFLAGS: 00010092
     RAX: 0000000000000001 RBX: 0000000000000000 RCX: 0000000000000000
     RDX: ffff88000f602688 RSI: ffffffff81fd95d8 RDI: 6b6b6b6b6b6b6b6b
     RBP: ffff88000dc7dd98 R08: ffffffff81fd95c8 R09: 0000000000000000
     R10: ffffffff81fd9480 R11: 0000000000000001 R12: 6b6b6b6b6b6b6b6b
     R13: ffff88000dc7dfd8 R14: ffff88000dc7dfd8 R15: 0000000000000000
     FS:  0000000000000000(0000) GS:ffffffff81e21000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
     CR2: 0000000000000000 CR3: 0000000001e11000 CR4: 00000000000006f0
     DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
     Process kworker/u:0 (pid: 6, threadinfo ffff88000dc7c000, task ffff88000dc5ecc0)
     Stack:
      0000000000000000 0000000000000000 ffff88000dc7ddb8 ffffffff8134efee
      ffff88000dc7ddb8 0000000000000000 ffff88000dc7dde8 ffffffff814aef3c
      ffffffff81e75d80 ffff88000dc0c640 ffff88000fbfb000 ffffffff814aed90
     Call Trace:
      [<ffffffff8134efee>] blk_fetch_request+0xe/0x30
      [<ffffffff814aef3c>] redo_fd_request+0x1ac/0x400
      [<ffffffff814aed90>] ? start_motor+0x130/0x130
      [<ffffffff8106b526>] process_one_work+0x136/0x450
      [<ffffffff8106af65>] ? manage_workers+0x205/0x2e0
      [<ffffffff8106bb6d>] worker_thread+0x14d/0x420
      [<ffffffff8106ba20>] ? rescuer_thread+0x1a0/0x1a0
      [<ffffffff8107075a>] kthread+0xba/0xc0
      [<ffffffff810706a0>] ? __kthread_parkme+0x80/0x80
      [<ffffffff818b553a>] ret_from_fork+0x7a/0xb0
      [<ffffffff810706a0>] ? __kthread_parkme+0x80/0x80
     Code: 0f 84 c0 00 00 00 83 f8 01 0f 85 e2 00 00 00 81 4b 40 00 00 80 00 48 89 df e8 58 f8 ff ff be fb ff ff ff
     fe ff ff <49> 8b 1c 24 49 39 dc 0f 85 2e ff ff ff 41 0f b6 84 24 28 04 00
     RIP  [<ffffffff8134eef5>] blk_peek_request+0xd5/0x1c0
      RSP <ffff88000dc7dd88>
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Tested-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 764b103cf62c46ef50722325463867140754a9f1
Author: Boris Ostrovsky <boris.ostrovsky@amd.com>
Date:   Wed Dec 5 06:12:42 2012 -0500

    x86,AMD: Power driver support for AMD's family 16h processors
    
    commit 22e32f4f57778ebc6e17812fa3008361c05d64f9 upstream.
    
    Add family 16h PCI ID to AMD's power driver to allow it report
    power consumption on these processors.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 757397789ff6cd5115d083c71eda6f91c2b04cb8
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Wed Nov 7 15:37:07 2012 +0100

    mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls
    
    commit 387870f2d6d679746020fa8e25ef786ff338dc98 upstream.
    
    dmapool always calls dma_alloc_coherent() with GFP_ATOMIC flag,
    regardless the flags provided by the caller. This causes excessive
    pruning of emergency memory pools without any good reason. Additionaly,
    on ARM architecture any driver which is using dmapools will sooner or
    later  trigger the following error:
    "ERROR: 256 KiB atomic DMA coherent pool is too small!
    Please increase it with coherent_pool= kernel parameter!".
    Increasing the coherent pool size usually doesn't help much and only
    delays such error, because all GFP_ATOMIC DMA allocations are always
    served from the special, very limited memory pool.
    
    This patch changes the dmapool code to correctly use gfp flags provided
    by the dmapool caller.
    
    Reported-by: Soeren Moch <smoch@web.de>
    Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Tested-by: Andrew Lunn <andrew@lunn.ch>
    Tested-by: Soeren Moch <smoch@web.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d2e921522bed01d00961d1a5deff840168e692d
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Mon Nov 12 14:33:45 2012 +0200

    drm/i915: do not default to 18 bpp for eDP if missing from VBT
    
    commit 9a30a61f3516871c5c638fd7c025fbaa11ddf7fe upstream.
    
    commit 500a8cc466a24e2fbc4c86ef9c6467ae2ffdeb0c
    Author: Zhenyu Wang <zhenyuw@linux.intel.com>
    Date:   Wed Jan 13 11:19:52 2010 +0800
    
        drm/i915: parse eDP panel color depth from VBT block
    
    originally introduced parsing bpp for eDP from VBT, with a default of 18
    bpp if the eDP BIOS data block is not present. Turns out that default seems
    to break the Macbook Pro with retina display, as noted in
    
    commit 4344b813f105a19f793f1fd93ad775b784648b95
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Fri Aug 10 11:10:20 2012 +0200
    
        drm/i915: ignore eDP bpc settings from vbt
    
    Since we can't ignore bpc settings from VBT completely after all, get rid
    of the default. Do not clamp eDP to 18 bpp by default if the eDP BDB is
    missing from VBT.
    
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Tested-by: Henrik Rydberg <rydberg@euromail.se>
    [danvet: paste in the updated commit message from irc.]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbb27f4be09551b8db97656d9fc82c5820040dbf
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Mon Nov 12 14:33:44 2012 +0200

    drm/i915: do not ignore eDP bpc settings from vbt
    
    commit 2f4f649a69a9eb51f6e98130e19dd90a260a4145 upstream.
    
    There are laptops out there that need the eDP bpc from VBT. This is
    effectively a revert of
    
    commit 4344b813f105a19f793f1fd93ad775b784648b95
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Fri Aug 10 11:10:20 2012 +0200
    
        drm/i915: ignore eDP bpc settings from vbt
    
    but putting the VBT check after the EDID check to see them both in dmesg if
    this clamps more than the EDID. We have enough history with bpc clamping to
    warrant the extra debug info.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47641
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56401
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34b7c0f0d679c0045f9cca3b3fba1ae132dbfa4b
Author: Tejun Heo <tj@kernel.org>
Date:   Tue Dec 4 07:40:39 2012 -0800

    workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s
    
    commit fc4b514f2727f74a4587c31db87e0e93465518c3 upstream.
    
    8852aac25e ("workqueue: mod_delayed_work_on() shouldn't queue timer on
    0 delay") unexpectedly uncovered a very nasty abuse of delayed_work in
    megaraid - it allocated work_struct, casted it to delayed_work and
    then pass that into queue_delayed_work().
    
    Previously, this was okay because 0 @delay short-circuited to
    queue_work() before doing anything with delayed_work.  8852aac25e
    moved 0 @delay test into __queue_delayed_work() after sanity check on
    delayed_work making megaraid trigger BUG_ON().
    
    Although megaraid is already fixed by c1d390d8e6 ("megaraid: fix
    BUG_ON() from incorrect use of delayed work"), this patch converts
    BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s so that such
    abusers, if there are more, trigger warning but don't crash the
    machine.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Xiaotian Feng <xtfeng@gmail.com>
    Signed-off-by: Shuah Khan <shuah.khan@hp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31346db13478c699eb6c94f0c210de92a820ecad
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Wed Oct 24 10:30:01 2012 -0200

    edac: Fix the dimm filling for csrows-based layouts
    
    commit 24bef66e74d647aebd34e0bef7693512b7912029 upstream.
    
    The driver is currently filling data in a wrong way, on drivers
    for csrows-based memory controller, when the first layer is a
    csrow.
    
    This is not easily to notice, as, in general, memories are
    filed in dual, interleaved, symetric mode, as very few memory
    controllers support asymetric modes.
    
    While digging into a bug for i82795_edac driver, the asymetric
    mode there is now working, allowing us to fill the machine with
    4x1GB ranks at channel 0, and 2x512GB at channel 1:
    
    Channel 0 ranks:
    EDAC DEBUG: i82975x_init_csrows: DIMM A0: from page 0x00000000 to 0x0003ffff (size: 0x00040000 pages)
    EDAC DEBUG: i82975x_init_csrows: DIMM A1: from page 0x00040000 to 0x0007ffff (size: 0x00040000 pages)
    EDAC DEBUG: i82975x_init_csrows: DIMM A2: from page 0x00080000 to 0x000bffff (size: 0x00040000 pages)
    EDAC DEBUG: i82975x_init_csrows: DIMM A3: from page 0x000c0000 to 0x000fffff (size: 0x00040000 pages)
    
    Channel 1 ranks:
    EDAC DEBUG: i82975x_init_csrows: DIMM B0: from page 0x00100000 to 0x0011ffff (size: 0x00020000 pages)
    EDAC DEBUG: i82975x_init_csrows: DIMM B1: from page 0x00120000 to 0x0013ffff (size: 0x00020000 pages)
    
    Instead of properly showing the memories as such, before this patch, it
    shows the memory layout as:
    
              +-----------------------------------+
              |                mc0                |
              |  csrow0   |  csrow1   |  csrow2   |
    ----------+-----------------------------------+
    channel1: |  1024 MB  |  1024 MB  |   512 MB  |
    channel0: |  1024 MB  |  1024 MB  |   512 MB  |
    ----------+-----------------------------------+
    
    as if both channels were symetric, grouping the DIMMs on a wrong
    layout.
    
    After this patch, the memory is correctly represented.
    So, for csrows at layers[0], it shows:
    
              +-----------------------------------------------+
              |                      mc0                      |
              |  csrow0   |  csrow1   |  csrow2   |  csrow3   |
    ----------+-----------------------------------------------+
    channel1: |   512 MB  |   512 MB  |     0 MB  |     0 MB  |
    channel0: |  1024 MB  |  1024 MB  |  1024 MB  |  1024 MB  |
    ----------+-----------------------------------------------+
    
    For csrows at layers[1], it shows:
    
            +-----------------------+
            |          mc0          |
            | channel0  | channel1  |
    --------+-----------------------+
    csrow3: |  1024 MB  |     0 MB  |
    csrow2: |  1024 MB  |     0 MB  |
    --------+-----------------------+
    csrow1: |  1024 MB  |   512 MB  |
    csrow0: |  1024 MB  |   512 MB  |
    --------+-----------------------+
    
    So, no matter of what comes first, the information between
    channel and csrow will be properly represented.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cfa7c23209b7426f3d53ba61ffbfd2fa5981d63
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Mon Oct 15 21:48:48 2012 -0300

    i82975x_edac: Fix dimm label initialization
    
    commit 479696840239e0cc43efb3c917bdcad2174d2215 upstream.
    
    The driver has only 4 hardcoded labels, but allows much more memory.
    Fix it by removing the hardcoded logic, using snprintf() instead.
    
    [   19.833972] general protection fault: 0000 [#1] SMP
    [   19.837733] Modules linked in: i82975x_edac(+) edac_core firewire_ohci firewire_core crc_itu_t nouveau mxm_wmi wmi video i2c_algo_bit drm_kms_helper ttm drm i2c_core
    [   19.837733] CPU 0
    [   19.837733] Pid: 390, comm: udevd Not tainted 3.6.1-1.fc17.x86_64.debug #1 Dell Inc.                 Precision WorkStation 390    /0MY510
    [   19.837733] RIP: 0010:[<ffffffff813463a8>]  [<ffffffff813463a8>] strncpy+0x18/0x30
    [   19.837733] RSP: 0018:ffff880078535b68  EFLAGS: 00010202
    [   19.837733] RAX: ffff880069fa9708 RBX: ffff880078588000 RCX: ffff880069fa9708
    [   19.837733] RDX: 000000000000001f RSI: 5f706f5f63616465 RDI: ffff880069fa9708
    [   19.837733] RBP: ffff880078535b68 R08: ffff880069fa9727 R09: 000000000000fffe
    [   19.837733] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000003
    [   19.837733] R13: 0000000000000000 R14: ffff880069fa9290 R15: ffff880079624a80
    [   19.837733] FS:  00007f3de01ee840(0000) GS:ffff88007c400000(0000) knlGS:0000000000000000
    [   19.837733] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   19.837733] CR2: 00007f3de00b9000 CR3: 0000000078dbc000 CR4: 00000000000007f0
    [   19.837733] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [   19.837733] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [   19.837733] Process udevd (pid: 390, threadinfo ffff880078534000, task ffff880079642450)
    [   19.837733] Stack:
    [   19.837733]  ffff880078535c18 ffffffffa017c6b8 00040000816d627f ffff880079624a88
    [   19.837733]  ffffc90004cd6000 ffff880079624520 ffff88007ac21148 0000000000000000
    [   19.837733]  0000000000000000 0004000000000000 feda000078535bc8 ffffffff810d696d
    [   19.837733] Call Trace:
    [   19.837733]  [<ffffffffa017c6b8>] i82975x_init_one+0x2e6/0x3e6 [i82975x_edac]
    ...
    
    Fix bug reported at:
    	https://bugzilla.redhat.com/show_bug.cgi?id=848149
    And, very likely:
    	https://bbs.archlinux.org/viewtopic.php?id=148033
    	https://bugzilla.kernel.org/show_bug.cgi?id=47171
    
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 437df5826cada863b27539fb9a65367ab47488b6
Author: Florian Fainelli <florian@openwrt.org>
Date:   Mon Dec 10 12:25:32 2012 -0800

    Input: matrix-keymap - provide proper module license
    
    commit 55220bb3e5f917dd5fee1153c612f9a83599f639 upstream.
    
    The matrix-keymap module is currently lacking a proper module license,
    add one so we don't have this module tainting the entire kernel.  This
    issue has been present since commit 1932811f426f ("Input: matrix-keymap
    - uninline and prepare for device tree support")
    
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 865367e38353b88ca15542fdcad3ca76742b9344
Author: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Date:   Fri Jul 20 09:39:03 2012 +0200

    Staging: ipack/bridges/tpci200: avoid kernel bug when uninstalling a device
    
    commit 9e58d05a1b24d2c0471c3b4df8f473a7543d7647 upstream.
    
    Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1939f417c6048f552784daf5f639003294adcbc8
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Mon Oct 1 12:29:26 2012 +0300

    ASoC: dmaengine: Correct Makefile when sound is built as module
    
    commit 961a7aeafab477f63d9eef26afde9cbb8badcd0f upstream.
    
    soc-dmaengine-pcm library need to be part of the snd-soc-core in order to
    be able to compile ASoC as modules when dmaengine is enabled on the platform.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Cc: Florian Fainelli <florian@openwrt.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35124ccd0f4f49fb71b0fb2dd781f9f2c83c0ab5
Author: Paul Walmsley <paul@pwsan.com>
Date:   Tue Oct 23 20:32:59 2012 +0100

    ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set
    
    commit 39141ddfb63a664f26d3f42f64ee386e879b492c upstream.
    
    After commit 846a136881b8f73c1f74250bf6acfaa309cab1f2 ("ARM: vfp: fix
    saving d16-d31 vfp registers on v6+ kernels"), the OMAP 2430SDP board
    started crashing during boot with omap2plus_defconfig:
    
    [    3.875122] mmcblk0: mmc0:e624 SD04G 3.69 GiB
    [    3.915954]  mmcblk0: p1
    [    4.086639] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
    [    4.093719] Modules linked in:
    [    4.096954] CPU: 0    Not tainted  (3.6.0-02232-g759e00b #570)
    [    4.103149] PC is at vfp_reload_hw+0x1c/0x44
    [    4.107666] LR is at __und_usr_fault_32+0x0/0x8
    
    It turns out that the context save/restore fix unmasked a latent bug
    in commit 5aaf254409f8d58229107b59507a8235b715a960 ("ARM: 6203/1: Make
    VFPv3 usable on ARMv6").  When CONFIG_VFPv3 is set, but the kernel is
    booted on a pre-VFPv3 core, the code attempts to save and restore the
    d16-d31 VFP registers.  These are only present on non-D16 VFPv3+, so
    this results in an undefined instruction exception.  The code didn't
    crash before commit 846a136 because the save and restore code was
    only touching d0-d15, present on all VFP.
    
    Fix by implementing a request from Russell King to add a new HWCAP
    flag that affirmatively indicates the presence of the d16-d31
    registers:
    
       http://marc.info/?l=linux-arm-kernel&m=135013547905283&w=2
    
    and some feedback from MÃ¥ns to clarify the name of the HWCAP flag.
    
    Signed-off-by: Paul Walmsley <paul@pwsan.com>
    Cc: Tony Lindgren <tony@atomide.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Martin <dave.martin@linaro.org>
    Cc: Måns Rullgård <mans.rullgard@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13837cb45c779fff942d2b08af1d0c7551c4ffc6
Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Date:   Wed Aug 22 06:49:47 2012 +0000

    mmc: sh-mmcif: avoid oops on spurious interrupts (second try)
    
    commit 91ab252ac5a5c3461dd6910797611e9172626aed upstream.
    
    On some systems, e.g., kzm9g, MMCIF interfaces can produce spurious
    interrupts without any active request. To prevent the Oops, that results
    in such cases, don't dereference the mmc request pointer until we make
    sure, that we are indeed processing such a request.
    
    Reported-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
    Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
    Tested-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4e36db25e78820d04081c7c1e8ad5ce616280e7
Author: Chris Ball <cjb@laptop.org>
Date:   Mon Dec 3 09:17:19 2012 -0500

    Revert misapplied "mmc: sh-mmcif: avoid oops on spurious interrupts"
    
    commit 6984f3c31bb57cb7491dbec1be44b74bd00f4648 upstream.
    
    This reverts commit 8464dd52d3198dd05, which was a misapplied debugging
    version of the patch, not the final patch itself.
    
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49ed8b45e831ffb57d09f12b005ab8961ad62080
Author: Mel Gorman <mgorman@suse.de>
Date:   Wed Dec 5 14:01:41 2012 -0800

    tmpfs: fix shared mempolicy leak
    
    commit 18a2f371f5edf41810f6469cb9be39931ef9deb9 upstream.
    
    This fixes a regression in 3.7-rc, which has since gone into stable.
    
    Commit 00442ad04a5e ("mempolicy: fix a memory corruption by refcount
    imbalance in alloc_pages_vma()") changed get_vma_policy() to raise the
    refcount on a shmem shared mempolicy; whereas shmem_alloc_page() went
    on expecting alloc_page_vma() to drop the refcount it had acquired.
    This deserves a rework: but for now fix the leak in shmem_alloc_page().
    
    Hugh: shmem_swapin() did not need a fix, but surely it's clearer to use
    the same refcounting there as in shmem_alloc_page(), delete its onstack
    mempolicy, and the strange mpol_cond_copy() and __mpol_cond_copy() -
    those were invented to let swapin_readahead() make an unknown number of
    calls to alloc_pages_vma() with one mempolicy; but since 00442ad04a5e,
    alloc_pages_vma() has kept refcount in balance, so now no problem.
    
    Reported-and-tested-by: Tommi Rantala <tt.rantala@gmail.com>
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>