Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Dec 24, 2011
  1. Linux 3.2-rc7

    authored
  2. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/viro/vfs
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
      VFS: Fix race between CPU hotplug and lglocks
  3. Merge tag 'writeback' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    authored
    …t/wfg/linux
    
    for linus: writeback reason binary tracing format fix
    
    * tag 'writeback' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
      writeback: show writeback reason with __print_symbolic
Commits on Dec 23, 2011
  1. Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…

    authored
    …git/mmarek/kbuild
    
    * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
      kconfig: adapt update-po-config to new UML layout
  2. Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/ke…

    authored
    …rnel/git/mchehab/linux-media
    
    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
      [media] omap3isp: Fix crash caused by subdevs now having a pointer to devnodes
  3. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/mason/linux-btrfs
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
      Btrfs: call d_instantiate after all ops are setup
      Btrfs: fix worker lock misuse in find_worker
  4. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

    authored
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
      sparc64: Fix MSIQ HV call ordering in pci_sun4v_msiq_build_irq().
  5. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    authored
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      netfilter: xt_connbytes: handle negation correctly
      net: relax rcvbuf limits
      rps: fix insufficient bounds checking in store_rps_dev_flow_table_cnt()
      net: introduce DST_NOPEER dst flag
      mqprio: Avoid panic if no options are provided
      bridge: provide a mtu() method for fake_dst_ops
  6. @davem330
  7. netfilter: xt_connbytes: handle negation correctly

    Florian Westphal authored Pablo Neira Ayuso committed
    "! --connbytes 23:42" should match if the packet/byte count is not in range.
    
    As there is no explict "invert match" toggle in the match structure,
    userspace swaps the from and to arguments
    (i.e., as if "--connbytes 42:23" were given).
    
    However, "what <= 23 && what >= 42" will always be false.
    
    Change things so we use "||" in case "from" is larger than "to".
    
    This change may look like it breaks backwards compatibility when "to" is 0.
    However, older iptables binaries will refuse "connbytes 42:0",
    and current releases treat it to mean "! --connbytes 0:42",
    so we should be fine.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  8. @chrismason-xx

    Btrfs: call d_instantiate after all ops are setup

    Al Viro authored chrismason-xx committed
    This closes races where btrfs is calling d_instantiate too soon during
    inode creation.  All of the callers of btrfs_add_nondir are updated to
    instantiate after the inode is fully setup in memory.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
  9. @chrismason-xx

    Btrfs: fix worker lock misuse in find_worker

    chrismason-xx authored
    Dan Carpenter noticed that we were doing a double unlock on the worker
    lock, and sometimes picking a worker thread without the lock held.
    
    This fixes both errors.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
  10. @davem330

    net: relax rcvbuf limits

    Eric Dumazet authored davem330 committed
    skb->truesize might be big even for a small packet.
    
    Its even bigger after commit 87fb4b7 (net: more accurate skb
    truesize) and big MTU.
    
    We should allow queueing at least one packet per receiver, even with a
    low RCVBUF setting.
    
    Reported-by: Michal Simek <monstr@monstr.eu>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  11. @xiw @davem330

    rps: fix insufficient bounds checking in store_rps_dev_flow_table_cnt()

    xiw authored davem330 committed
    Setting a large rps_flow_cnt like (1 << 30) on 32-bit platform will
    cause a kernel oops due to insufficient bounds checking.
    
    	if (count > 1<<30) {
    		/* Enforce a limit to prevent overflow */
    		return -EINVAL;
    	}
    	count = roundup_pow_of_two(count);
    	table = vmalloc(RPS_DEV_FLOW_TABLE_SIZE(count));
    
    Note that the macro RPS_DEV_FLOW_TABLE_SIZE(count) is defined as:
    
    	... + (count * sizeof(struct rps_dev_flow))
    
    where sizeof(struct rps_dev_flow) is 8.  (1 << 30) * 8 will overflow
    32 bits.
    
    This patch replaces the magic number (1 << 30) with a symbolic bound.
    
    Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Xi Wang <xi.wang@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  12. @davem330

    net: introduce DST_NOPEER dst flag

    Eric Dumazet authored davem330 committed
    Chris Boot reported crashes occurring in ipv6_select_ident().
    
    [  461.457562] RIP: 0010:[<ffffffff812dde61>]  [<ffffffff812dde61>]
    ipv6_select_ident+0x31/0xa7
    
    [  461.578229] Call Trace:
    [  461.580742] <IRQ>
    [  461.582870]  [<ffffffff812efa7f>] ? udp6_ufo_fragment+0x124/0x1a2
    [  461.589054]  [<ffffffff812dbfe0>] ? ipv6_gso_segment+0xc0/0x155
    [  461.595140]  [<ffffffff812700c6>] ? skb_gso_segment+0x208/0x28b
    [  461.601198]  [<ffffffffa03f236b>] ? ipv6_confirm+0x146/0x15e
    [nf_conntrack_ipv6]
    [  461.608786]  [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
    [  461.614227]  [<ffffffff81271d64>] ? dev_hard_start_xmit+0x357/0x543
    [  461.620659]  [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
    [  461.626440]  [<ffffffffa0379745>] ? br_parse_ip_options+0x19a/0x19a
    [bridge]
    [  461.633581]  [<ffffffff812722ff>] ? dev_queue_xmit+0x3af/0x459
    [  461.639577]  [<ffffffffa03747d2>] ? br_dev_queue_push_xmit+0x72/0x76
    [bridge]
    [  461.646887]  [<ffffffffa03791e3>] ? br_nf_post_routing+0x17d/0x18f
    [bridge]
    [  461.653997]  [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
    [  461.659473]  [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
    [  461.665485]  [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
    [  461.671234]  [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
    [  461.677299]  [<ffffffffa0379215>] ?
    nf_bridge_update_protocol+0x20/0x20 [bridge]
    [  461.684891]  [<ffffffffa03bb0e5>] ? nf_ct_zone+0xa/0x17 [nf_conntrack]
    [  461.691520]  [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
    [  461.697572]  [<ffffffffa0374812>] ? NF_HOOK.constprop.8+0x3c/0x56
    [bridge]
    [  461.704616]  [<ffffffffa0379031>] ?
    nf_bridge_push_encap_header+0x1c/0x26 [bridge]
    [  461.712329]  [<ffffffffa037929f>] ? br_nf_forward_finish+0x8a/0x95
    [bridge]
    [  461.719490]  [<ffffffffa037900a>] ?
    nf_bridge_pull_encap_header+0x1c/0x27 [bridge]
    [  461.727223]  [<ffffffffa0379974>] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge]
    [  461.734292]  [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
    [  461.739758]  [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
    [  461.746203]  [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
    [  461.751950]  [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
    [  461.758378]  [<ffffffffa037533a>] ? NF_HOOK.constprop.4+0x56/0x56
    [bridge]
    
    This is caused by bridge netfilter special dst_entry (fake_rtable), a
    special shared entry, where attaching an inetpeer makes no sense.
    
    Problem is present since commit 87c48fa (ipv6: make fragment
    identifications less predictable)
    
    Introduce DST_NOPEER dst flag and make sure ipv6_select_ident() and
    __ip_select_ident() fallback to the 'no peer attached' handling.
    
    Reported-by: Chris Boot <bootc@bootc.net>
    Tested-by: Chris Boot <bootc@bootc.net>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  13. @davem330

    mqprio: Avoid panic if no options are provided

    Thomas Graf authored davem330 committed
    Userspace may not provide TCA_OPTIONS, in fact tc currently does
    so not do so if no arguments are specified on the command line.
    Return EINVAL instead of panicing.
    
    Signed-off-by: Thomas Graf <tgraf@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  14. @davem330

    bridge: provide a mtu() method for fake_dst_ops

    Eric Dumazet authored davem330 committed
    Commit 618f9bc (net: Move mtu handling down to the protocol
    depended handlers) forgot the bridge netfilter case, adding a NULL
    dereference in ip_fragment().
    
    Reported-by: Chris Boot <bootc@bootc.net>
    CC: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Commits on Dec 22, 2011
  1. Merge branch 'for-linus' of git://neil.brown.name/md

    authored
    * 'for-linus' of git://neil.brown.name/md:
      md/bitmap: It is OK to clear bits during recovery.
      md: don't give up looking for spares on first failure-to-add
      md/raid5: ensure correct assessment of drives during degraded reshape.
      md/linear: fix hot-add of devices to linear arrays.
  2. @neilbrown

    md/bitmap: It is OK to clear bits during recovery.

    neilbrown authored
    commit d0a4bb4 introduced a
    regression which is annoying but fairly harmless.
    
    When writing to an array that is undergoing recovery (a spare
    in being integrated into the array), writing to the array will
    set bits in the bitmap, but they will not be cleared when the
    write completes.
    
    For bits covering areas that have not been recovered yet this is not a
    problem as the recovery will clear the bits.  However bits set in
    already-recovered region will stay set and never be cleared.
    This doesn't risk data integrity.  The only negatives are:
     - next time there is a crash, more resyncing than necessary will
       be done.
     - the bitmap doesn't look clean, which is confusing.
    
    While an array is recovering we don't want to update the
    'events_cleared' setting in the bitmap but we do still want to clear
    bits that have very recently been set - providing they were written to
    the recovering device.
    
    So split those two needs - which previously both depended on 'success'
    and always clear the bit of the write went to all devices.
    
    Signed-off-by: NeilBrown <neilb@suse.de>
  3. @neilbrown

    md: don't give up looking for spares on first failure-to-add

    neilbrown authored
    Before performing a recovery we try to remove any spares that
    might not be working, then add any that might have become relevant.
    
    Currently we abort on the first spare that cannot be added.
    This is a false optimisation.
    It is conceivable that - depending on rules in the personality - a
    subsequent spare might be accepted.
    Also the loop does other things like count the available spares and
    reset the 'recovery_offset' value.
    
    If we abort early these might not happen properly.
    
    So remove the early abort.
    
    In particular if you have an array what is undergoing recovery and
    which has extra spares, then the recovery may not restart after as
    reboot as the could of 'spares' might end up as zero.
    
    Reported-by: Anssi Hannula <anssi.hannula@iki.fi>
    Signed-off-by: NeilBrown <neilb@suse.de>
  4. @neilbrown

    md/raid5: ensure correct assessment of drives during degraded reshape.

    neilbrown authored
    While reshaping a degraded array (as when reshaping a RAID0 by first
    converting it to a degraded RAID4) we currently get confused about
    which devices are in_sync.  In most cases we get it right, but in the
    region that is being reshaped we need to treat non-failed devices as
    in-sync when we have the data but haven't actually written it out yet.
    
    Reported-by: Adam Kwolek <adam.kwolek@intel.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
  5. @neilbrown

    md/linear: fix hot-add of devices to linear arrays.

    neilbrown authored
    commit d70ed2e
    broke hot-add to a linear array.
    After that commit, metadata if not written to devices until they
    have been fully integrated into the array as determined by
    saved_raid_disk.  That patch arranged to clear that field after
    a recovery completed.
    
    However for linear arrays, there is no recovery - the integration is
    instantaneous.  So we need to explicitly clear the saved_raid_disk
    field.
    
    Signed-off-by: NeilBrown <neilb@suse.de>
  6. @davem330

    sparc64: Fix MSIQ HV call ordering in pci_sun4v_msiq_build_irq().

    davem330 authored
    This silently was working for many years and stopped working on
    Niagara-T3 machines.
    
    We need to set the MSIQ to VALID before we can set it's state to IDLE.
    
    On Niagara-T3, setting the state to IDLE first was causing HV_EINVAL
    errors.  The hypervisor documentation says, rather ambiguously, that
    the MSIQ must be "initialized" before one can set the state.
    
    I previously understood this to mean merely that a successful setconf()
    operation has been performed on the MSIQ, which we have done at this
    point.  But it seems to also mean that it has been set VALID too.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
  7. Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/gregkh/usb
    
    * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
      USB: Fix usb/isp1760 build on sparc
      usb: gadget: epautoconf: do not change number of streams
      usb: dwc3: core: fix cached revision on our structure
      usb: musb: fix reset issue with full speed device
  8. Merge branch 'upstream-linus' of git://github.com/jgarzik/libata-dev

    authored
    * 'upstream-linus' of git://github.com/jgarzik/libata-dev:
      pata_of_platform: Add missing CONFIG_OF_IRQ dependency.
  9. @davem330

    pata_of_platform: Add missing CONFIG_OF_IRQ dependency.

    davem330 authored Jeff Garzik committed
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
  10. ipv4: using prefetch requires including prefetch.h

    Stephen Rothwell authored committed
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Acked-by: David Miller <davem@davemloft.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  11. @srivatsabhat

    VFS: Fix race between CPU hotplug and lglocks

    srivatsabhat authored Al Viro committed
    Currently, the *_global_[un]lock_online() routines are not at all synchronized
    with CPU hotplug. Soft-lockups detected as a consequence of this race was
    reported earlier at https://lkml.org/lkml/2011/8/24/185. (Thanks to Cong Meng
    for finding out that the root-cause of this issue is the race condition
    between br_write_[un]lock() and CPU hotplug, which results in the lock states
    getting messed up).
    
    Fixing this race by just adding {get,put}_online_cpus() at appropriate places
    in *_global_[un]lock_online() is not a good option, because, then suddenly
    br_write_[un]lock() would become blocking, whereas they have been kept as
    non-blocking all this time, and we would want to keep them that way.
    
    So, overall, we want to ensure 3 things:
    1. br_write_lock() and br_write_unlock() must remain as non-blocking.
    2. The corresponding lock and unlock of the per-cpu spinlocks must not happen
       for different sets of CPUs.
    3. Either prevent any new CPU online operation in between this lock-unlock, or
       ensure that the newly onlined CPU does not proceed with its corresponding
       per-cpu spinlock unlocked.
    
    To achieve all this:
    (a) We introduce a new spinlock that is taken by the *_global_lock_online()
        routine and released by the *_global_unlock_online() routine.
    (b) We register a callback for CPU hotplug notifications, and this callback
        takes the same spinlock as above.
    (c) We maintain a bitmap which is close to the cpu_online_mask, and once it is
        initialized in the lock_init() code, all future updates to it are done in
        the callback, under the above spinlock.
    (d) The above bitmap is used (instead of cpu_online_mask) while locking and
        unlocking the per-cpu locks.
    
    The callback takes the spinlock upon the CPU_UP_PREPARE event. So, if the
    br_write_lock-unlock sequence is in progress, the callback keeps spinning,
    thus preventing the CPU online operation till the lock-unlock sequence is
    complete. This takes care of requirement (3).
    
    The bitmap that we maintain remains unmodified throughout the lock-unlock
    sequence, since all updates to it are managed by the callback, which takes
    the same spinlock as the one taken by the lock code and released only by the
    unlock routine. Combining this with (d) above, satisfies requirement (2).
    
    Overall, since we use a spinlock (mentioned in (a)) to prevent CPU hotplug
    operations from racing with br_write_lock-unlock, requirement (1) is also
    taken care of.
    
    By the way, it is to be noted that a CPU offline operation can actually run
    in parallel with our lock-unlock sequence, because our callback doesn't react
    to notifications earlier than CPU_DEAD (in order to maintain our bitmap
    properly). And this means, since we use our own bitmap (which is stale, on
    purpose) during the lock-unlock sequence, we could end up unlocking the
    per-cpu lock of an offline CPU (because we had locked it earlier, when the
    CPU was online), in order to satisfy requirement (2). But this is harmless,
    though it looks a bit awkward.
    
    Debugged-by: Cong Meng <mc@linux.vnet.ibm.com>
    Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: stable@vger.kernel.org
  12. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    authored
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      net: Add a flow_cache_flush_deferred function
      ipv4: reintroduce route cache garbage collector
      net: have ipconfig not wait if no dev is available
      sctp: Do not account for sizeof(struct sk_buff) in estimated rwnd
      asix: new device id
      davinci-cpdma: fix locking issue in cpdma_chan_stop
      sctp: fix incorrect overflow check on autoclose
      r8169: fix Config2 MSIEnable bit setting.
      llc: llc_cmsg_rcv was getting called after sk_eat_skb.
      net: bpf_jit: fix an off-one bug in x86_64 cond jump target
      iwlwifi: update SCD BC table for all SCD queues
      Revert "Bluetooth: Revert: Fix L2CAP connection establishment"
      Bluetooth: Clear RFCOMM session timer when disconnecting last channel
      Bluetooth: Prevent uninitialized data access in L2CAP configuration
      iwlwifi: allow to switch to HT40 if not associated
      iwlwifi: tx_sync only on PAN context
      mwifiex: avoid double list_del in command cancel path
      ath9k: fix max phy rate at rate control init
      nfc: signedness bug in __nci_request()
      iwlwifi: do not set the sequence control bit is not needed
  13. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/tiwai/sound
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: atmel/ac97c: using software reset instead hardware reset if not available
  14. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/sameo/mfd-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
      mfd: Include linux/io.h to jz4740-adc
      mfd: Use request_threaded_irq for twl4030-irq instead of irq_set_chained_handler
      mfd: Base interrupt for twl4030-irq must be one-shot
      mfd: Handle tps65910 clear-mask correctly
      mfd: add #ifdef CONFIG_DEBUG_FS guard for ab8500_debug_resources
      mfd: Fix twl-core oops while calling twl_i2c_* for unbound driver
      mfd: include linux/module.h for ab5500-debugfs
      mfd: Update wm8994 active device checks for WM1811
      mfd: Set tps6586x bits if new value is different from the old one
      mfd: Set da903x bits if new value is different from the old one
      mfd: Set adp5520 bits if new value is different from the old one
      mfd: Add missed free_irq in da903x_remove
  15. @kleikamp

    vfs: __read_cache_page should use gfp argument rather than GFP_KERNEL

    kleikamp authored committed
    lockdep reports a deadlock in jfs because a special inode's rw semaphore
    is taken recursively.  The mapping's gfp mask is GFP_NOFS, but is not
    used when __read_cache_page() calls add_to_page_cache_lru().
    
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Acked-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Dec 21, 2011
  1. @gregkh

    Merge branch 'for-greg' of git://git.kernel.org/pub/scm/linux/kernel/…

    gregkh authored
    …git/balbi/usb into usb-linus
    
    * 'for-greg' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb:
      usb: gadget: epautoconf: do not change number of streams
      usb: dwc3: core: fix cached revision on our structure
      usb: musb: fix reset issue with full speed device
  2. @davem330 @gregkh

    USB: Fix usb/isp1760 build on sparc

    davem330 authored gregkh committed
    This commit:
    
    commit 8f5d621
    Author: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
    Date:   Mon Oct 10 18:06:54 2011 +0200
    
        usb/isp1760: Let OF bindings depend on general CONFIG_OF instead of PPC_OF .
    
        To be able to use the driver on other OF-aware architectures, too.
        And add necessary OF related #includes to fix compilation error.
    
        Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
        Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    
    enabled the build on all CONFIG_OF architectures, but it cannot do
    this.
    
    This driver depends upon CONFIG_OF_IRQ but not all CONFIG_OF platforms
    support that infrastructure, in particular Sparc does not so the
    build fails.
    
    Please push a patch like the following to Linus so that this code only
    gets built where it actually should.
    
    --------------------
    usb/isp1760: Add missing CONFIG_OF_IRQ dependency on OF code.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  3. @davem330

    net: Add a flow_cache_flush_deferred function

    Steffen Klassert authored davem330 committed
    flow_cach_flush() might sleep but can be called from
    atomic context via the xfrm garbage collector. So add
    a flow_cache_flush_deferred() function and use this if
    the xfrm garbage colector is invoked from within the
    packet path.
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Acked-by: Timo Teräs <timo.teras@iki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Something went wrong with that request. Please try again.