04 Sep, 2013

1 commit


31 Aug, 2013

1 commit


30 Aug, 2013

4 commits

  • __GFP_ZERO is an uncommon flag and perhaps is better
    not used. static inline dma_zalloc_coherent exists
    so convert the uses of dma_alloc_coherent with __GFP_ZERO
    to the more common kernel style with zalloc.

    Remove memset from the static inline dma_zalloc_coherent
    and add just one use of __GFP_ZERO instead.

    Trivially reduces the size of the existing uses of
    dma_zalloc_coherent.

    Realign arguments as appropriate.

    Signed-off-by: Joe Perches
    Acked-by: Neil Horman
    Acked-by: Jesse Brandeburg
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Joe Perches
     
  • The new macro netdev_for_each_upper_dev_rcu(dev, upper, iter) iterates
    through the dev->upper_dev_list starting from the first element, using
    the netdev_upper_get_next_dev_rcu(dev, &iter).

    Must be called under RCU read lock.

    CC: "David S. Miller"
    CC: Eric Dumazet
    CC: Jiri Pirko
    CC: Alexander Duyck
    CC: Cong Wang
    Signed-off-by: Veaceslav Falico
    Signed-off-by: David S. Miller

    Veaceslav Falico
     
  • This patch adds lower_dev_list list_head to net_device, which is the same
    as upper_dev_list, only for lower devices, and begins to use it in the same
    way as the upper list.

    It also changes the way the whole adjacent device lists work - now they
    contain *all* of upper/lower devices, not only the first level. The first
    level devices are distinguished by the bool neighbour field in
    netdev_adjacent, also added by this patch.

    There are cases when a device can be added several times to the adjacent
    list, the simplest would be:

    /---- eth0.10 ---\
    eth0- --- bond0
    \---- eth0.20 ---/

    where both bond0 and eth0 'see' each other in the adjacent lists two times.
    To avoid duplication of netdev_adjacent structures ref_nr is being kept as
    the number of times the device was added to the list.

    The 'full view' is achieved by adding, on link creation, all of the
    upper_dev's upper_dev_list devices as upper devices to all of the
    lower_dev's lower_dev_list devices (and to the lower_dev itself), and vice
    versa. On unlink they are removed using the same logic.

    I've tested it with thousands vlans/bonds/bridges, everything works ok and
    no observable lags even on a huge number of interfaces.

    Memory footprint for 128 devices interconnected with each other via both
    upper and lower (which is impossible, but for the comparison) lists would be:

    128*128*2*sizeof(netdev_adjacent) = 1.5MB

    but in the real world we usualy have at most several devices with slaves
    and a lot of vlans, so the footprint will be much lower.

    CC: "David S. Miller"
    CC: Eric Dumazet
    CC: Jiri Pirko
    CC: Alexander Duyck
    CC: Cong Wang
    Signed-off-by: Veaceslav Falico
    Signed-off-by: David S. Miller

    Veaceslav Falico
     
  • This patch implements RFC6980: Drop fragmented ndisc packets by
    default. If a fragmented ndisc packet is received the user is informed
    that it is possible to disable the check.

    Cc: Fernando Gont
    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     

28 Aug, 2013

1 commit

  • Split out sequence number adjustments from NAT and move them to the conntrack
    core to make them usable for SYN proxying. The sequence number adjustment
    information is moved to a seperate extend. The extend is added to new
    conntracks when a NAT mapping is set up for a connection using a helper.

    As a side effect, this saves 24 bytes per connection with NAT in the common
    case that a connection does not have a helper assigned.

    Signed-off-by: Patrick McHardy
    Tested-by: Martin Topholm
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: Pablo Neira Ayuso

    Patrick McHardy
     

27 Aug, 2013

1 commit


24 Aug, 2013

1 commit

  • Merge networking fixes from David Miller:

    1) Revert Johannes Berg's genetlink locking fix, because it causes
    regressions.

    Johannes and Pravin Shelar are working on fixing things properly.

    2) Do not drop ipv6 ICMP messages without a redirected header option,
    they are legal. From Duan Jiong.

    3) Missing error return propagation in probing of via-ircc driver.
    From Alexey Khoroshilov.

    4) Do not clear out broadcast/multicast/unicast/WOL bits in r8169 when
    initializing, from Peter Wu.

    5) realtek phy driver programs wrong interrupt status bit, from
    Giuseppe CAVALLARO.

    6) Fix statistics regression in AF_PACKET code, from Willem de Bruijn.

    7) Bridge code uses wrong bitmap length, from Toshiaki Makita.

    8) SFC driver uses wrong indexes to look up MAC filters, from Ben
    Hutchings.

    9) Don't pass stack buffers into usb control operations in hso driver,
    from Daniel Gimpelevich.

    10) Multiple ipv6 fragmentation headers in one packet is illegal and
    such packets should be dropped, from Hannes Frederic Sowa.

    11) When TCP sockets are "repaired" as part of checkpoint/restart, the
    timestamp field of SKBs need to be refreshed otherwise RTOs can be
    wildly off. From Andrey Vagin.

    12) Fix memcpy args (uses 'address of pointer' instead of 'pointer') in
    hostp driver. From Dan Carpenter.

    13) nl80211hdr_put() doesn't return an ERR_PTR, but some code believes
    it does. From Dan Carpenter.

    14) Fix regression in wireless SME disconnects, from Johannes Berg.

    15) Don't use a stack buffer for DMA in zd1201 USB wireless driver, from
    Jussi Kivilinna.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (33 commits)
    ipv4: expose IPV4_DEVCONF
    ipv6: handle Redirect ICMP Message with no Redirected Header option
    be2net: fix disabling TX in be_close()
    Revert "genetlink: fix family dump race"
    hso: Fix stack corruption on some architectures
    hso: Earlier catch of error condition
    sfc: Fix lookup of default RX MAC filters when steered using ethtool
    bridge: Use the correct bit length for bitmap functions in the VLAN code
    packet: restore packet statistics tp_packets to include drops
    net: phy: rtl8211: fix interrupt on status link change
    r8169: remember WOL preferences on driver load
    via-ircc: don't return zero if via_ircc_open() failed
    macvtap: Ignore tap features when VNET_HDR is off
    macvtap: Correctly set tap features when IFF_VNET_HDR is disabled.
    macvtap: simplify usage of tap_features
    tcp: set timestamps for restored skb-s
    bnx2x: set VF DMAE when first function has 0 supported VFs
    bnx2x: Protect against VFs' ndos when SR-IOV is disabled
    bnx2x: prevent VF benign attentions
    bnx2x: Consider DCBX remote error
    ...

    Linus Torvalds
     

23 Aug, 2013

