20 Oct, 2014

2 commits

  • Pull networking fixes from David Miller:
    "A quick batch of bug fixes:

    1) Fix build with IPV6 disabled, from Eric Dumazet.

    2) Several more cases of caching SKB data pointers across calls to
    pskb_may_pull(), thus referencing potentially free'd memory. From
    Li RongQing.

    3) DSA phy code tests operation presence improperly, instead of going:

    if (x->ops->foo)
    r = x->ops->foo(args);

    it was going:

    if (x->ops->foo(args))
    r = x->ops->foo(args);

    Fix from Andew Lunn"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    Net: DSA: Fix checking for get_phy_flags function
    ipv6: fix a potential use after free in sit.c
    ipv6: fix a potential use after free in ip6_offload.c
    ipv4: fix a potential use after free in gre_offload.c
    tcp: fix build error if IPv6 is not enabled

    Linus Torvalds
     
  • The check for the presence or not of the optional switch function
    get_phy_flags() called the function, rather than checked to see if it
    is a NULL pointer. This causes a derefernce of a NULL pointer on all
    switch chips except the sf2, the only switch to implement this call.

    Signed-off-by: Andrew Lunn
    Fixes: 6819563e646a ("net: dsa: allow switch drivers to specify phy_device::dev_flags")
    Cc: Florian Fainelli
    Signed-off-by: David S. Miller

    Andrew Lunn
     

19 Oct, 2014

5 commits

  • Pull virtio updates from Rusty Russell:
    "One cc: stable commit, the rest are a series of minor cleanups which
    have been sitting in MST's tree during my vacation. I changed a
    function name and made one trivial change, then they spent two days in
    linux-next"

    * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (25 commits)
    virtio-rng: refactor probe error handling
    virtio_scsi: drop scan callback
    virtio_balloon: enable VQs early on restore
    virtio_scsi: fix race on device removal
    virito_scsi: use freezable WQ for events
    virtio_net: enable VQs early on restore
    virtio_console: enable VQs early on restore
    virtio_scsi: enable VQs early on restore
    virtio_blk: enable VQs early on restore
    virtio_scsi: move kick event out from virtscsi_init
    virtio_net: fix use after free on allocation failure
    9p/trans_virtio: enable VQs early
    virtio_console: enable VQs early
    virtio_blk: enable VQs early
    virtio_net: enable VQs early
    virtio: add API to enable VQs early
    virtio_net: minor cleanup
    virtio-net: drop config_mutex
    virtio_net: drop config_enable
    virtio-blk: drop config_mutex
    ...

    Linus Torvalds
     
  • pskb_may_pull() maybe change skb->data and make iph pointer oboslete,
    fix it by geting ip header length directly.

    Fixes: ca15a078 (sit: generate icmpv6 error when receiving icmpv4 error)
    Cc: Oussama Ghorbel
    Signed-off-by: Li RongQing
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Li RongQing
     
  • pskb_may_pull() maybe change skb->data and make opth pointer oboslete,
    so set the opth again

    Signed-off-by: Li RongQing
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Li RongQing
     
  • pskb_may_pull() may change skb->data and make greh pointer oboslete;
    so need to reassign greh;
    but since first calling pskb_may_pull already ensured that skb->data
    has enough space for greh, so move the reference of greh before second
    calling pskb_may_pull(), to avoid reassign greh.

    Fixes: 7a7ffbabf9("ipv4: fix tunneled VM traffic over hw VXLAN/GRE GSO NIC")
    Cc: Wei-Chun Chao
    Signed-off-by: Li RongQing
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Li RongQing
     
  • Pull networking fixes from David Miller:

    1) Include fixes for netrom and dsa (Fabian Frederick and Florian
    Fainelli)

    2) Fix FIXED_PHY support in stmmac, from Giuseppe CAVALLARO.

    3) Several SKB use after free fixes (vxlan, openvswitch, vxlan,
    ip_tunnel, fou), from Li ROngQing.

    4) fec driver PTP support fixes from Luwei Zhou and Nimrod Andy.

    5) Use after free in virtio_net, from Michael S Tsirkin.

    6) Fix flow mask handling for megaflows in openvswitch, from Pravin B
    Shelar.

    7) ISDN gigaset and capi bug fixes from Tilman Schmidt.

    8) Fix route leak in ip_send_unicast_reply(), from Vasily Averin.

    9) Fix two eBPF JIT bugs on x86, from Alexei Starovoitov.

    10) TCP_SKB_CB() reorganization caused a few regressions, fixed by Cong
    Wang and Eric Dumazet.

    11) Don't overwrite end of SKB when parsing malformed sctp ASCONF
    chunks, from Daniel Borkmann.

    12) Don't call sock_kfree_s() with NULL pointers, this function also has
    the side effect of adjusting the socket memory usage. From Cong Wang.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (90 commits)
    bna: fix skb->truesize underestimation
    net: dsa: add includes for ethtool and phy_fixed definitions
    openvswitch: Set flow-key members.
    netrom: use linux/uaccess.h
    dsa: Fix conversion from host device to mii bus
    tipc: fix bug in bundled buffer reception
    ipv6: introduce tcp_v6_iif()
    sfc: add support for skb->xmit_more
    r8152: return -EBUSY for runtime suspend
    ipv4: fix a potential use after free in fou.c
    ipv4: fix a potential use after free in ip_tunnel_core.c
    hyperv: Add handling of IP header with option field in netvsc_set_hash()
    openvswitch: Create right mask with disabled megaflows
    vxlan: fix a free after use
    openvswitch: fix a use after free
    ipv4: dst_entry leak in ip_send_unicast_reply()
    ipv4: clean up cookie_v4_check()
    ipv4: share tcp_v4_save_options() with cookie_v4_check()
    ipv4: call __ip_options_echo() in cookie_v4_check()
    atm: simplify lanai.c by using module_pci_driver
    ...

    Linus Torvalds
     

