Commits on Feb 18, 2012
  1. Linux 3.3-rc4

    committed Feb 18, 2012
  2. Merge tag 'fixes-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/arm/arm-soc
    
    These are the bug fixes that have accumulated since 3.3-rc3 in arm-soc.
    The majority of them are regression fixes for stuff that broke during
    the merge 3.3 window.
    
    The notable ones are:
    
    * The at91 ata drivers both broke because of an earlier cleanup patch that
      some other patches were based on. Jean-Christophe decided to remove
      the legacy at91_ide driver and fix the new-style at91-pata driver while
      keeping the cleanup patch. I almost rejected the patches for being too
      late and too big but in the end decided to accept them because they
      fix a regression.
    
    * A patch fixing build breakage from the sysdev-to-device conversion
      colliding with other changes touches a number of mach-s3c files.
    
    * b065403 "ARM: orion: Fix Orion5x GPIO regression from MPP cleanup"
      is a mechanical change that unfortunately touches a lot of lines
      that should up in the diffstat.
    
    * tag 'fixes-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
      ARM: at91: drop ide driver in favor of the pata one
      pata/at91: use newly introduced SMC accessors
      ARM: at91: add accessor to manage SMC
      ARM: at91:rtc/rtc-at91sam9: ioremap register bank
      ARM: at91: USB AT91 gadget registration for module
      ep93xx: fix build of vision_ep93xx.c
      ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3
      ARM: orion: Fix USB phy for orion5x.
      ARM: orion: Fix Orion5x GPIO regression from MPP cleanup
      ARM: EXYNOS: Add cpu-offset property in gic device tree node
      ARM: EXYNOS: Bring exynos4-dt up to date
      ARM: OMAP3: cm-t35: fix section mismatch warning
      ARM: OMAP2: Fix the OMAP2 only build break seen with 2011+ ARM tool-chains
      ARM: tegra: paz00: fix wrong UART port on mini-pcie plug
      ARM: tegra: paz00: fix wrong SD1 power gpio
      i2c: tegra: Add devexit_p() for remove
      ARM: EXYNOS: Correct M-5MOLS sensor clock frequency on Universal C210 board
      ARM: EXYNOS: Correct framebuffer window size on Nuri board
      ARM: SAMSUNG: Fix missing api-change from subsys_interface change
      ARM: EXYNOS: Fix "warning: initialization from incompatible pointer type"
      ...
    committed Feb 18, 2012
  3. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    1) VETH_INFO_PEER netlink attribute needs to have it's size validated,
       from Thomas Graf.
    
    2) 'poll' module option of bnx2x driver crashes the machine, just remove
       it.  From Michal Schmidt.
    
    3) ks8851_mll driver reads the irq number from two places, but only
       initializes one of them, oops.  Use only one location and fix this
       problem, from Jan Weitzel.
    
    4) Fix buffer overrun and unicast sterring bugs in mellanox mlx4 driver,
       from Eugenia Emantayev.
    
    5) Swapped kcalloc() args in RxRPC and mlx4, from Axel Lin.
    
    6) PHY MDIO device name regression fixes from Florian Fainelli.
    
    7) If the wake event IRQ line is different from the netdevice one, we
       have to properly route it to the stmmac interrupt handler.  From
       Francesco Virlinzi.
    
    8) Fix rwlock lock initialization ordering bug in mac80211, from
       Mohammed Shafi Shajakhan.
    
    9) TCP lost_cnt can get out of sync, and in fact go negative, in certain
       circumstances.  Fix the way we specify what sequence range to operate
       on in tcp_sacktag_one() to fix this bug.  From Neal Cardwell.
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (27 commits)
      net/ethernet: ks8851_mll fix irq handling
      veth: Enforce minimum size of VETH_INFO_PEER
      stmmac: update the driver version to Feb 2012 (v2)
      stmmac: move hw init in the probe (v2)
      stmmac: request_irq when use an ext wake irq line (v2)
      stmmac: do not discard frame on dribbling bit assert
      ipheth: Add iPhone 4S
      mlx4: add unicast steering entries to resource_tracker
      mlx4: fix QP tree trashing
      mlx4: fix buffer overrun
      3c59x: shorten timer period for slave devices
      netpoll: netpoll_poll_dev() should access dev->flags
      RxRPC: Fix kcalloc parameters swapped
      bnx2x: remove the 'poll' module option
      tcp: fix tcp_shifted_skb() adjustment of lost_cnt_hint for FACK
      ks8851: Fix NOHZ local_softirq_pending 08 warning
      bnx2x: fix bnx2x_storm_stats_update() on big endian
      ixp4xx-eth: fix PHY name to match MDIO bus name
      octeon: fix PHY name to match MDIO bus name
      fec: fix PHY name to match fixed MDIO bus name
      ...
    committed Feb 18, 2012
  4. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/broonie/regmap
    
    Fixes a bootstrapping issue for some registers when a less commonly used
    method for register cache initialisation is used.  Only affects a fairly
    small proportion of users that both don't use explicit register defaults
    and do use the cache.
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
      regmap: Fix cache defaults initialization from raw cache defaults
    committed Feb 18, 2012
  5. Merge tag 'ecryptfs-3.3-rc4-fixes' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/tyhicks/ecryptfs
    
    Fixes maximum filename length and filesystem type reporting in statfs() calls
    and also fixes stale inode mode bits on eCryptfs inodes after a POSIX ACL was
    set on the lower filesystem's inode.
    
    * tag 'ecryptfs-3.3-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
      ecryptfs: remove the second argument of k[un]map_atomic()
      eCryptfs: Copy up lower inode attrs after setting lower xattr
      eCryptfs: Improve statfs reporting
    committed Feb 18, 2012
  6. Merge tag 'pinctrl' of git://git.kernel.org/pub/scm/linux/kernel/git/…

    …linusw/linux-pinctrl
    
    pinctrl fixes for v3.3
    
    * tag 'pinctrl-for-torvalds-20120216' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
      pinctrl: restore pin naming
    committed Feb 18, 2012
  7. Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/benh/powerpc
    
    Here are a few more fixes for powerpc.  Some are regressions, the rest
    is simple/obvious/nasty enough that I deemed it good to go now.
    
    Here's also step one of deprecating legacy iSeries support: we are
    removing it from the main defconfig.
    
    Nobody seems to be using it anymore and the code is nasty to maintain,
    (involves horrible hacks in various low level areas of the kernel) so we
    plan to actually rip it out at some point.  For now let's just avoid
    building it by default.  Stephen will proceed to do the actual removal
    later (probably 3.4 or 3.5).
    
    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
      powerpc/perf: power_pmu_start restores incorrect values, breaking frequency events
      powerpc/adb: Use set_current_state()
      powerpc: Disable interrupts early in Program Check
      powerpc: Remove legacy iSeries from ppc64_defconfig
      powerpc/fsl/pci: Fix PCIe fixup regression
      powerpc: Fix kernel log of oops/panic instruction dump
    committed Feb 18, 2012
  8. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/jbarnes/pci
    
    One regression fix for SR-IOV on PPC and a couple of misc fixes from
    Yinghai.
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:
      PCI: Fix pci cardbus removal
      PCI: set pci sriov page size before reading SRIOV BAR
      PCI: workaround hard-wired bus number V2
    committed Feb 18, 2012
  9. Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

    3 radeon fixes, I have some exynos fixes to push later but I'll queue
    them separately once I've looked them over a bit.
    
    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
      drm/radeon/kms: fix MSI re-arm on rv370+
      drm/radeon/kms/atom: bios scratch reg handling updates
      drm/radeon/kms: drop lock in return path of radeon_fence_count_emitted.
    committed Feb 18, 2012
  10. Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
      crypto: sha512 - use standard ror64()
    committed Feb 18, 2012
  11. i387: re-introduce FPU state preloading at context switch time

    After all the FPU state cleanups and finally finding the problem that
    caused all our FPU save/restore problems, this re-introduces the
    preloading of FPU state that was removed in commit b3b0870 ("i387:
    do not preload FPU state at task switch time").
    
    However, instead of simply reverting the removal, this reimplements
    preloading with several fixes, most notably
    
     - properly abstracted as a true FPU state switch, rather than as
       open-coded save and restore with various hacks.
    
       In particular, implementing it as a proper FPU state switch allows us
       to optimize the CR0.TS flag accesses: there is no reason to set the
       TS bit only to then almost immediately clear it again.  CR0 accesses
       are quite slow and expensive, don't flip the bit back and forth for
       no good reason.
    
     - Make sure that the same model works for both x86-32 and x86-64, so
       that there are no gratuitous differences between the two due to the
       way they save and restore segment state differently due to
       architectural differences that really don't matter to the FPU state.
    
     - Avoid exposing the "preload" state to the context switch routines,
       and in particular allow the concept of lazy state restore: if nothing
       else has used the FPU in the meantime, and the process is still on
       the same CPU, we can avoid restoring state from memory entirely, just
       re-expose the state that is still in the FPU unit.
    
       That optimized lazy restore isn't actually implemented here, but the
       infrastructure is set up for it.  Of course, older CPU's that use
       'fnsave' to save the state cannot take advantage of this, since the
       state saving also trashes the state.
    
    In other words, there is now an actual _design_ to the FPU state saving,
    rather than just random historical baggage.  Hopefully it's easier to
    follow as a result.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 18, 2012
  12. i387: move TS_USEDFPU flag from thread_info to task_struct

    This moves the bit that indicates whether a thread has ownership of the
    FPU from the TS_USEDFPU bit in thread_info->status to a word of its own
    (called 'has_fpu') in task_struct->thread.has_fpu.
    
    This fixes two independent bugs at the same time:
    
     - changing 'thread_info->status' from the scheduler causes nasty
       problems for the other users of that variable, since it is defined to
       be thread-synchronous (that's what the "TS_" part of the naming was
       supposed to indicate).
    
       So perfectly valid code could (and did) do
    
    	ti->status |= TS_RESTORE_SIGMASK;
    
       and the compiler was free to do that as separate load, or and store
       instructions.  Which can cause problems with preemption, since a task
       switch could happen in between, and change the TS_USEDFPU bit. The
       change to TS_USEDFPU would be overwritten by the final store.
    
       In practice, this seldom happened, though, because the 'status' field
       was seldom used more than once, so gcc would generally tend to
       generate code that used a read-modify-write instruction and thus
       happened to avoid this problem - RMW instructions are naturally low
       fat and preemption-safe.
    
     - On x86-32, the current_thread_info() pointer would, during interrupts
       and softirqs, point to a *copy* of the real thread_info, because
       x86-32 uses %esp to calculate the thread_info address, and thus the
       separate irq (and softirq) stacks would cause these kinds of odd
       thread_info copy aliases.
    
       This is normally not a problem, since interrupts aren't supposed to
       look at thread information anyway (what thread is running at
       interrupt time really isn't very well-defined), but it confused the
       heck out of irq_fpu_usable() and the code that tried to squirrel
       away the FPU state.
    
       (It also caused untold confusion for us poor kernel developers).
    
    It also turns out that using 'task_struct' is actually much more natural
    for most of the call sites that care about the FPU state, since they
    tend to work with the task struct for other reasons anyway (ie
    scheduling).  And the FPU data that we are going to save/restore is
    found there too.
    
    Thanks to Arjan Van De Ven <arjan@linux.intel.com> for pointing us to
    the %esp issue.
    
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Reported-and-tested-by: Raphael Prevost <raphael@buro.asia>
    Acked-and-tested-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Tested-by: Peter Anvin <hpa@zytor.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 17, 2012
Commits on Feb 17, 2012
  1. i387: move AMD K7/K8 fpu fxsave/fxrstor workaround from save to restore

    The AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception is
    pending.  In order to not leak FIP state from one process to another, we
    need to do a floating point load after the fxsave of the old process,
    and before the fxrstor of the new FPU state.  That resets the state to
    the (uninteresting) kernel load, rather than some potentially sensitive
    user information.
    
    We used to do this directly after the FPU state save, but that is
    actually very inconvenient, since it
    
     (a) corrupts what is potentially perfectly good FPU state that we might
         want to lazy avoid restoring later and
    
     (b) on x86-64 it resulted in a very annoying ordering constraint, where
         "__unlazy_fpu()" in the task switch needs to be delayed until after
         the DS segment has been reloaded just to get the new DS value.
    
    Coupling it to the fxrstor instead of the fxsave automatically avoids
    both of these issues, and also ensures that we only do it when actually
    necessary (the FP state after a save may never actually get used).  It's
    simply a much more natural place for the leaked state cleanup.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 16, 2012
Commits on Feb 16, 2012
  1. i387: do not preload FPU state at task switch time

    Yes, taking the trap to re-load the FPU/MMX state is expensive, but so
    is spending several days looking for a bug in the state save/restore
    code.  And the preload code has some rather subtle interactions with
    both paravirtualization support and segment state restore, so it's not
    nearly as simple as it should be.
    
    Also, now that we no longer necessarily depend on a single bit (ie
    TS_USEDFPU) for keeping track of the state of the FPU, we migth be able
    to do better.  If we are really switching between two processes that
    keep touching the FP state, save/restore is inevitable, but in the case
    of having one process that does most of the FPU usage, we may actually
    be able to do much better than the preloading.
    
    In particular, we may be able to keep track of which CPU the process ran
    on last, and also per CPU keep track of which process' FP state that CPU
    has.  For modern CPU's that don't destroy the FPU contents on save time,
    that would allow us to do a lazy restore by just re-enabling the
    existing FPU state - with no restore cost at all!
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 16, 2012
  2. @tyhicks

    ecryptfs: remove the second argument of k[un]map_atomic()

    Signed-off-by: Cong Wang <amwang@redhat.com>
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Cong Wang committed with tyhicks Feb 10, 2012
  3. @tyhicks

    eCryptfs: Copy up lower inode attrs after setting lower xattr

    After passing through a ->setxattr() call, eCryptfs needs to copy the
    inode attributes from the lower inode to the eCryptfs inode, as they
    may have changed in the lower filesystem's ->setxattr() path.
    
    One example is if an extended attribute containing a POSIX Access
    Control List is being set. The new ACL may cause the lower filesystem to
    modify the mode of the lower inode and the eCryptfs inode would need to
    be updated to reflect the new mode.
    
    https://launchpad.net/bugs/926292
    
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Reported-by: Sebastien Bacher <seb128@ubuntu.com>
    Cc: John Johansen <john.johansen@canonical.com>
    Cc: <stable@vger.kernel.org>
    tyhicks committed Feb 7, 2012
  4. @tyhicks

    eCryptfs: Improve statfs reporting

    statfs() calls on eCryptfs files returned the wrong filesystem type and,
    when using filename encryption, the wrong maximum filename length.
    
    If mount-wide filename encryption is enabled, the cipher block size and
    the lower filesystem's max filename length will determine the max
    eCryptfs filename length. Pre-tested, known good lengths are used when
    the lower filesystem's namelen is 255 and a cipher with 8 or 16 byte
    block sizes is used. In other, less common cases, we fall back to a safe
    rounded-down estimate when determining the eCryptfs namelen.
    
    https://launchpad.net/bugs/885744
    
    Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
    Reported-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: John Johansen <john.johansen@canonical.com>
    tyhicks committed Nov 5, 2011
  5. i387: don't ever touch TS_USEDFPU directly, use helper functions

    This creates three helper functions that do the TS_USEDFPU accesses, and
    makes everybody that used to do it by hand use those helpers instead.
    
    In addition, there's a couple of helper functions for the "change both
    CR0.TS and TS_USEDFPU at the same time" case, and the places that do
    that together have been changed to use those.  That means that we have
    fewer random places that open-code this situation.
    
    The intent is partly to clarify the code without actually changing any
    semantics yet (since we clearly still have some hard to reproduce bug in
    this area), but also to make it much easier to use another approach
    entirely to caching the CR0.TS bit for software accesses.
    
    Right now we use a bit in the thread-info 'status' variable (this patch
    does not change that), but we might want to make it a full field of its
    own or even make it a per-cpu variable.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 16, 2012
  6. i387: move TS_USEDFPU clearing out of __save_init_fpu and into callers

    Touching TS_USEDFPU without touching CR0.TS is confusing, so don't do
    it.  By moving it into the callers, we always do the TS_USEDFPU next to
    the CR0.TS accesses in the source code, and it's much easier to see how
    the two go hand in hand.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 16, 2012
  7. i387: fix x86-64 preemption-unsafe user stack save/restore

    Commit 5b1cbac ("i387: make irq_fpu_usable() tests more robust")
    added a sanity check to the #NM handler to verify that we never cause
    the "Device Not Available" exception in kernel mode.
    
    However, that check actually pinpointed a (fundamental) race where we do
    cause that exception as part of the signal stack FPU state save/restore
    code.
    
    Because we use the floating point instructions themselves to save and
    restore state directly from user mode, we cannot do that atomically with
    testing the TS_USEDFPU bit: the user mode access itself may cause a page
    fault, which causes a task switch, which saves and restores the FP/MMX
    state from the kernel buffers.
    
    This kind of "recursive" FP state save is fine per se, but it means that
    when the signal stack save/restore gets restarted, it will now take the
    '#NM' exception we originally tried to avoid.  With preemption this can
    happen even without the page fault - but because of the user access, we
    cannot just disable preemption around the save/restore instruction.
    
    There are various ways to solve this, including using the
    "enable/disable_page_fault()" helpers to not allow page faults at all
    during the sequence, and fall back to copying things by hand without the
    use of the native FP state save/restore instructions.
    
    However, the simplest thing to do is to just allow the #NM from kernel
    space, but fix the race in setting and clearing CR0.TS that this all
    exposed: the TS bit changes and the TS_USEDFPU bit absolutely have to be
    atomic wrt scheduling, so while the actual state save/restore can be
    interrupted and restarted, the act of actually clearing/setting CR0.TS
    and the TS_USEDFPU bit together must not.
    
    Instead of just adding random "preempt_disable/enable()" calls to what
    is already excessively ugly code, this introduces some helper functions
    that mostly mirror the "kernel_fpu_begin/end()" functionality, just for
    the user state instead.
    
    Those helper functions should probably eventually replace the other
    ad-hoc CR0.TS and TS_USEDFPU tests too, but I'll need to think about it
    some more: the task switching functionality in particular needs to
    expose the difference between the 'prev' and 'next' threads, while the
    new helper functions intentionally were written to only work with
    'current'.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    committed Feb 16, 2012
  8. @antonblanchard @ozbenh

    powerpc/perf: power_pmu_start restores incorrect values, breaking fre…

    …quency events
    
    perf on POWER stopped working after commit e050e3f (perf: Fix
    broken interrupt rate throttling). That patch exposed a bug in
    the POWER perf_events code.
    
    Since the PMCs count upwards and take an exception when the top bit
    is set, we want to write 0x80000000 - left in power_pmu_start. We were
    instead programming in left which effectively disables the counter
    until we eventually hit 0x80000000. This could take seconds or longer.
    
    With the patch applied I get the expected number of samples:
    
              SAMPLE events:       9948
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Acked-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: <stable@kernel.org>
    antonblanchard committed with ozbenh Feb 15, 2012
  9. @majianpeng @ozbenh

    powerpc/adb: Use set_current_state()

    Signed-off-by: majianpeng <majianpeng@gmail.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    majianpeng committed with ozbenh Feb 3, 2012
  10. @ozbenh

    powerpc: Disable interrupts early in Program Check

    Program Check exceptions are the result of WARNs, BUGs, some
    type of breakpoints, kprobe, and other illegal instructions.
    
    We want interrupts (and thus preemption) to remain disabled
    while doing the initial stage of testing the reason and
    branching off to a debugger or kprobe, so we are still on
    the original CPU which makes debugging easier in various cases.
    
    This is how the code was intended, hence the local_irq_enable()
    right in the middle of program_check_exception().
    
    However, the assembly exception prologue for that exception was
    incorrectly marked as enabling interrupts, which defeats that
    (and records a redundant enable with lockdep).
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Feb 13, 2012
  11. @ozbenh

    powerpc: Remove legacy iSeries from ppc64_defconfig

    Since we are heading towards removing the Legacy iSeries platform, start
    by no longer building it for ppc64_defconfig.
    
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Stephen Rothwell committed with ozbenh Feb 14, 2012
  12. @ozbenh

    powerpc/fsl/pci: Fix PCIe fixup regression

    Upstream changes to the way PHB resources are registered
    broke the resource fixup for FSL boards.
    
    We can no longer rely on the resource pointer array for the PHB's
    pci_bus structure, so let's leave it alone and go straight for
    the PHB resources instead. This also makes the code generally
    more readable.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Feb 14, 2012
  13. @ozbenh

    powerpc: Fix kernel log of oops/panic instruction dump

    A kernel oops/panic prints an instruction dump showing several
    instructions before and after the instruction which caused the
    oops/panic.
    
    The code intended that the faulting instruction be enclosed in angle
    brackets, however a bug caused the faulting instruction to be
    interpreted by printk() as the message log level.
    
    To fix this, the KERN_CONT log level is added before the actual text of
    the printed message.
    
    === Before the patch ===
    
    [ 1081.587266] Instruction dump:
    [ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
    [ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
    [ 1081.602500]  4e800020 3803ffd0 2b800009
    
    <4>[ 1081.587266] Instruction dump:
    <4>[ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
    <4>[ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
    <98090000>[ 1081.602500]  4e800020 3803ffd0 2b800009
    
    === After the patch ===
    
    [   51.385216] Instruction dump:
    [   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
    [   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009
    
    <4>[   51.385216] Instruction dump:
    <4>[   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
    <4>[   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009
    
    Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Ira Snyder committed with ozbenh Jan 6, 2012
  14. @herbertx

    crypto: sha512 - use standard ror64()

    Use standard ror64() instead of hand-written.
    There is no standard ror64, so create it.
    
    The difference is shift value being "unsigned int" instead of uint64_t
    (for which there is no reason). gcc starts to emit native ROR instructions
    which it doesn't do for some reason currently. This should make the code
    faster.
    
    Patch survives in-tree crypto test and ping flood with hmac(sha512) on.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Alexey Dobriyan committed with herbertx Jan 14, 2012
Commits on Feb 15, 2012
  1. @davem330

    net/ethernet: ks8851_mll fix irq handling

    There a two different irq variables ks->irq and netdev->irq.
    Only ks->irq is set on probe, so disabling irq in ks_start_xmit fails.
    
    This patches remove ks->irq from private data and use only netdev->irq.
    
    Tested on a kernel 3.0 based OMAP4430 SMP Board
    
    Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jan Weitzel committed with davem330 Feb 14, 2012
  2. @tgraf @davem330

    veth: Enforce minimum size of VETH_INFO_PEER

    VETH_INFO_PEER carries struct ifinfomsg plus optional IFLA
    attributes. A minimal size of sizeof(struct ifinfomsg) must be
    enforced or we may risk accessing that struct beyond the limits
    of the netlink message.
    
    Signed-off-by: Thomas Graf <tgraf@suug.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    tgraf committed with davem330 Feb 15, 2012
  3. @davem330

    stmmac: update the driver version to Feb 2012 (v2)

    Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Giuseppe CAVALLARO committed with davem330 Feb 15, 2012
  4. @davem330

    stmmac: move hw init in the probe (v2)

    This patch moves the MAC HW initialization and
    the HW feature verification from the open to the probe
    function as D. Miller suggested.
    So the patch actually reorganizes and tidies-up some parts of
    the driver and indeed fixes some problem when tune its HW features.
    These can be overwritten by looking at the HW cap register at
    run-time and that generated problems.
    
    Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Reviewed-by: Francesco Virlinzi <francesco.virlinzi@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Giuseppe CAVALLARO committed with davem330 Feb 15, 2012
  5. @davem330

    stmmac: request_irq when use an ext wake irq line (v2)

    In case of we use an external Wake-Up IRQ line
    (priv->wol_irq != dev->irq) we need to invoke the
    request_irq.
    
    Signed-off-by: Francesco Virlinzi <francesco.virlinzi@st.com>
    Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Francesco Virlinzi committed with davem330 Feb 15, 2012
  6. @davem330

    stmmac: do not discard frame on dribbling bit assert

    If this bit is set and the CRC error is reset, then the packet is valid.
    Only report this as stat info.
    
    Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Giuseppe CAVALLARO committed with davem330 Feb 15, 2012
  7. @davem330

    ipheth: Add iPhone 4S

    BugLink: http://bugs.launchpad.net/bugs/900802
    
    Cc: stable@vger.kernel.org 3.2+
    Signed-off-by: Till Kamppeter <till.kamppeter@gmail.com>
    Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Tim Gardner committed with davem330 Feb 15, 2012
  8. @davem330

    mlx4: add unicast steering entries to resource_tracker

    Add unicast steering entries to resource tracker.
    Do qp_detach also for these entries when VF doesn't shut down gracefully.
    Otherwise there is leakage of these resources, since they are not tracked.
    
    Signed-off-by: Eugenia Emantayev <eugenia@mellanox.co.il>
    Reviewed-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Eugenia Emantayev committed with davem330 Feb 15, 2012