1. 04 9月, 2013 1 次提交
    • L
      Merge tag 'regmap-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 8243b7f5
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "A quiet release for regmap, some cleanups, fixes and:
      
         - Improved node coalescing for rbtree, reducing memory usage and
           improving performance during syncs.
         - Support for registering multiple register patches.
         - A quirk for handling interrupts that need to be clear when masked
           in regmap-irq"
      
      * tag 'regmap-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: rbtree: Make cache_present bitmap per node
        regmap: rbtree: Reduce number of nodes, take 2
        regmap: rbtree: Simplify adjacent node look-up
        regmap: debugfs: Fix continued read from registers file
        regcache-rbtree: Fix reg_stride != 1
        regmap: Allow multiple patches to be registered
        regmap: regcache: allow read-only regs to be cached
        regmap: fix regcache_reg_present() for empty cache
        regmap: core: allow a virtual range to cover its own data window
        regmap: irq: document mask/wake_invert flags
        regmap: irq: make flags bool and put them in a bitfield
        regmap: irq: Allow to acknowledge masked interrupts during initialization
        regmap: Provide __acquires/__releases annotations
      8243b7f5
  2. 03 9月, 2013 10 次提交
    • L
      Merge branch 'lockref' (locked reference counts) · fc6d0b03
      Linus Torvalds 提交于
      Merge lockref infrastructure code by me and Waiman Long.
      
      I already merged some of the preparatory patches that didn't actually do
      any semantic changes earlier, but this merges the actual _reason_ for
      those preparatory patches.
      
      The "lockref" structure is a combination "spinlock and reference count"
      that allows optimized reference count accesses.  In particular, it
      guarantees that the reference count will be updated AS IF the spinlock
      was held, but using atomic accesses that cover both the reference count
      and the spinlock words, we can often do the update without actually
      having to take the lock.
      
      This allows us to avoid the nastiest cases of spinlock contention on
      large machines under heavy pathname lookup loads.  When updating the
      dentry reference counts on a large system, we'll still end up with the
      cache line bouncing around, but that's much less noticeable than
      actually having to spin waiting for the lock.
      
      * lockref:
        lockref: implement lockless reference count updates using cmpxchg()
        lockref: uninline lockref helper functions
        vfs: reimplement d_rcu_to_refcount() using lockref_get_or_lock()
        vfs: use lockref_get_not_zero() for optimistic lockless dget_parent()
        lockref: add 'lockref_get_or_lock() helper
      fc6d0b03
    • L
      Linux 3.11 · 6e466452
      Linus Torvalds 提交于
      6e466452
    • L
      lockref: implement lockless reference count updates using cmpxchg() · bc08b449
      Linus Torvalds 提交于
      Instead of taking the spinlock, the lockless versions atomically check
      that the lock is not taken, and do the reference count update using a
      cmpxchg() loop.  This is semantically identical to doing the reference
      count update protected by the lock, but avoids the "wait for lock"
      contention that you get when accesses to the reference count are
      contended.
      
      Note that a "lockref" is absolutely _not_ equivalent to an atomic_t.
      Even when the lockref reference counts are updated atomically with
      cmpxchg, the fact that they also verify the state of the spinlock means
      that the lockless updates can never happen while somebody else holds the
      spinlock.
      
      So while "lockref_put_or_lock()" looks a lot like just another name for
      "atomic_dec_and_lock()", and both optimize to lockless updates, they are
      fundamentally different: the decrement done by atomic_dec_and_lock() is
      truly independent of any lock (as long as it doesn't decrement to zero),
      so a locked region can still see the count change.
      
      The lockref structure, in contrast, really is a *locked* reference
      count.  If you hold the spinlock, the reference count will be stable and
      you can modify the reference count without using atomics, because even
      the lockless updates will see and respect the state of the lock.
      
      In order to enable the cmpxchg lockless code, the architecture needs to
      do three things:
      
       (1) Make sure that the "arch_spinlock_t" and an "unsigned int" can fit
           in an aligned u64, and have a "cmpxchg()" implementation that works
           on such a u64 data type.
      
       (2) define a helper function to test for a spinlock being unlocked
           ("arch_spin_value_unlocked()")
      
       (3) select the "ARCH_USE_CMPXCHG_LOCKREF" config variable in its
           Kconfig file.
      
      This enables it for x86-64 (but not 32-bit, we'd need to make sure
      cmpxchg() turns into the proper cmpxchg8b in order to enable it for
      32-bit mode).
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bc08b449
    • L
      lockref: uninline lockref helper functions · 2f4f12e5
      Linus Torvalds 提交于
      They aren't very good to inline, since they already call external
      functions (the spinlock code), and we're going to create rather more
      complicated versions of them that can do the reference count updates
      locklessly.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2f4f12e5
    • L
      vfs: reimplement d_rcu_to_refcount() using lockref_get_or_lock() · 15570086
      Linus Torvalds 提交于
      This moves __d_rcu_to_refcount() from <linux/dcache.h> into fs/namei.c
      and re-implements it using the lockref infrastructure instead.  It also
      adds a lot of comments about what is actually going on, because turning
      a dentry that was looked up using RCU into a long-lived reference
      counted entry is one of the more subtle parts of the rcu walk.
      
      We also used to be _particularly_ subtle in unlazy_walk() where we
      re-validate both the dentry and its parent using the same sequence
      count.  We used to do it by nesting the locks and then verifying the
      sequence count just once.
      
      That was silly, because nested locking is expensive, but the sequence
      count check is not.  So this just re-validates the dentry and the parent
      separately, avoiding the nested locking, and making the lockref lookup
      possible.
      Acked-by: NWaiman Long <waiman.long@hp.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      15570086
    • W
      vfs: use lockref_get_not_zero() for optimistic lockless dget_parent() · df3d0bbc
      Waiman Long 提交于
      A valid parent pointer is always going to have a non-zero reference
      count, but if we look up the parent optimistically without locking, we
      have to protect against the (very unlikely) race against renaming
      changing the parent from under us.
      
      We do that by using lockref_get_not_zero(), and then re-checking the
      parent pointer after getting a valid reference.
      
      [ This is a re-implementation of a chunk from the original patch by
        Waiman Long: "dcache: Enable lockless update of dentry's refcount".
        I've completely rewritten the patch-series and split it up, but I'm
        attributing this part to Waiman as it's close enough to his earlier
        patch  - Linus ]
      Signed-off-by: NWaiman Long <Waiman.Long@hp.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      df3d0bbc
    • L
      lockref: add 'lockref_get_or_lock() helper · b3abd802
      Linus Torvalds 提交于
      This behaves like "lockref_get_not_zero()", but instead of doing nothing
      if the count was zero, it returns with the lock held.
      
      This allows callers to revalidate the lockref-protected data structure
      if required even if the count was zero to begin with, and possibly
      increment the count if it passes muster.
      
      In particular, the dentry code wants this when it wants to turn an
      RCU-protected dentry into a stable refcounted one: if the dentry count
      it zero, but the sequence number still validates the dentry, we can take
      a reference to it.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b3abd802
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 248d296d
      Linus Torvalds 提交于
      Pull SCSI fix from James Bottomley:
       "This is a bug fix for the pm80xx driver.  It turns out that when the
        new hardware support was added in 3.10 the IO command size was kept at
        the old hard coded value.  This means that the driver attaches to some
        new cards and then simply hangs the system"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] pm80xx: fix Adaptec 71605H hang
      248d296d
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e09a1fa9
      Linus Torvalds 提交于
      Pull x86 boot fix from Peter Anvin:
       "A single very small boot fix for very large memory systems (> 0.5T)"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Fix boot crash with DEBUG_PAGE_ALLOC=y and more than 512G RAM
      e09a1fa9
    • L
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · ac0bc789
      Linus Torvalds 提交于
      Pull slave-dma fix from Vinod Koul:
       "A fix for resolving TI_EDMA driver's build error in allmodconfig to
        have filter function built in""
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        dma/Kconfig: TI_EDMA needs to be boolean
      ac0bc789
  3. 01 9月, 2013 6 次提交
  4. 31 8月, 2013 15 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a8787645
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) There was a simplification in the ipv6 ndisc packet sending
          attempted here, which avoided using memory accounting on the
          per-netns ndisc socket for sending NDISC packets.  It did fix some
          important issues, but it causes regressions so it gets reverted here
          too.  Specifically, the problem with this change is that the IPV6
          output path really depends upon there being a valid skb->sk
          attached.
      
          The reason we want to do this change in some form when we figure out
          how to do it right, is that if a device goes down the ndisc_sk
          socket send queue will fill up and block NDISC packets that we want
          to send to other devices too.  That's really bad behavior.
      
          Hopefully Thomas can come up with a better version of this change.
      
       2) Fix a severe TCP performance regression by reverting a change made
          to dev_pick_tx() quite some time ago.  From Eric Dumazet.
      
       3) TIPC returns wrongly signed error codes, fix from Erik Hugne.
      
       4) Fix OOPS when doing IPSEC over ipv4 tunnels due to orphaning the
          skb->sk too early.  Fix from Li Hongjun.
      
       5) RAW ipv4 sockets can use the wrong routing key during lookup, from
          Chris Clark.
      
       6) Similar to #1 revert an older change that tried to use plain
          alloc_skb() for SYN/ACK TCP packets, this broke the netfilter owner
          mark which needs to see the skb->sk for such frames.  From Phil
          Oester.
      
       7) BNX2x driver bug fixes from Ariel Elior and Yuval Mintz,
          specifically in the handling of virtual functions.
      
       8) IPSEC path error propagations to sockets is not done properly when
          we have v4 in v6, and v6 in v4 type rules.  Fix from Hannes Frederic
          Sowa.
      
       9) Fix missing channel context release in mac80211, from Johannes Berg.
      
      10) Fix network namespace handing wrt.  SCM_RIGHTS, from Andy
          Lutomirski.
      
      11) Fix usage of bogus NAPI weight in jme, netxen, and ps3_gelic
          drivers.  From Michal Schmidt.
      
      12) Hopefully a complete and correct fix for the genetlink dump locking
          and module reference counting.  From Pravin B Shelar.
      
      13) sk_busy_loop() must do a cpu_relax(), from Eliezer Tamir.
      
      14) Fix handling of timestamp offset when restoring a snapshotted TCP
          socket.  From Andrew Vagin.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (44 commits)
        net: fec: fix time stamping logic after napi conversion
        net: bridge: convert MLDv2 Query MRC into msecs_to_jiffies for max_delay
        mISDN: return -EINVAL on error in dsp_control_req()
        net: revert 8728c544 ("net: dev_pick_tx() fix")
        Revert "ipv6: Don't depend on per socket memory for neighbour discovery messages"
        ipv4 tunnels: fix an oops when using ipip/sit with IPsec
        tipc: set sk_err correctly when connection fails
        tcp: tcp_make_synack() should use sock_wmalloc
        bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones
        ipv6: Don't depend on per socket memory for neighbour discovery messages
        ipv4: sendto/hdrincl: don't use destination address found in header
        tcp: don't apply tsoffset if rcv_tsecr is zero
        tcp: initialize rcv_tstamp for restored sockets
        net: xilinx: fix memleak
        net: usb: Add HP hs2434 device to ZLP exception table
        net: add cpu_relax to busy poll loop
        net: stmmac: fixed the pbl setting with DT
        genl: Hold reference on correct module while netlink-dump.
        genl: Fix genl dumpit() locking.
        xfrm: Fix potential null pointer dereference in xdst_queue_output
        ...
      a8787645
    • I
      MAINTAINERS: change my DT related maintainer address · de80963e
      Ian Campbell 提交于
      Filtering capabilities on my work email are pretty much non-existent and this
      has turned out to be something of a firehose...
      
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NIan Campbell <ian.campbell@citrix.com>
      Acked-by: NPawel Moll <pawel.moll@arm.com>
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      de80963e
    • L
      Merge tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 936dbcc3
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "This contains two Oops fixes (opti9xx and HD-audio) and a simple fixup
        for an Acer laptop.  All marked as stable patches"
      
      * tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: opti9xx: Fix conflicting driver object name
        ALSA: hda - Fix NULL dereference with CONFIG_SND_DYNAMIC_MINORS=n
        ALSA: hda - Add inverted digital mic fixup for Acer Aspire One
      936dbcc3
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d9eda0fa
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "Two straggling fixes that I had missed as they were posted a couple of
        weeks ago, causing problems with interrupts (breaking them completely)
        on the CSR SiRF platforms"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm: prima2: drop nr_irqs in mach as we moved to linear irqdomain
        irqchip: sirf: move from legacy mode to linear irqdomain
      d9eda0fa
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 418a95bc
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Since we are getting to the pointy end, one i915 black screen on some
        machines, and one vmwgfx stop userspace ability to nuke the VM,
      
        There might be one or two ati or nouveau fixes trickle in before
        final, but I think this should pretty much be it"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/vmwgfx: Split GMR2_REMAP commands if they are to large
        drm/i915: ivb: fix edp voltage swing reg val
      418a95bc
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 155e3a35
      Linus Torvalds 提交于
      Pull input layer updates from Dmitry Torokhov:
       "Just a couple of new IDs in Wacom and xpad drivers, i8042 is now
        disabled on ARC, and data checks in Elantech driver that were overly
        relaxed by the previous patch are now tightened"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: i8042 - disable the driver on ARC platforms
        Input: xpad - add signature for Razer Onza Classic Edition
        Input: elantech - fix packet check for v3 and v4 hardware
        Input: wacom - add support for 0x300 and 0x301
      155e3a35
    • R
      net: fec: fix time stamping logic after napi conversion · 0affdf34
      Richard Cochran 提交于
      Commit dc975382 "net: fec: add napi support to improve proformance"
      converted the fec driver to the napi model. However, that commit
      forgot to remove the call to skb_defer_rx_timestamp which is only
      needed in non-napi drivers.
      
      (The function napi_gro_receive eventually calls netif_receive_skb,
      which in turn calls skb_defer_rx_timestamp.)
      
      This patch should also be applied to the 3.9 and 3.10 kernels.
      Signed-off-by: NRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0affdf34
    • D
      net: bridge: convert MLDv2 Query MRC into msecs_to_jiffies for max_delay · 2d98c29b
      Daniel Borkmann 提交于
      While looking into MLDv1/v2 code, I noticed that bridging code does
      not convert it's max delay into jiffies for MLDv2 messages as we do
      in core IPv6' multicast code.
      
      RFC3810, 5.1.3. Maximum Response Code says:
      
        The Maximum Response Code field specifies the maximum time allowed
        before sending a responding Report. The actual time allowed, called
        the Maximum Response Delay, is represented in units of milliseconds,
        and is derived from the Maximum Response Code as follows: [...]
      
      As we update timers that work with jiffies, we need to convert it.
      Signed-off-by: NDaniel Borkmann <dborkman@redhat.com>
      Cc: Linus Lüssing <linus.luessing@web.de>
      Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2d98c29b
    • D
      mISDN: return -EINVAL on error in dsp_control_req() · 0d63c27d
      Dan Carpenter 提交于
      If skb->len is too short then we should return an error.  Otherwise we
      read beyond the end of skb->data for several bytes.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d63c27d
    • E
      net: revert 8728c544 ("net: dev_pick_tx() fix") · 702821f4
      Eric Dumazet 提交于
      commit 8728c544 ("net: dev_pick_tx() fix") and commit
      b6fe83e9 ("bonding: refine IFF_XMIT_DST_RELEASE capability")
      are quite incompatible : Queue selection is disabled because skb
      dst was dropped before entering bonding device.
      
      This causes major performance regression, mainly because TCP packets
      for a given flow can be sent to multiple queues.
      
      This is particularly visible when using the new FQ packet scheduler
      with MQ + FQ setup on the slaves.
      
      We can safely revert the first commit now that 416186fb
      ("net: Split core bits of netdev_pick_tx into __netdev_pick_tx")
      properly caps the queue_index.
      Reported-by: NXi Wang <xii@google.com>
      Diagnosed-by: NXi Wang <xii@google.com>
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Alexander Duyck <alexander.h.duyck@intel.com>
      Cc: Denys Fedorysychenko <nuclearcat@nuclearcat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      702821f4
    • D
      Revert "ipv6: Don't depend on per socket memory for neighbour discovery messages" · 25ad6117
      David S. Miller 提交于
      This reverts commit 1f324e38.
      
      It seems to cause regressions, and in particular the output path
      really depends upon there being a socket attached to skb->sk for
      checks such as sk_mc_loop(skb->sk) for example.  See ip6_output_finish2().
      Reported-by: NStephen Warren <swarren@wwwdotorg.org>
      Reported-by: NFabio Estevam <festevam@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      25ad6117
    • L
      ipv4 tunnels: fix an oops when using ipip/sit with IPsec · 737e828b
      Li Hongjun 提交于
      Since commit 3d7b46cd (ip_tunnel: push generic protocol handling to
      ip_tunnel module.), an Oops is triggered when an xfrm policy is configured on
      an IPv4 over IPv4 tunnel.
      
      xfrm4_policy_check() calls __xfrm_policy_check2(), which uses skb_dst(skb). But
      this field is NULL because iptunnel_pull_header() calls skb_dst_drop(skb).
      Signed-off-by: NLi Hongjun <hongjun.li@6wind.com>
      Signed-off-by: NNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      737e828b
    • E
      tipc: set sk_err correctly when connection fails · 2c8d8518
      Erik Hugne 提交于
      Should a connect fail, if the publication/server is unavailable or
      due to some other error, a positive value will be returned and errno
      is never set. If the application code checks for an explicit zero
      return from connect (success) or a negative return (failure), it
      will not catch the error and subsequent send() calls will fail as
      shown from the strace snippet below.
      
      socket(0x1e /* PF_??? */, SOCK_SEQPACKET, 0) = 3
      connect(3, {sa_family=0x1e /* AF_??? */, sa_data="\2\1\322\4\0\0\322\4\0\0\0\0\0\0"}, 16) = 111
      sendto(3, "test", 4, 0, NULL, 0)        = -1 EPIPE (Broken pipe)
      
      The reason for this behaviour is that TIPC wrongly inverts error
      codes set in sk_err.
      Signed-off-by: NErik Hugne <erik.hugne@ericsson.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c8d8518
    • P
      tcp: tcp_make_synack() should use sock_wmalloc · eb8895de
      Phil Oester 提交于
      In commit 90ba9b19 (tcp: tcp_make_synack() can use alloc_skb()), Eric changed
      the call to sock_wmalloc in tcp_make_synack to alloc_skb.  In doing so,
      the netfilter owner match lost its ability to block the SYNACK packet on
      outbound listening sockets.  Revert the change, restoring the owner match
      functionality.
      
      This closes netfilter bugzilla #847.
      Signed-off-by: NPhil Oester <kernel@linuxace.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb8895de
    • L
      bridge: separate querier and query timer into IGMP/IPv4 and MLD/IPv6 ones · cc0fdd80
      Linus Lüssing 提交于
      Currently we would still potentially suffer multicast packet loss if there
      is just either an IGMP or an MLD querier: For the former case, we would
      possibly drop IPv6 multicast packets, for the latter IPv4 ones. This is
      because we are currently assuming that if either an IGMP or MLD querier
      is present that the other one is present, too.
      
      This patch makes the behaviour and fix added in
      "bridge: disable snooping if there is no querier" (b00589af)
      to also work if there is either just an IGMP or an MLD querier on the
      link: It refines the deactivation of the snooping to be protocol
      specific by using separate timers for the snooped IGMP and MLD queries
      as well as separate timers for our internal IGMP and MLD queriers.
      Signed-off-by: NLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cc0fdd80
  5. 30 8月, 2013 8 次提交
    • L
      Merge branch 'for-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 41615e81
      Linus Torvalds 提交于
      Pull cgroup fix from Tejun Heo:
       "During the percpu reference counting update which was merged during
        v3.11-rc1, the cgroup destruction path was updated so that a cgroup in
        the process of dying may linger on the children list, which was
        necessary as the cgroup should still be included in child/descendant
        iteration while percpu ref is being killed.
      
        Unfortunately, I forgot to update cgroup destruction path accordingly
        and cgroup destruction may fail spuriously with -EBUSY due to
        lingering dying children even when there's no live child left - e.g.
        "rmdir parent/child parent" will usually fail.
      
        This can be easily fixed by iterating through the children list to
        verify that there's no live child left.  While this is very late in
        the release cycle, this bug is very visible to userland and I believe
        the fix is relatively safe.
      
        Thanks Hugh for spotting and providing fix for the issue"
      
      * 'for-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: fix rmdir EBUSY regression in 3.11
      41615e81
    • L
      Merge branch 'for-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · ff497452
      Linus Torvalds 提交于
      Pull workqueue fix from Tejun Heo:
       "This contains one fix which could lead to system-wide lockup on
        !PREEMPT kernels.  It's very late in the cycle but this definitely is
        a -stable material.
      
        The problem is that workqueue worker tasks may process unlimited
        number of work items back-to-back without every yielding inbetween.
        This usually isn't noticeable but a work item which re-queues itself
        waiting for someone else to do something can deadlock with
        stop_machine.  stop_machine will ensure nothing else happens on all
        other cpus and the requeueing work item will reqeueue itself
        indefinitely without ever yielding and thus preventing the CPU from
        entering stop_machine.
      
        Kudos to Jamie Liu for spotting and diagnosing the problem.  This can
        be trivially fixed by adding cond_resched() after processing each work
        item"
      
      * 'for-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: cond_resched() after processing each work item
      ff497452
    • L
      Merge tag 'nfs-for-3.11-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 06a557f7
      Linus Torvalds 提交于
      Pull NFS client bugfix from Trond Myklebust:
       "Stable patch to fix a highmem-related data corruption issue on 32-bit
        ARM platforms"
      
      * tag 'nfs-for-3.11-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: Fix memory corruption issue on 32-bit highmem systems
      06a557f7
    • J
      drm/vmwgfx: Split GMR2_REMAP commands if they are to large · 6e4dcff3
      Jakob Bornecrantz 提交于
      This fixes the piglit test texturing/max-texture-size
      causing the VM to die due to a too large SVGA command.
      Signed-off-by: NJakob Bornecrantz <jakob@vmware.com>
      Reviewed-by: NBiran Paul <brianp@vmware.com>
      Reviewed-by: NZack Rusin <zackr@vmware.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      6e4dcff3
    • D
      Merge tag 'drm-intel-fixes-2013-08-30' of... · 1dcff832
      Dave Airlie 提交于
      Merge tag 'drm-intel-fixes-2013-08-30' of git://people.freedesktop.org/~danvet/drm-intel into drm-fixes
      
      Just a one-line patch to fix a black screen issue on rare ivb machines,
      cc: stable. Normally I'd just shovel this into the -next pull request this
      late in the -rc cycle, but Linus was making noises about not getting real
      fixes which are cc: stable. So here we go ;-)
      
      * tag 'drm-intel-fixes-2013-08-30' of git://people.freedesktop.org/~danvet/drm-intel:
        drm/i915: ivb: fix edp voltage swing reg val
      1dcff832
    • I
      drm/i915: ivb: fix edp voltage swing reg val · 77fa4cbd
      Imre Deak 提交于
      Fix the typo introduced in
      
      commit 1a2eb460
      Author: Keith Packard <keithp@keithp.com>
      Date:   Wed Nov 16 16:26:07 2011 -0800
      
          drm/i915: Hook up Ivybridge eDP
      
      This fixes eDP link-training failures and cases where all voltage swing
      /pre-emphasis levels were tried and failed during clock recovery and -
      as a fallback - we go on to do channel equalization with the last voltage
      swing/pre-emphasis level which will succeed. Both issues can lead to a
      blank screen.
      
      v2:
      - improve commit message
      
      CC: stable@vger.kernel.org
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64880Tested-by: NJeremy Moles <cubicool@gmail.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      77fa4cbd
    • D
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec · 79f9ab7e
      David S. Miller 提交于
      Steffen Klassert says:
      
      ====================
      This pull request fixes some issues that arise when 6in4 or 4in6 tunnels
      are used in combination with IPsec, all from Hannes Frederic Sowa and a
      null pointer dereference when queueing packets to the policy hold queue.
      
      1) We might access the local error handler of the wrong address family if
         6in4 or 4in6 tunnel is protected by ipsec. Fix this by addind a pointer
         to the correct local_error to xfrm_state_afinet.
      
      2) Add a helper function to always refer to the correct interpretation
         of skb->sk.
      
      3) Call skb_reset_inner_headers to record the position of the inner headers
         when adding a new one in various ipv6 tunnels. This is needed to identify
         the addresses where to send back errors in the xfrm layer.
      
      4) Dereference inner ipv6 header if encapsulated to always call the
         right error handler.
      
      5) Choose protocol family by skb protocol to not call the wrong
         xfrm{4,6}_local_error handler in case an ipv6 sockets is used
         in ipv4 mode.
      
      6) Partly revert "xfrm: introduce helper for safe determination of mtu"
         because this introduced pmtu discovery problems.
      
      7) Set skb->protocol on tcp, raw and ip6_append_data genereated skbs.
         We need this to get the correct mtu informations in xfrm.
      
      8) Fix null pointer dereference in xdst_queue_output.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      79f9ab7e
    • T
      ipv6: Don't depend on per socket memory for neighbour discovery messages · 1f324e38
      Thomas Graf 提交于
      Allocating skbs when sending out neighbour discovery messages
      currently uses sock_alloc_send_skb() based on a per net namespace
      socket and thus share a socket wmem buffer space.
      
      If a netdevice is temporarily unable to transmit due to carrier
      loss or for other reasons, the queued up ndisc messages will cosnume
      all of the wmem space and will thus prevent from any more skbs to
      be allocated even for netdevices that are able to transmit packets.
      
      The number of neighbour discovery messages sent is very limited,
      simply use alloc_skb() and don't depend on any socket wmem space any
      longer.
      
      This patch has orginally been posted by Eric Dumazet in a modified
      form.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Acked-by: NHannes Frederic Sowa <hannes@stressinduktion.org>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1f324e38