4 commits

  • make the Freescale ethernet driver get, prepare and enable the FEC clock
    during probe(); disable and unprepare the clock upon remove(), put is
    done by the devm approach; hold a reference to the clock over the period
    of use.

    clock lookup is non-fatal as not all platforms provide clock specs in
    their device tree; failure to enable specified clocks is fatal.

    Signed-off-by: Gerhard Sittig
    Signed-off-by: Anatolij Gustschin
    Signed-off-by: David S. Miller

    Gerhard Sittig
     
  • IP sends device configuration (see inet_fill_link_af) as an array
    in the netlink information, but the indices in that array are not
    exposed to userspace through any current santized header file.

    It was available back in 2.6.32 (in /usr/include/linux/sysctl.h)
    but was broken by:
    commit 02291680ffba92e5b5865bc0c5e7d1f3056b80ec
    Author: Eric W. Biederman
    Date: Sun Feb 14 03:25:51 2010 +0000

    net ipv4: Decouple ipv4 interface parameters from binary sysctl numbers

    Eric was solving the sysctl problem but then the indices were re-exposed
    by a later addition of devconf support for IPV4

    commit 9f0f7272ac9506f4c8c05cc597b7e376b0b9f3e4
    Author: Thomas Graf
    Date: Tue Nov 16 04:32:48 2010 +0000

    ipv4: AF_INET link address family

    Putting them in /usr/include/linux/ip.h seemed the logical match
    for the DEVCONF_ definitions for IPV6 in /usr/include/linux/ip6.h

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • This is the updated version of df54d6fa5427 ("x86 get_unmapped_area():
    use proper mmap base for bottom-up direction") that only randomizes the
    mmap base address once.

    Signed-off-by: Radu Caragea
    Reported-and-tested-by: Jeff Shorey
    Cc: Andrew Morton
    Cc: Michel Lespinasse
    Cc: Oleg Nesterov
    Cc: Rik van Riel
    Cc: Ingo Molnar
    Cc: Adrian Sendroiu
    Cc: Greg KH
    Cc: Kamal Mostafa
    Signed-off-by: Linus Torvalds

    Radu Caragea
     
  • This reverts commit df54d6fa54275ce59660453e29d1228c2b45a826.

    The commit isn't necessarily wrong, but because it recalculates the
    random mmap_base every time, it seems to confuse user memory allocators
    that expect contiguous mmap allocations even when the mmap address isn't
    specified.

    In particular, the MATLAB Java runtime seems to be unhappy. See

    https://bugzilla.kernel.org/show_bug.cgi?id=60774

    So we'll want to apply the random offset only once, and Radu has a patch
    for that. Revert this older commit in order to apply the other one.

    Reported-by: Jeff Shorey
    Cc: Radu Caragea
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

21 Aug, 2013

5 commits

  • Flags is not used by boards, so remove this field from the driver
    platform_data.

    Signed-off-by: Alexander Shiyan
    Signed-off-by: Marc Kleine-Budde

    Alexander Shiyan
     
  • This patch replaces power callbacks to the regulator API. To improve
    the readability of the code, helper for the regulator enable/disable
    was added.

    Acked-by: Haojian Zhuang
    Signed-off-by: Alexander Shiyan
    Signed-off-by: Marc Kleine-Budde

    Alexander Shiyan
     
  • CPSW driver no longer supports platform register as all the SoCs which has CPSW
    are supporting DT only booting, so moving cpsw.h header file from platform
    include to drivers/net/ethernet/ti

    Signed-off-by: Mugunthan V N
    Signed-off-by: David S. Miller

    Mugunthan V N
     
  • Now that the 'register_type' field of the 'sh_eth' driver's platform data is not
    used by the driver anymore, it's time to remove it and its initializers from
    the SH platform code. Also move *enum* declaring values for this field from
    to the local driver's header file as they're only needed
    by the driver itself now...

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     
  • Conflicts:
    net/netfilter/nf_conntrack_proto_tcp.c

    The conflict had to do with overlapping changes dealing with
    fixing the use of an "s32" to hold the value returned by
    NAT_OFFSET().

    Pablo Neira Ayuso says:

    ====================
    The following batch contains Netfilter/IPVS updates for your net-next tree.
    More specifically, they are:

    * Trivial typo fix in xt_addrtype, from Phil Oester.

    * Remove net_ratelimit in the conntrack logging for consistency with other
    logging subsystem, from Patrick McHardy.

    * Remove unneeded includes from the recently added xt_connlabel support, from
    Florian Westphal.

    * Allow to update conntracks via nfqueue, don't need NFQA_CFG_F_CONNTRACK for
    this, from Florian Westphal.

    * Remove tproxy core, now that we have socket early demux, from Florian
    Westphal.

    * A couple of patches to refactor conntrack event reporting to save a good
    bunch of lines, from Florian Westphal.

    * Fix missing locking in NAT sequence adjustment, it did not manifested in
    any known bug so far, from Patrick McHardy.

    * Change sequence number adjustment variable to 32 bits, to delay the
    possible early overflow in long standing connections, also from Patrick.

    * Comestic cleanups for IPVS, from Dragos Foianu.

    * Fix possible null dereference in IPVS in the SH scheduler, from Daniel
    Borkmann.

    * Allow to attach conntrack expectations via nfqueue. Before this patch, you
    had to use ctnetlink instead, thus, we save the conntrack lookup.

    * Export xt_rpfilter and xt_HMARK header files, from Nicolas Dichtel.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

20 Aug, 2013

1 commit

  • It is not allowed for an ipv6 packet to contain multiple fragmentation
    headers. So discard packets which were already reassembled by
    fragmentation logic and send back a parameter problem icmp.

    The updates for RFC 6980 will come in later, I have to do a bit more
    research here.

    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     

17 Aug, 2013

2 commits

  • David S. Miller
     
  • Pull networking fixes from David Miller:

    1) Fix SKB leak in 8139cp, from Dave Jones.

    2) Fix use of *_PAGES interfaces with mlx5 firmware, from Moshe Lazar.

    3) RCU conversion of macvtap introduced two races, fixes by Eric
    Dumazet

    4) Synchronize statistic flows in bnx2x driver to prevent corruption,
    from Dmitry Kravkov

    5) Undo optimization in IP tunneling, we were using the inner IP header
    in some cases to inherit the IP ID, but that isn't correct in some
    circumstances. From Pravin B Shelar

    6) Use correct struct size when parsing netlink attributes in
    rtnl_bridge_getlink(). From Asbjoern Sloth Toennesen

    7) Length verifications in tun_get_user() are bogus, from Weiping Pan
    and Dan Carpenter

    8) Fix bad merge resolution during 3.11 networking development in
    openvswitch, albeit a harmless one which added some unreachable
    code. From Jesse Gross

    9) Wrong size used in flexible array allocation in openvswitch, from
    Pravin B Shelar

    10) Clear out firmware capability flags the be2net driver isn't ready to
    handle yet, from Sarveshwar Bandi

    11) Revert DMA mapping error checking addition to cxgb3 driver, it's
    buggy. From Alexey Kardashevskiy

    12) Fix regression in packet scheduler rate limiting when working with a
    link layer of ATM. From Jesper Dangaard Brouer

    13) Fix several errors in TCP Cubic congestion control, in particular
    overflow errors in timestamp calculations. From Eric Dumazet and
    Van Jacobson

    14) In ipv6 routing lookups, we need to backtrack if subtree traversal
    don't result in a match. From Hannes Frederic Sowa

    15) ipgre_header() returns incorrect packet offset. Fix from Timo Teräs

    16) Get "low latency" out of the new MIB counter names. From Eliezer
    Tamir

    17) State check in ndo_dflt_fdb_del() is inverted, from Sridhar
    Samudrala

    18) Handle TCP Fast Open properly in netfilter conntrack, from Yuchung
    Cheng

    19) Wrong memcpy length in pcan_usb driver, from Stephane Grosjean

    20) Fix dealock in TIPC, from Wang Weidong and Ding Tianhong

    21) call_rcu() call to destroy SCTP transport is done too early and
    might result in an oops. From Daniel Borkmann

    22) Fix races in genetlink family dumps, from Johannes Berg

    23) Flags passed into macvlan by the user need to be validated properly,
    from Michael S Tsirkin

    24) Fix skge build on 32-bit, from Stephen Hemminger

    25) Handle malformed TCP headers properly in xt_TCPMSS, from Pablo Neira
    Ayuso

    26) Fix handling of stacked vlans in vlan_dev_real_dev(), from Nikolay
    Aleksandrov

    27) Eliminate MTU calculation overflows in esp{4,6}, from Daniel
    Borkmann

    28) neigh_parms need to be setup before calling the ->ndo_neigh_setup()
    method. From Veaceslav Falico

    29) Kill out-of-bounds prefetch in fib_trie, from Eric Dumazet

    30) Don't dereference MLD query message if the length isn't value in the
    bridge multicast code, from Linus Lüssing

    31) Fix VXLAN IGMP join regression due to an inverted check, from Cong
    Wang

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (70 commits)
    net/mlx5_core: Support MANAGE_PAGES and QUERY_PAGES firmware command changes
    tun: signedness bug in tun_get_user()
    qlcnic: Fix diagnostic interrupt test for 83xx adapters
    qlcnic: Fix beacon state return status handling
    qlcnic: Fix set driver version command
    net: tg3: fix NULL pointer dereference in tg3_io_error_detected and tg3_io_slot_reset
    net_sched: restore "linklayer atm" handling
    drivers/net/ethernet/via/via-velocity.c: update napi implementation
    Revert "cxgb3: Check and handle the dma mapping errors"
    be2net: Clear any capability flags that driver is not interested in.
    openvswitch: Reset tunnel key between input and output.
    openvswitch: Use correct type while allocating flex array.
    openvswitch: Fix bad merge resolution.
    tun: compare with 0 instead of total_len
    rtnetlink: rtnl_bridge_getlink: Call nlmsg_find_attr() with ifinfomsg header
    ethernet/arc/arc_emac - fix NAPI "work > weight" warning
    ip_tunnel: Do not use inner ip-header-id for tunnel ip-header-id.
    bnx2x: prevent crash in shutdown flow with CNIC
    bnx2x: fix PTE write access error
    bnx2x: fix memory leak in VF
    ...

    Linus Torvalds
     