18 Oct, 2014

13 commits

  • net/dsa/slave.c uses functions and structures declared in phy_fixed.h
    but does not explicitely include it, while dsa.h needs structure
    declarations for 'struct ethtool_wolinfo' and 'struct ethtool_eee', fix
    those by including the correct header files.

    Fixes: ec9436baedb6 ("net: dsa: allow drivers to do link adjustment")
    Fixes: ce31b31c68e7 ("net: dsa: allow updating fixed PHY link information")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • This patch adds missing memset which are required to initialize
    flow key member. For example for IP flow we need to initialize
    ip.frag for all cases.

    Found by inspection.

    This bug is introduced by commit 0714812134d7dcadeb7ecfbfeb18788aa7e1eaac
    ("openvswitch: Eliminate memset() from flow_extract").

    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Pravin B Shelar
     
  • replace asm/uaccess.h by linux/uaccess.h

    Signed-off-by: Fabian Frederick
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • In commit ec8a2e5621db2da24badb3969eda7fd359e1869f ("tipc: same receive
    code path for connection protocol and data messages") we omitted the
    the possiblilty that an arriving message extracted from a bundle buffer
    may be a multicast message. Such messages need to be to be delivered to
    the socket via a separate function, tipc_sk_mcast_rcv(). As a result,
    small multicast messages arriving as members of a bundle buffer will be
    silently dropped.

    This commit corrects the error by considering this case in the function
    tipc_link_bundle_rcv().

    Signed-off-by: Jon Maloy
    Signed-off-by: David S. Miller

    Jon Paul Maloy
     
  • Commit 971f10eca186 ("tcp: better TCP_SKB_CB layout to reduce cache line
    misses") added a regression for SO_BINDTODEVICE on IPv6.

    This is because we still use inet6_iif() which expects that IP6 control
    block is still at the beginning of skb->cb[]

    This patch adds tcp_v6_iif() helper and uses it where necessary.

    Because __inet6_lookup_skb() is used by TCP and DCCP, we add an iif
    parameter to it.

    Signed-off-by: Eric Dumazet
    Fixes: 971f10eca186 ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
    Acked-by: Cong Wang
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • pskb_may_pull() maybe change skb->data and make uh pointer oboslete,
    so reload uh and guehdr

    Fixes: 37dd0247 ("gue: Receive side for Generic UDP Encapsulation")
    Cc: Tom Herbert
    Signed-off-by: Li RongQing
    Signed-off-by: David S. Miller

    Li RongQing
     
  • pskb_may_pull() maybe change skb->data and make eth pointer oboslete,
    so set eth after pskb_may_pull()

    Fixes:3d7b46cd("ip_tunnel: push generic protocol handling to ip_tunnel module")
    Cc: Pravin B Shelar
    Signed-off-by: Li RongQing
    Acked-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Li RongQing
     
  • If megaflows are disabled, the userspace does not send the netlink attribute
    OVS_FLOW_ATTR_MASK, and the kernel must create an exact match mask.

    sw_flow_mask_set() sets every bytes (in 'range') of the mask to 0xff, even the
    bytes that represent padding for struct sw_flow, or the bytes that represent
    fields that may not be set during ovs_flow_extract().
    This is a problem, because when we extract a flow from a packet,
    we do not memset() anymore the struct sw_flow to 0.

    This commit gets rid of sw_flow_mask_set() and introduces mask_set_nlattr(),
    which operates on the netlink attributes rather than on the mask key. Using
    this approach we are sure that only the bytes that the user provided in the
    flow are matched.

    Also, if the parse_flow_mask_nlattrs() for the mask ENCAP attribute fails, we
    now return with an error.

    This bug is introduced by commit 0714812134d7dcadeb7ecfbfeb18788aa7e1eaac
    ("openvswitch: Eliminate memset() from flow_extract").

    Reported-by: Alex Wang
    Signed-off-by: Daniele Di Proietto
    Signed-off-by: Andy Zhou
    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Pravin B Shelar
     
  • pskb_may_pull() called by arphdr_ok can change skb->data, so put the arp
    setting after arphdr_ok to avoid the use the freed memory

    Fixes: 0714812134d7d ("openvswitch: Eliminate memset() from flow_extract.")
    Cc: Jesse Gross
    Cc: Eric Dumazet
    Signed-off-by: Li RongQing
    Acked-by: Jesse Gross
    Signed-off-by: David S. Miller

    Li RongQing
     
  • ip_setup_cork() called inside ip_append_data() steals dst entry from rt to cork
    and in case errors in __ip_append_data() nobody frees stolen dst entry

    Fixes: 2e77d89b2fa8 ("net: avoid a pair of dst_hold()/dst_release() in ip_append_data()")
    Signed-off-by: Vasily Averin
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Vasily Averin
     
  • We can retrieve opt from skb, no need to pass it as a parameter.
    And opt should always be non-NULL, no need to check.

    Cc: Krzysztof Kolasa
    Cc: Eric Dumazet
    Tested-by: Krzysztof Kolasa
    Signed-off-by: Cong Wang
    Signed-off-by: Cong Wang
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Cong Wang
     
  • cookie_v4_check() allocates ip_options_rcu in the same way
    with tcp_v4_save_options(), we can just make it a helper function.

    Cc: Krzysztof Kolasa
    Cc: Eric Dumazet
    Signed-off-by: Cong Wang
    Signed-off-by: Cong Wang
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Cong Wang
     
  • commit 971f10eca186cab238c49da ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
    missed that cookie_v4_check() still calls ip_options_echo() which uses
    IPCB(). It should use TCPCB() at TCP layer, so call __ip_options_echo()
    instead.

    Fixes: commit 971f10eca186cab238c49da ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
    Cc: Krzysztof Kolasa
    Cc: Eric Dumazet
    Reported-by: Krzysztof Kolasa
    Tested-by: Krzysztof Kolasa
    Signed-off-by: Cong Wang
    Signed-off-by: Cong Wang
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Cong Wang
     

16 Oct, 2014

3 commits

  • All functions used struct vport *vport except
    ovs_vport_find_upcall_portid.

    This fixes 1 kerneldoc warning

    Signed-off-by: Fabian Frederick
    Acked-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • s/sock/gs

    Signed-off-by: Fabian Frederick
    Acked-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • Add ndo_gso_check which a device can define to indicate whether is
    is capable of doing GSO on a packet. This funciton would be called from
    the stack to determine whether software GSO is needed to be done. A
    driver should populate this function if it advertises GSO types for
    which there are combinations that it wouldn't be able to handle. For
    instance a device that performs UDP tunneling might only implement
    support for transparent Ethernet bridging type of inner packets
    or might have limitations on lengths of inner headers.

    Signed-off-by: Tom Herbert
    Signed-off-by: David S. Miller

    Tom Herbert
     

15 Oct, 2014

17 commits

  • Pull percpu consistent-ops changes from Tejun Heo:
    "Way back, before the current percpu allocator was implemented, static
    and dynamic percpu memory areas were allocated and handled separately
    and had their own accessors. The distinction has been gone for many
    years now; however, the now duplicate two sets of accessors remained
    with the pointer based ones - this_cpu_*() - evolving various other
    operations over time. During the process, we also accumulated other
    inconsistent operations.

    This pull request contains Christoph's patches to clean up the
    duplicate accessor situation. __get_cpu_var() uses are replaced with
    with this_cpu_ptr() and __this_cpu_ptr() with raw_cpu_ptr().

    Unfortunately, the former sometimes is tricky thanks to C being a bit
    messy with the distinction between lvalues and pointers, which led to
    a rather ugly solution for cpumask_var_t involving the introduction of
    this_cpu_cpumask_var_ptr().

    This converts most of the uses but not all. Christoph will follow up
    with the remaining conversions in this merge window and hopefully
    remove the obsolete accessors"

    * 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (38 commits)
    irqchip: Properly fetch the per cpu offset
    percpu: Resolve ambiguities in __get_cpu_var/cpumask_var_t -fix
    ia64: sn_nodepda cannot be assigned to after this_cpu conversion. Use __this_cpu_write.
    percpu: Resolve ambiguities in __get_cpu_var/cpumask_var_t
    Revert "powerpc: Replace __get_cpu_var uses"
    percpu: Remove __this_cpu_ptr
    clocksource: Replace __this_cpu_ptr with raw_cpu_ptr
    sparc: Replace __get_cpu_var uses
    avr32: Replace __get_cpu_var with __this_cpu_write
    blackfin: Replace __get_cpu_var uses
    tile: Use this_cpu_ptr() for hardware counters
    tile: Replace __get_cpu_var uses
    powerpc: Replace __get_cpu_var uses
    alpha: Replace __get_cpu_var
    ia64: Replace __get_cpu_var uses
    s390: cio driver &__get_cpu_var replacements
    s390: Replace __get_cpu_var uses
    mips: Replace __get_cpu_var uses
    MIPS: Replace __get_cpu_var uses in FPU emulator.
    arm: Replace __this_cpu_ptr with raw_cpu_ptr
    ...

    Linus Torvalds
     
  • Pull Ceph updates from Sage Weil:
    "There is the long-awaited discard support for RBD (Guangliang Zhao,
    Josh Durgin), a pile of RBD bug fixes that didn't belong in late -rc's
    (Ilya Dryomov, Li RongQing), a pile of fs/ceph bug fixes and
    performance and debugging improvements (Yan, Zheng, John Spray), and a
    smattering of cleanups (Chao Yu, Fabian Frederick, Joe Perches)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (40 commits)
    ceph: fix divide-by-zero in __validate_layout()
    rbd: rbd workqueues need a resque worker
    libceph: ceph-msgr workqueue needs a resque worker
    ceph: fix bool assignments
    libceph: separate multiple ops with commas in debugfs output
    libceph: sync osd op definitions in rados.h
    libceph: remove redundant declaration
    ceph: additional debugfs output
    ceph: export ceph_session_state_name function
    ceph: include the initial ACL in create/mkdir/mknod MDS requests
    ceph: use pagelist to present MDS request data
    libceph: reference counting pagelist
    ceph: fix llistxattr on symlink
    ceph: send client metadata to MDS
    ceph: remove redundant code for max file size verification
    ceph: remove redundant io_iter_advance()
    ceph: move ceph_find_inode() outside the s_mutex
    ceph: request xattrs if xattr_version is zero
    rbd: set the remaining discard properties to enable support
    rbd: use helpers to handle discard for layered images correctly
    ...

    Linus Torvalds
     
  • virtio spec requires drivers to set DRIVER_OK before using VQs.
    This is set automatically after probe returns, but virtio 9p device
    adds self to channel list within probe, at which point VQ can be
    used in violation of the spec.

    To fix, call virtio_device_ready before using VQs.

    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Rusty Russell

    Michael S. Tsirkin
     
  • TCP Small queues tries to keep number of packets in qdisc
    as small as possible, and depends on a tasklet to feed following
    packets at TX completion time.
    Choice of tasklet was driven by latencies requirements.

    Then, TCP stack tries to avoid reorders, by locking flows with
    outstanding packets in qdisc in a given TX queue.

    What can happen is that many flows get attracted by a low performing
    TX queue, and cpu servicing TX completion has to feed packets for all of
    them, making this cpu 100% busy in softirq mode.

    This became particularly visible with latest skb->xmit_more support

    Strategy adopted in this patch is to detect when tcp_wfree() is called
    from ksoftirqd and let the outstanding queue for this flow being drained
    before feeding additional packets, so that skb->ooo_okay can be set
    to allow select_queue() to select the optimal queue :

    Incoming ACKS are normally handled by different cpus, so this patch
    gives more chance for these cpus to take over the burden of feeding
    qdisc with future packets.

    Tested:

    lpaa23:~# ./super_netperf 1400 --google-pacing-rate 3028000 -H lpaa24 -l 3600 &

    lpaa23:~# sar -n DEV 1 10 | grep eth1
    06:16:18 AM eth1 595448.00 1190564.00 38381.09 1760253.12 0.00 0.00 1.00
    06:16:19 AM eth1 594858.00 1189686.00 38340.76 1758952.72 0.00 0.00 0.00
    06:16:20 AM eth1 597017.00 1194019.00 38480.79 1765370.29 0.00 0.00 1.00
    06:16:21 AM eth1 595450.00 1190936.00 38380.19 1760805.05 0.00 0.00 0.00
    06:16:22 AM eth1 596385.00 1193096.00 38442.56 1763976.29 0.00 0.00 1.00
    06:16:23 AM eth1 598155.00 1195978.00 38552.97 1768264.60 0.00 0.00 0.00
    06:16:24 AM eth1 594405.00 1188643.00 38312.57 1757414.89 0.00 0.00 1.00
    06:16:25 AM eth1 593366.00 1187154.00 38252.16 1755195.83 0.00 0.00 0.00
    06:16:26 AM eth1 593188.00 1186118.00 38232.88 1753682.57 0.00 0.00 1.00
    06:16:27 AM eth1 596301.00 1192241.00 38440.94 1762733.09 0.00 0.00 0.00
    Average: eth1 595457.30 1190843.50 38381.69 1760664.84 0.00 0.00 0.50
    lpaa23:~# ./tc -s -d qd sh dev eth1 | grep backlog
    backlog 7606336b 2513p requeues 167982
    backlog 224072b 74p requeues 566
    backlog 581376b 192p requeues 5598
    backlog 181680b 60p requeues 1070
    backlog 5305056b 1753p requeues 110166 // Here, this TX queue is attracting flows
    backlog 157456b 52p requeues 1758
    backlog 672216b 222p requeues 3025
    backlog 60560b 20p requeues 24541
    backlog 448144b 148p requeues 21258

    lpaa23:~# echo 1 >/proc/sys/net/ipv4/tcp_tsq_enable_tcp_wfree_ksoftirqd_detect

    Immediate jump to full bandwidth, and traffic is properly
    shard on all tx queues.

    lpaa23:~# sar -n DEV 1 10 | grep eth1
    06:16:46 AM eth1 1397632.00 2795397.00 90081.87 4133031.26 0.00 0.00 1.00
    06:16:47 AM eth1 1396874.00 2793614.00 90032.99 4130385.46 0.00 0.00 0.00
    06:16:48 AM eth1 1395842.00 2791600.00 89966.46 4127409.67 0.00 0.00 1.00
    06:16:49 AM eth1 1395528.00 2791017.00 89946.17 4126551.24 0.00 0.00 0.00
    06:16:50 AM eth1 1397891.00 2795716.00 90098.74 4133497.39 0.00 0.00 1.00
    06:16:51 AM eth1 1394951.00 2789984.00 89908.96 4125022.51 0.00 0.00 0.00
    06:16:52 AM eth1 1394608.00 2789190.00 89886.90 4123851.36 0.00 0.00 1.00
    06:16:53 AM eth1 1395314.00 2790653.00 89934.33 4125983.09 0.00 0.00 0.00
    06:16:54 AM eth1 1396115.00 2792276.00 89984.25 4128411.21 0.00 0.00 1.00
    06:16:55 AM eth1 1396829.00 2793523.00 90030.19 4130250.28 0.00 0.00 0.00
    Average: eth1 1396158.40 2792297.00 89987.09 4128439.35 0.00 0.00 0.50

    lpaa23:~# tc -s -d qd sh dev eth1 | grep backlog
    backlog 7900052b 2609p requeues 173287
    backlog 878120b 290p requeues 589
    backlog 1068884b 354p requeues 5621
    backlog 996212b 329p requeues 1088
    backlog 984100b 325p requeues 115316
    backlog 956848b 316p requeues 1781
    backlog 1080996b 357p requeues 3047
    backlog 975016b 322p requeues 24571
    backlog 990156b 327p requeues 21274

    (All 8 TX queues get a fair share of the traffic)

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Unlike normal kfree() it is never right to call sock_kfree_s() with
    a NULL pointer, because sock_kfree_s() also has the side effect of
    discharging the memory from the sockets quota.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • It is okay to free a NULL pointer but not okay to mischarge the socket optmem
    accounting. Compile test only.

    Reported-by: rucsoftsec@gmail.com
    Cc: Chien Yen
    Cc: Stephen Hemminger
    Signed-off-by: Cong Wang
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Cong Wang
     
  • parent cfusbl was used instead of first structure member 'layer'

    Suggested-by: Joe Perches
    Signed-off-by: Fabian Frederick
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • Let MM subsystem display out of memory messages.

    Signed-off-by: Fabian Frederick
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • Also add blank line after declaration

    Signed-off-by: Fabian Frederick
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • fib_nh_match does not match nexthops correctly. Example:

    ip route add 172.16.10/24 nexthop via 192.168.122.12 dev eth0 \
    nexthop via 192.168.122.13 dev eth0
    ip route del 172.16.10/24 nexthop via 192.168.122.14 dev eth0 \
    nexthop via 192.168.122.15 dev eth0

    Del command is successful and route is removed. After this patch
    applied, the route is correctly matched and result is:
    RTNETLINK answers: No such process

    Please consider this for stable trees as well.

    Fixes: 4e902c57417c4 ("[IPv4]: FIB configuration using struct fib_config")
    Signed-off-by: Jiri Pirko
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • We worked hard to improve tcp_ack() performance, by not accessing
    skb_shinfo() in fast path (cd7d8498c9a5 tcp: change tcp_skb_pcount()
    location)

    We still have one spurious access because of ACK timestamping,
    added in commit e1c8a607b281 ("net-timestamp: ACK timestamp for
    bytestreams")

    By checking if sk_tsflags has SOF_TIMESTAMPING_TX_ACK set,
    we can avoid two cache line misses for the common case.

    While we are at it, add two prefetchw() :

    One in tcp_ack() to bring skb at the head of write queue.

    One in tcp_clean_rtx_queue() loop to bring following skb,
    as we will delete skb from the write queue and dirty skb->next->prev.

    Add a couple of [un]likely() clauses.

    After this patch, tcp_ack() is no longer the most consuming
    function in tcp stack.

    Signed-off-by: Eric Dumazet
    Cc: Willem de Bruijn
    Cc: Neal Cardwell
    Cc: Yuchung Cheng
    Cc: Van Jacobson
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Commit f363e45fd118 ("net/ceph: make ceph_msgr_wq non-reentrant")
    effectively removed WQ_MEM_RECLAIM flag from ceph_msgr_wq. This is
    wrong - libceph is very much a memory reclaim path, so restore it.

    Cc: stable@vger.kernel.org # needs backporting for < 3.12
    Signed-off-by: Ilya Dryomov
    Tested-by: Micha Krause
    Reviewed-by: Sage Weil

    Ilya Dryomov
     
  • For requests with multiple ops, separate ops with commas instead of \t,
    which is a field separator here.

    Signed-off-by: Ilya Dryomov
    Reviewed-by: Sage Weil

    Ilya Dryomov
     
  • Bring in missing osd ops and strings, use macros to eliminate multiple
    points of maintenance.

    Signed-off-by: Ilya Dryomov
    Reviewed-by: Sage Weil

    Ilya Dryomov
     
  • this allow pagelist to present data that may be sent multiple times.

    Signed-off-by: Yan, Zheng
    Reviewed-by: Sage Weil

    Yan, Zheng
     
  • no user uses this lock.

    Signed-off-by: Li RongQing
    Signed-off-by: David S. Miller

    Li RongQing
     
  • TCP Small Queues (tcp_tsq_handler()) can hold one reference on
    sk->sk_wmem_alloc, preventing skb->ooo_okay being set.

    We should relax test done to set skb->ooo_okay to take care
    of this extra reference.

    Minimal truesize of skb containing one byte of payload is
    SKB_TRUESIZE(1)

    Without this fix, we have more chance locking flows into the wrong
    transmit queue.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet