Permalink
Commits on May 7, 2012
  1. Merge branch 'distro-3.3' into pf-3.3

    Oleksandr Natalenko committed May 7, 2012
  2. Merge branch 'version-3.3' into pf-3.3

    Oleksandr Natalenko committed May 7, 2012
  3. distro-3.3: bump to 3.3.5-pf

    Oleksandr Natalenko committed May 7, 2012
  4. version-3.3: bump to 3.3.5-pf

    Oleksandr Natalenko committed May 7, 2012
  5. fix merge conflict

    Oleksandr Natalenko committed May 7, 2012
  6. Linux 3.3.5

    gregkh committed May 7, 2012
  7. hfsplus: Fix potential buffer overflows

    gregkh committed May 4, 2012
    commit 6f24f89 upstream.
    
    Commit ec81aec ("hfs: fix a potential buffer overflow") fixed a few
    potential buffer overflows in the hfs filesystem.  But as Timo Warns
    pointed out, these changes also need to be made on the hfsplus
    filesystem as well.
    
    Reported-by: Timo Warns <warns@pre-sense.de>
    Acked-by: WANG Cong <amwang@redhat.com>
    Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Miklos Szeredi <mszeredi@suse.cz>
    Cc: Sage Weil <sage@newdream.net>
    Cc: Eugene Teo <eteo@redhat.com>
    Cc: Roman Zippel <zippel@linux-m68k.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Dave Anderson <anderson@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  8. iwlwifi: use 6000G2B for 6030 device series

    Wey-Yi Guy committed with gregkh Apr 25, 2012
    commit 1ed2ec3 upstream.
    
    "iwlwifi: use correct released ucode version" change
    the ucode api ok from 6000G2 to 6000G2B, but it shall belong
    to 6030 device series, not the 6005 device series. Fix it
    
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  9. iwlwifi: fix hardware queue programming

    jmberg committed with gregkh Apr 23, 2012
    commit 5ef4acd upstream.
    
    Newer devices have 20 (5000 series) or 30 (6000 series)
    hardware queues, rather than the 16 that 4965 had. This
    was added to the driver a long time ago, but improperly:
    the queue registers for the higher queues aren't just
    continuations of the registers for the first 16 queues,
    they are in other places. Therefore, the hardware would
    lock up when trying to activate queue 16 or above and
    the device would have to be restarted.
    
    Thanks goes to Emmanuel who identified this and told me
    how the queue programming should be done.
    
    Note that we don't use queues 20 and higher today and
    doing so needs more work than this.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  10. iwlwifi: use correct released ucode version

    mvpublicworks committed with gregkh Apr 22, 2012
    commit 78cbcf2 upstream.
    
    Report correctly the latest released version
    of the iwlwifi firmware for all
    iwlwifi-supported devices.
    
    Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  11. iwlwifi: do not nulify ctx->vif on reset

    sgruszka committed with gregkh Apr 18, 2012
    commit 8db4c7e upstream.
    
    ctx->vif is dereferenced in different part of iwlwifi code, so do not
    nullify it.
    
    This should address at least one of the possible reasons of WARNING at
    iwlagn_mac_remove_interface, and perhaps some random crashes when
    firmware reset is performed.
    
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  12. wl1251: fix crash on remove due to leftover work item

    notaz committed with gregkh Apr 26, 2012
    commit 4c1bcdb upstream.
    
    This driver currently leaves elp_work behind when stopping, which
    occasionally results in data corruption because work function ends
    up accessing freed memory, typical symptoms of this are various
    worker_thread crashes. Fix it by cancelling elp_work.
    
    Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  13. wl1251: fix crash on remove due to premature kfree

    notaz committed with gregkh Apr 26, 2012
    commit 328c32f upstream.
    
    Currently SDIO glue frees it's own structure before calling
    wl1251_free_hw(), which in turn calls ieee80211_unregister_hw().
    The later call may result in a need to communicate with the chip
    to stop it (as it happens now if the interface is still up before
    rmmod), which means calls are made back to the glue, resulting in
    freed memory access.
    
    Fix this by freeing glue data last.
    
    Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  14. rtlwifi: Fix oops on unload

    lwfinger committed with gregkh Apr 20, 2012
    commit 44eb65c upstream.
    
    Under some circumstances, a PCI-based driver reports the following OOPs:
    
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Oops: 0000 [#1] SMP
    --snip--
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Pid: 19627, comm: rmmod
    Not tainted 3.2.9-2.fc16.x86_64 #1 LENOVO 05962RU/05962RU
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] RIP:
    0010:[<ffffffffa0418d39>]  [<ffffffffa0418d39>]
    rtl92ce_get_desc+0x19/0xd0 [rtl8192ce]
    --snip--
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Process rmmod (pid:
    19627, threadinfo ffff880050262000, task ffff8801156d5cc0)
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Stack:
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  0000000000000002
    ffff8801176c2540 ffff880050263ca8 ffffffffa03348e7
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  0000000000000282
    0000000180150014 ffff880050263fd8 ffff8801176c2810
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  ffff880050263bc8
    ffffffff810550e2 00000000000002c0 ffff8801176c0d40
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Call Trace:
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  [<ffffffffa03348e7>]
    _rtl_pci_rx_interrupt+0x187/0x650 [rtlwifi]
    --snip--
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Code: ff 09 d0 89 07 48
    83 c4 08 5b 5d c3 66 0f 1f 44 00 00 55 48 89 e5 53 48 83 ec 08 66 66
    66 66 90 40 84 f6 89 d3 74 13 84 d2 75 57 <8b> 07 48 83 c4 08 5b 5d c1
    e8 1f c3 0f 1f 00 84 d2 74 ed 80 fa
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] RIP
    [<ffffffffa0418d39>] rtl92ce_get_desc+0x19/0xd0 [rtl8192ce]
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  RSP <ffff880050263b58>
    Mar 19 08:14:35 kvothe kernel: [ 6584.626011] CR2: 00000000000006e0
    Mar 19 08:14:35 kvothe kernel: [ 6584.646491] ---[ end trace
    8636c766dcfbe0e6 ]---
    
    This oops is due to interrupts not being disabled in this particular path.
    
    Reported-by: Dave Airlie <airlied@gmail.com>
    Tested-by: Dave Airlie <airlied@gmail.com>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  15. mac80211: fix AP mode EAP tx for VLAN stations

    Felix Fietkau committed with gregkh Apr 29, 2012
    commit 66f2c99 upstream.
    
    EAP frames for stations in an AP VLAN are sent on the main AP interface
    to avoid race conditions wrt. moving stations.
    For that to work properly, sta_info_get_bss must be used instead of
    sta_info_get when sending EAP packets.
    Previously this was only done for cooked monitor injected packets, so
    this patch adds a check for tx->skb->protocol to the same place.
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  16. ipw2200: Fix race condition in the command completion acknowledge

    stanislav-yakovlev committed with gregkh Apr 19, 2012
    commit dd44731 upstream.
    
    Driver incorrectly validates command completion: instead of waiting
    for a command to be acknowledged it continues execution.  Most of the
    time driver gets acknowledge of the command completion in a tasklet
    before it executes the next one. But sometimes it sends the next
    command before it gets acknowledge for the previous one. In such a
    case one of the following error messages appear in the log:
    
    Failed to send SYSTEM_CONFIG: Already sending a command.
    Failed to send ASSOCIATE: Already sending a command.
    Failed to send TX_POWER: Already sending a command.
    
    After that you need to reload the driver to get it working again.
    
    This bug occurs during roaming (reported by Sam Varshavchik)
    https://bugzilla.redhat.com/show_bug.cgi?id=738508
    and machine booting (reported by Tom Gundersen and Mads Kiilerich)
    https://bugs.archlinux.org/task/28097
    https://bugzilla.redhat.com/show_bug.cgi?id=802106
    
    This patch doesn't fix the delay issue during firmware load.
    But at least device now works as usual after boot.
    
    Signed-off-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  17. i2c: pnx: Disable clk in suspend

    stigge committed with gregkh Apr 4, 2012
    commit 6c557cf upstream.
    
    In the driver's suspend function, clk_enable() was used instead of
    clk_disable(). This is corrected with this patch.
    
    Signed-off-by: Roland Stigge <stigge@antcom.de>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    [wsa: reworded commit header slightly]
    Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  18. b43: only reload config after successful initialization

    Seth Forshee committed with gregkh Apr 25, 2012
    commit dbdedbd upstream.
    
    Commit 2a19032 (b43: reload phy and bss settings after core restarts)
    introduced an unconditional call to b43_op_config() at the end of
    b43_op_start(). When firmware fails to load this can wedge the system.
    There's no need to reload the configuration after a failed
    initialization anyway, so only make the call if initialization was
    successful.
    
    BugLink: http://bugs.launchpad.net/bugs/950295
    Cc: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  19. libata: skip old error history when counting probe trials

    Lin Ming committed with gregkh May 3, 2012
    commit 6868225 upstream.
    
    Commit d902747("[libata] Add ATA transport class") introduced
    ATA_EFLAG_OLD_ER to mark entries in the error ring as cleared.
    
    But ata_count_probe_trials_cb() didn't check this flag and it still
    counts the old error history. So wrong probe trials count is returned
    and it causes problem, for example, SATA link speed is slowed down from
    3.0Gbps to 1.5Gbps.
    
    Fix it by checking ATA_EFLAG_OLD_ER in ata_count_probe_trials_cb().
    
    Signed-off-by: Lin Ming <ming.m.lin@intel.com>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  20. hwmon: (coretemp) fix oops on cpu unplug

    Kirill A. Shutemov committed with gregkh Apr 30, 2012
    commit b704871 upstream.
    
    coretemp tries to access core_data array beyond bounds on cpu unplug if
    core id of the cpu if more than NUM_REAL_CORES-1.
    
    BUG: unable to handle kernel NULL pointer dereference at 000000000000013c
    IP: [<ffffffffa00159af>] coretemp_cpu_callback+0x93/0x1ba [coretemp]
    PGD 673e5a067 PUD 66e9b3067 PMD 0
    Oops: 0000 [#1] SMP
    CPU 79
    Modules linked in: sunrpc cpufreq_ondemand acpi_cpufreq freq_table mperf bnep bluetooth rfkill ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter nf_conntrack_ipv4 nf_defrag_ipv4 ip6_tables xt_state nf_conntrack coretemp crc32c_intel asix tpm_tis pcspkr usbnet iTCO_wdt i2c_i801 microcode mii joydev tpm i2c_core iTCO_vendor_support tpm_bios i7core_edac igb ioatdma edac_core dca megaraid_sas [last unloaded: oprofile]
    
    Pid: 3315, comm: set-cpus Tainted: G        W    3.4.0-rc5+ #2 QCI QSSC-S4R/QSSC-S4R
    RIP: 0010:[<ffffffffa00159af>]  [<ffffffffa00159af>] coretemp_cpu_callback+0x93/0x1ba [coretemp]
    RSP: 0018:ffff880472fb3d48  EFLAGS: 00010246
    RAX: 0000000000000124 RBX: 0000000000000034 RCX: 00000000ffffffff
    RDX: 0000000000000000 RSI: 0000000000000046 RDI: 0000000000000246
    RBP: ffff880472fb3d88 R08: ffff88077fcd36c0 R09: 0000000000000001
    R10: ffffffff8184bc48 R11: 0000000000000000 R12: ffff880273095800
    R13: 0000000000000013 R14: ffff8802730a1810 R15: 0000000000000000
    FS:  00007f694a20f720(0000) GS:ffff88077fcc0000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 000000000000013c CR3: 000000067209b000 CR4: 00000000000007e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process set-cpus (pid: 3315, threadinfo ffff880472fb2000, task ffff880471fa0000)
    Stack:
     ffff880277b4c308 0000000000000003 ffff880472fb3d88 0000000000000005
     0000000000000034 00000000ffffffd1 ffffffff81cadc70 ffff880472fb3e14
     ffff880472fb3dc8 ffffffff8161f48d ffff880471fa0000 0000000000000034
    Call Trace:
     [<ffffffff8161f48d>] notifier_call_chain+0x4d/0x70
     [<ffffffff8107f1be>] __raw_notifier_call_chain+0xe/0x10
     [<ffffffff81059d30>] __cpu_notify+0x20/0x40
     [<ffffffff815fa251>] _cpu_down+0x81/0x270
     [<ffffffff815fa477>] cpu_down+0x37/0x50
     [<ffffffff815fd6a3>] store_online+0x63/0xc0
     [<ffffffff813c7078>] dev_attr_store+0x18/0x30
     [<ffffffff811f02cf>] sysfs_write_file+0xef/0x170
     [<ffffffff81180443>] vfs_write+0xb3/0x180
     [<ffffffff8118076a>] sys_write+0x4a/0x90
     [<ffffffff816236a9>] system_call_fastpath+0x16/0x1b
    Code: 48 c7 c7 94 60 01 a0 44 0f b7 ac 10 ac 00 00 00 31 c0 e8 41 b7 5f e1 41 83 c5 02 49 63 c5 49 8b 44 c4 10 48 85 c0 74 56 45 31 ff <39> 58 18 75 4e eb 1f 49 63 d7 4c 89 f7 48 89 45 c8 48 6b d2 28
    RIP  [<ffffffffa00159af>] coretemp_cpu_callback+0x93/0x1ba [coretemp]
     RSP <ffff880472fb3d48>
    CR2: 000000000000013c
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  21. nouveau: initialise has_optimus variable.

    Dave Airlie committed with gregkh May 2, 2012
    commit addde4e upstream.
    
    We should initialise this to 0 really to avoid getting false positives.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  22. hwmon: (coretemp) Increase CPU core limit

    Guenter Roeck committed with gregkh May 1, 2012
    commit bdc71c9 upstream.
    
    CPU core ID is used to index the core_data[] array. The core ID is, however, not
    sequential; 10-core CPUS can have a core ID as high as 25. Increase the limit to
    32 to be able to deal with current CPUs.
    
    Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Acked-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Durgadoss R <durgadoss.r@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  23. efivars: Improve variable validation

    Matthew Garrett committed with gregkh May 3, 2012
    commit 54b3a4d upstream.
    
    Ben Hutchings pointed out that the validation in efivars was inadequate -
    most obviously, an entry with size 0 would server as a DoS against the
    kernel. Improve this based on his suggestions.
    
    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  24. md/raid5: Fix a bug about judging if the operation is syncing or repl…

    majianpeng committed with gregkh Apr 1, 2012
    …acing
    
    commit c6d2e08 upstream.
    
    When create a raid5 using assume-clean and echo check or repair to
    sync_action.Then component disks did not operated IO but the raid
    check/resync faster than normal.
    Because the judgement in function analyse_stripe():
    		if (do_recovery ||
    		    sh->sector >= conf->mddev->recovery_cp)
    			s->syncing = 1;
    		else
    			s->replacing = 1;
    When check or repair,the recovery_cp == MaxSectore,so syncing equal zero
    not one.
    
    This bug was introduced by commit 9a3e110
        md/raid5:  detect and handle replacements during recovery.
    so this patch is suitable for 3.3-stable.
    
    Signed-off-by: majianpeng <majianpeng@gmail.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Cc: Jes Sorensen <Jes.Sorensen@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  25. exit_signal: fix the "parent has changed security domain" logic

    utrace committed with gregkh Mar 19, 2012
    commit b6e238d upstream.
    
    exit_notify() changes ->exit_signal if the parent already did exec.
    This doesn't really work, we are not going to send the signal now
    if there is another live thread or the exiting task is traced. The
    parent can exec before the last dies or the tracer detaches.
    
    Move this check into do_notify_parent() which actually sends the
    signal.
    
    The user-visible change is that we do not change ->exit_signal,
    and thus the exiting task is still "clone children" for
    do_wait()->eligible_child(__WCLONE). Hopefully this is fine, the
    current logic is racy anyway.
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  26. exit_signal: simplify the "we have changed execution domain" logic

    utrace committed with gregkh Mar 19, 2012
    commit e636825 upstream.
    
    exit_notify() checks "tsk->self_exec_id != tsk->parent_exec_id"
    to handle the "we have changed execution domain" case.
    
    We can change do_thread() to always set ->exit_signal = SIGCHLD
    and remove this check to simplify the code.
    
    We could change setup_new_exec() instead, this looks more logical
    because it increments ->self_exec_id. But note that de_thread()
    already resets ->exit_signal if it changes the leader, let's keep
    both changes close to each other.
    
    Note that we change ->exit_signal lockless, this changes the rules.
    Thereafter ->exit_signal is not stable under tasklist but this is
    fine, the only possible change is OLDSIG -> SIGCHLD. This can race
    with eligible_child() but the race is harmless. We can race with
    reparent_leader() which changes our ->exit_signal in parallel, but
    it does the same change to SIGCHLD.
    
    The noticeable user-visible change is that the execing task is not
    "visible" to do_wait()->eligible_child(__WCLONE) right after exec.
    To me this looks more logical, and this is consistent with mt case.
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  27. sched: Fix nohz load accounting -- again!

    Peter Zijlstra committed with gregkh Mar 1, 2012
    commit c308b56 upstream.
    
    Various people reported nohz load tracking still being wrecked, but Doug
    spotted the actual problem. We fold the nohz remainder in too soon,
    causing us to loose samples and under-account.
    
    So instead of playing catch-up up-front, always do a single load-fold
    with whatever state we encounter and only then fold the nohz remainder
    and play catch-up.
    
    Reported-by: Doug Smythies <dsmythies@telus.net>
    Reported-by: LesÅ=82aw Kope=C4=87 <leslaw.kopec@nasza-klasa.pl>
    Reported-by: Aman Gupta <aman@tmm1.net>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/n/tip-4v31etnhgg9kwd6ocgx3rxl8@git.kernel.org
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Cc: Kerin Millar <kerframil@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  28. PM / Hibernate: fix the number of pages used for hibernate/thaw buffe…

    Bojan Smojver committed with gregkh Apr 24, 2012
    …ring
    
    commit f8262d4 upstream.
    
    Hibernation regression fix, since 3.2.
    
    Calculate the number of required free pages based on non-high memory
    pages only, because that is where the buffers will come from.
    
    Commit 081a9d0 introduced a new buffer
    page allocation logic during hibernation, in order to improve the
    performance. The amount of pages allocated was calculated based on total
    amount of pages available, although only non-high memory pages are
    usable for this purpose. This caused hibernation code to attempt to over
    allocate pages on platforms that have high memory, which led to hangs.
    
    Signed-off-by: Bojan Smojver <bojan@rexursive.com>
    Signed-off-by: Rafael J. Wysocki <rjw@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  29. powerpc/85xx: don't call of_platform_bus_probe() twice

    Timur Tabi committed with gregkh Nov 30, 2011
    commit 8a95bc8 upstream.
    
    Commit 46d026a ("powerpc/85xx: consolidate of_platform_bus_probe calls")
    replaced platform-specific of_device_id tables with a single function
    that probes the most of the busses in 85xx device trees.  If a specific
    platform needed additional busses probed, then it could call
    of_platform_bus_probe() again.  Typically, the additional platform-specific
    busses are children of existing busses that have already been probed.
    of_platform_bus_probe() does not handle those child busses automatically.
    
    Unfortunately, this doesn't actually work.  The second (platform-specific)
    call to of_platform_bus_probe() never finds any of the busses it's asked
    to find.
    
    To remedy this, the platform-specific of_device_id tables are eliminated,
    and their entries are merged into mpc85xx_common_ids[], so that all busses
    are probed at once.
    
    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  30. x86, efi: Add dedicated EFI stub entry point

    mfleming committed with gregkh Apr 15, 2012
    commit b199430 upstream.
    
    The method used to work out whether we were booted by EFI firmware or
    via a boot loader is broken. Because efi_main() is always executed
    when booting from a boot loader we will dereference invalid pointers
    either on the stack (CONFIG_X86_32) or contained in %rdx
    (CONFIG_X86_64) when searching for an EFI System Table signature.
    
    Instead of dereferencing these invalid system table pointers, add a
    new entry point that is only used when booting from EFI firmware, when
    we know the pointer arguments will be valid. With this change legacy
    boot loaders will no longer execute efi_main(), but will instead skip
    EFI stub initialisation completely.
    
    [ hpa: Marking this for urgent/stable since it is a regression when
      the option is enabled; without the option the patch has no effect ]
    
    Signed-off-by: Matt Fleming <matt.hfleming@intel.com>
    Link: http://lkml.kernel.org/r/1334584744.26997.14.camel@mfleming-mobl1.ger.corp.intel.com
    Reported-by: Jordan Justen <jordan.l.justen@intel.com>
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  31. x86, boot: Correct CFLAGS for hostprogs

    H. Peter Anvin committed with gregkh Mar 22, 2012
    commit 446e1c8 upstream.
    
    This is a partial revert of commit:
        d40f833 "Restrict CFLAGS for hostprogs"
    
    The endian-manipulation macros in tools/include need <linux/types.h>,
    but the hostprogs in arch/x86/boot need several headers from the
    kernel build tree, which means we have to add the kernel headers to
    the include path.  This picks up <linux/types.h> from the kernel tree,
    which gives a warning.
    
    Since this use of <linux/types.h> is intentional, add
    -D__EXPORTED_HEADERS__ to the command line to silence the warning.
    
    A better way to fix this would be to always install the exported
    kernel headers into $(objtree)/usr/include as a standard part of the
    kernel build, but that is a lot more involved.
    
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: Matt Fleming <matt.fleming@intel.com>
    Link: http://lkml.kernel.org/r/1330436245-24875-5-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  32. x86, efi: Fix endian issues and unaligned accesses

    mfleming committed with gregkh Feb 28, 2012
    commit 92f42c5 upstream.
    
    We may need to convert the endianness of the data we read from/write
    to 'buf', so let's use {get,put}_unaligned_le32() to do that. Failure
    to do so can result in accessing invalid memory, leading to a
    segfault.  Stephen Rothwell noticed this bug while cross-building an
    x86_64 allmodconfig kernel on PowerPC.
    
    We need to read from and write to 'buf' a byte at a time otherwise
    it's possible we'll perform an unaligned access, which can lead to bus
    errors when cross-building an x86 kernel on risc architectures.
    
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Nick Bowler <nbowler@elliptictech.com>
    Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Link: http://lkml.kernel.org/r/1330436245-24875-6-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  33. x86, boot: Restrict CFLAGS for hostprogs

    mfleming committed with gregkh Feb 28, 2012
    commit d40f833 upstream.
    
    Currently tools/build has access to all the kernel headers in
    $(srctree). This is unnecessary and could potentially allow
    tools/build to erroneously include kernel headers when it should only
    be including userspace-exported headers.
    
    Unfortunately, mkcpustr still needs access to some of the asm kernel
    headers, so explicitly special case that hostprog.
    
    Cc: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Link: http://lkml.kernel.org/r/1330436245-24875-5-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  34. x86, mkpiggy: Don't open code put_unaligned_le32()

    mfleming committed with gregkh Feb 28, 2012
    commit 12871c5 upstream.
    
    Use the new headers in tools/include instead of rolling our own
    put_unaligned_le32() implementation.
    
    Cc: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Link: http://lkml.kernel.org/r/1330436245-24875-4-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  35. tools/include: Add byteshift headers for endian access

    mfleming committed with gregkh Feb 28, 2012
    commit a07f767 upstream.
    
    There are various hostprogs in the kernel that are rolling their own
    implementations of {get,put}_unaligned_le*(). Copy the byteshift
    headers from include/linux/unaligned so that they can all use a single
    implementation.
    
    This requires changing some of the data types to the userspace
    exported ones (u32 -> __u32, etc).
    
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Link: http://lkml.kernel.org/r/1330436245-24875-2-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>