16 Aug, 2013

1 commit

  • In the previous QUERY_PAGES command version we used one command to get the
    required amount of boot, init and post init pages. The new version uses the
    op_mod field to specify whether the query is for the required amount of boot,
    init or post init pages. In addition the output field size for the required
    amount of pages increased from 16 to 32 bits.

    In MANAGE_PAGES command the input_num_entries and output_num_entries fields
    sizes changed from 16 to 32 bits and the PAS tables offset changed to 0x10.

    In the pages request event the num_pages field also changed to 32 bits.

    In the HCA-capabilities-layout the size and location of max_qp_mcg field has
    been changed to support 24 bits.

    This patch isn't compatible with firmware versions < 5; however, it turns out that the
    first GA firmware we will publish will not support previous versions so this should be OK.

    Signed-off-by: Moshe Lazer
    Signed-off-by: Eli Cohen
    Signed-off-by: David S. Miller

    Moshe Lazer
     

15 Aug, 2013

1 commit

  • Merge a bunch of fixes from Andrew Morton.

    * emailed patches from Andrew Morton :
    fs/proc/task_mmu.c: fix buffer overflow in add_page_map()
    arch: *: Kconfig: add "kernel/Kconfig.freezer" to "arch/*/Kconfig"
    ocfs2: fix null pointer dereference in ocfs2_dir_foreach_blk_id()
    x86 get_unmapped_area(): use proper mmap base for bottom-up direction
    ocfs2: fix NULL pointer dereference in ocfs2_duplicate_clusters_by_page
    ocfs2: Revert 40bd62e to avoid regression in extended allocation
    drivers/rtc/rtc-stmp3xxx.c: provide timeout for potentially endless loop polling a HW bit
    hugetlb: fix lockdep splat caused by pmd sharing
    aoe: adjust ref of head for compound page tails
    microblaze: fix clone syscall
    mm: save soft-dirty bits on file pages
    mm: save soft-dirty bits on swapped pages
    memcg: don't initialize kmem-cache destroying work for root caches

    Linus Torvalds
     

14 Aug, 2013

7 commits

  • This file contains the API for the target "HMARK", hence it should be exported
    to userland.

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: Pablo Neira Ayuso

    Nicolas Dichtel
     
  • This file contains the API for the match "rpfilter", hence it should be exported
    to userland.

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: Pablo Neira Ayuso

    Nicolas Dichtel
     
  • When the stack is set to unlimited, the bottomup direction is used for
    mmap-ings but the mmap_base is not used and thus effectively renders
    ASLR for mmapings along with PIE useless.

    Cc: Michel Lespinasse
    Cc: Oleg Nesterov
    Reviewed-by: Rik van Riel
    Acked-by: Ingo Molnar
    Cc: Adrian Sendroiu
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Radu Caragea
     
  • Fix inadvertent breakage in the clone syscall ABI for Microblaze that
    was introduced in commit f3268edbe6fe ("microblaze: switch to generic
    fork/vfork/clone").

    The Microblaze syscall ABI for clone takes the parent tid address in the
    4th argument; the third argument slot is used for the stack size. The
    incorrectly-used CLONE_BACKWARDS type assigned parent tid to the 3rd
    slot.

    This commit restores the original ABI so that existing userspace libc
    code will work correctly.

    All kernel versions from v3.8-rc1 were affected.

    Signed-off-by: Michal Simek
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Simek
     
  • Andy Lutomirski reported that if a page with _PAGE_SOFT_DIRTY bit set
    get swapped out, the bit is getting lost and no longer available when
    pte read back.

    To resolve this we introduce _PTE_SWP_SOFT_DIRTY bit which is saved in
    pte entry for the page being swapped out. When such page is to be read
    back from a swap cache we check for bit presence and if it's there we
    clear it and restore the former _PAGE_SOFT_DIRTY bit back.

    One of the problem was to find a place in pte entry where we can save
    the _PTE_SWP_SOFT_DIRTY bit while page is in swap. The _PAGE_PSE was
    chosen for that, it doesn't intersect with swap entry format stored in
    pte.

    Reported-by: Andy Lutomirski
    Signed-off-by: Cyrill Gorcunov
    Acked-by: Pavel Emelyanov
    Cc: Matt Mackall
    Cc: Xiao Guangrong
    Cc: Marcelo Tosatti
    Cc: KOSAKI Motohiro
    Cc: Stephen Rothwell
    Cc: Peter Zijlstra
    Cc: "Aneesh Kumar K.V"
    Reviewed-by: Minchan Kim
    Reviewed-by: Wanpeng Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyrill Gorcunov
     
  • Commit cab70040dfd95ee32144f02fade64f0cb94f31a0 ("net: igmp:
    Reduce Unsolicited report interval to 1s when using IGMPv3") and
    2690048c01f32bf45d1c1e1ab3079bc10ad2aea7 ("net: igmp: Allow user-space
    configuration of igmp unsolicited report interval") by William Manley made
    igmp unsolicited report intervals configurable per interface and corrected
    the interval of unsolicited igmpv3 report messages resendings to 1s.

    Same needs to be done for IPv6:

    MLDv1 (RFC2710 7.10.): 10 seconds
    MLDv2 (RFC3810 9.11.): 1 second

    Both intervals are configurable via new procfs knobs
    mldv1_unsolicited_report_interval and mldv2_unsolicited_report_interval.

    (also added .force_mld_version to ipv6_devconf_dflt to bring structs in
    line without semantic changes)

    v2:
    a) Joined documentation update for IPv4 and IPv6 MLD/IGMP
    unsolicited_report_interval procfs knobs.
    b) incorporate stylistic feedback from William Manley

    v3:
    a) add new DEVCONF_* values to the end of the enum (thanks to David
    Miller)

    Cc: Cong Wang
    Cc: William Manley
    Cc: Benjamin LaHaise
    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     
  • Pull scheduler fixes from Ingo Molnar:
    "Docbook fixes that make 99% of the diffstat, plus a oneliner fix"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Ensure update_cfs_shares() is called for parents of continuously-running tasks
    sched: Fix some kernel-doc warnings

    Linus Torvalds
     

13 Aug, 2013

3 commits

  • This is only theoretical, but after try_to_wake_up(p) was changed
    to check p->state under p->pi_lock the code like

    __set_current_state(TASK_INTERRUPTIBLE);
    schedule();

    can miss a signal. This is the special case of wait-for-condition,
    it relies on try_to_wake_up/schedule interaction and thus it does
    not need mb() between __set_current_state() and if(signal_pending).

    However, this __set_current_state() can move into the critical
    section protected by rq->lock, now that try_to_wake_up() takes
    another lock we need to ensure that it can't be reordered with
    "if (signal_pending(current))" check inside that section.

    The patch is actually one-liner, it simply adds smp_wmb() before
    spin_lock_irq(rq->lock). This is what try_to_wake_up() already
    does by the same reason.

    We turn this wmb() into the new helper, smp_mb__before_spinlock(),
    for better documentation and to allow the architectures to change
    the default implementation.

    While at it, kill smp_mb__after_lock(), it has no callers.

    Perhaps we can also add smp_mb__before/after_spinunlock() for
    prepare_to_wait().

    Signed-off-by: Oleg Nesterov
    Acked-by: Peter Zijlstra
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • This patch adds the capability to attach expectations via nfnetlink_queue.
    This is required by conntrack helpers that trigger expectations based on
    the first packet seen like the TFTP and the DHCPv6 user-space helpers.

    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     
  • …wireless-next into for-davem

    Conflicts:
    drivers/net/ethernet/broadcom/Kconfig

    John W. Linville
     

11 Aug, 2013

2 commits

  • Pull NFS client bugfixes from Trond Myklebust:

    - Stable patch for lockd to fix Oopses due to inappropriate calls to
    utsname()->nodename

    - Stable patches for sunrpc to fix Oopses on shutdown when using
    AF_LOCAL sockets with rpcbind

    - Fix memory leak and error checking issues in nfs4_proc_lookup_mountpoint

    - Fix a regression with the sync mount option failing to work for nfs4
    mounts

    - Fix a writeback performance issue when doing cache invalidation

    - Remove an incorrect call to nfs_setsecurity in nfs_fhget

    * tag 'nfs-for-3.11-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFSv4: Fix up nfs4_proc_lookup_mountpoint
    NFS: Remove unnecessary call to nfs_setsecurity in nfs_fhget()
    NFSv4: Fix the sync mount option for nfs4 mounts
    NFS: Fix writeback performance issue on cache invalidation
    SUNRPC: If the rpcbind channel is disconnected, fail the call to unregister
    SUNRPC: Don't auto-disconnect from the local rpcbind socket
    LOCKD: Don't call utsname()->nodename from nlmclnt_setlockargs

    Linus Torvalds
     
  • Pull staging driver fixes from Greg KH:
    "Here are 3 small fixes for staging/IIO drivers for 3.11-rc5. Nothing
    huge, two IIO driver fixes, and a zcache fix. All of these have been
    in linux-next for a while"

    * tag 'staging-3.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: zcache: fix "zcache=" kernel parameter
    iio: ti_am335x_adc: Fix wrong samples received on 1st read
    iio:trigger: Fix use_count race condition

    Linus Torvalds
     

10 Aug, 2013

3 commits

  • John W. Linville
     
  • Adds the new procfs knobs:

    /proc/sys/net/ipv4/conf/*/igmpv2_unsolicited_report_interval
    /proc/sys/net/ipv4/conf/*/igmpv3_unsolicited_report_interval

    Which will allow userspace configuration of the IGMP unsolicited report
    interval (see below) in milliseconds. The defaults are 10000ms for IGMPv2
    and 1000ms for IGMPv3 in accordance with RFC2236 and RFC3376.

    Background:

    If an IGMP join packet is lost you will not receive data sent to the
    multicast group so if no data arrives from that multicast group in a
    period of time after the IGMP join a second IGMP join will be sent. The
    delay between joins is the "IGMP Unsolicited Report Interval".

    Prior to this patch this value was hard coded in the kernel to 10s for
    IGMPv2 and 1s for IGMPv3. 10s is unsuitable for some use-cases, such as
    IPTV as it can cause channel change to be slow in the presence of packet
    loss.

    This patch allows the value to be overridden from userspace for both
    IGMPv2 and IGMPv3 such that it can be tuned accoding to the network.

    Tested with Wireshark and a simple program to join a (non-existent)
    multicast group. The distribution of timings for the second join differ
    based upon setting the procfs knobs.

    igmpvX_unsolicited_report_interval is intended to follow the pattern
    established by force_igmp_version, and while a procfs entry has been added
    a corresponding sysctl knob has not as it is my understanding that sysctl
    is deprecated[1].

    [1]: http://lwn.net/Articles/247243/

    Signed-off-by: William Manley
    Acked-by: Hannes Frederic Sowa
    Acked-by: Benjamin LaHaise
    Signed-off-by: David S. Miller

    William Manley
     
  • The procfs knob /proc/sys/net/ipv4/conf/*/force_igmp_version allows the
    IGMP protocol version to use to be explicitly set. As a side effect this
    caused the routing cache to be flushed as it was declared as a
    DEVINET_SYSCTL_FLUSHING_ENTRY. Flushing is unnecessary and this patch
    makes it so flushing does not occur.

    Requested by Hannes Frederic Sowa as he was reviewing other patches
    adding procfs entries.

    Suggested-by: Hannes Frederic Sowa
    Signed-off-by: William Manley
    Acked-by: Hannes Frederic Sowa
    Acked-by: Benjamin LaHaise
    Signed-off-by: David S. Miller

    William Manley
     

09 Aug, 2013

2 commits