1. 02 May, 2013 30 commits
  2. 01 May, 2013 10 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 73287a43
      Linus Torvalds authored
      Pull networking updates from David Miller:
       "Highlights (1721 non-merge commits, this has to be a record of some
        sort):
      
         1) Add 'random' mode to team driver, from Jiri Pirko and Eric
            Dumazet.
      
         2) Make it so that any driver that supports configuration of multiple
            MAC addresses can provide the forwarding database add and del
            calls by providing a default implementation and hooking that up if
            the driver doesn't have an explicit set of handlers.  From Vlad
            Yasevich.
      
         3) Support GSO segmentation over tunnels and other encapsulating
            devices such as VXLAN, from Pravin B Shelar.
      
         4) Support L2 GRE tunnels in the flow dissector, from Michael Dalton.
      
         5) Implement Tail Loss Probe (TLP) detection in TCP, from Nandita
            Dukkipati.
      
         6) In the PHY layer, allow supporting wake-on-lan in situations where
            the PHY registers have to be written for it to be configured.
      
            Use it to support wake-on-lan in mv643xx_eth.
      
            From Michael Stapelberg.
      
         7) Significantly improve firewire IPV6 support, from YOSHIFUJI
            Hideaki.
      
         8) Allow multiple packets to be sent in a single transmission using
            network coding in batman-adv, from Martin Hundebøll.
      
         9) Add support for T5 cxgb4 chips, from Santosh Rastapur.
      
        10) Generalize the VXLAN forwarding tables so that there is more
            flexibility in configurating various aspects of the endpoints.
            From David Stevens.
      
        11) Support RSS and TSO in hardware over GRE tunnels in bxn2x driver,
            from Dmitry Kravkov.
      
        12) Zero copy support in nfnelink_queue, from Eric Dumazet and Pablo
            Neira Ayuso.
      
        13) Start adding networking selftests.
      
        14) In situations of overload on the same AF_PACKET fanout socket, or
            per-cpu packet receive queue, minimize drop by distributing the
            load to other cpus/fanouts.  From Willem de Bruijn and Eric
            Dumazet.
      
        15) Add support for new payload offset BPF instruction, from Daniel
            Borkmann.
      
        16) Convert several drivers over to mdoule_platform_driver(), from
            Sachin Kamat.
      
        17) Provide a minimal BPF JIT image disassembler userspace tool, from
            Daniel Borkmann.
      
        18) Rewrite F-RTO implementation in TCP to match the final
            specification of it in RFC4138 and RFC5682.  From Yuchung Cheng.
      
        19) Provide netlink socket diag of netlink sockets ("Yo dawg, I hear
            you like netlink, so I implemented netlink dumping of netlink
            sockets.") From Andrey Vagin.
      
        20) Remove ugly passing of rtnetlink attributes into rtnl_doit
            functions, from Thomas Graf.
      
        21) Allow userspace to be able to see if a configuration change occurs
            in the middle of an address or device list dump, from Nicolas
            Dichtel.
      
        22) Support RFC3168 ECN protection for ipv6 fragments, from Hannes
            Frederic Sowa.
      
        23) Increase accuracy of packet length used by packet scheduler, from
            Jason Wang.
      
        24) Beginning set of changes to make ipv4/ipv6 fragment handling more
            scalable and less susceptible to overload and locking contention,
            from Jesper Dangaard Brouer.
      
        25) Get rid of using non-type-safe NLMSG_* macros and use nlmsg_*()
            instead.  From Hong Zhiguo.
      
        26) Optimize route usage in IPVS by avoiding reference counting where
            possible, from Julian Anastasov.
      
        27) Convert IPVS schedulers to RCU, also from Julian Anastasov.
      
        28) Support cpu fanouts in xt_NFQUEUE netfilter target, from Holger
            Eitzenberger.
      
        29) Network namespace support for nf_log, ebt_log, xt_LOG, ipt_ULOG,
            nfnetlink_log, and nfnetlink_queue.  From Gao feng.
      
        30) Implement RFC3168 ECN protection, from Hannes Frederic Sowa.
      
        31) Support several new r8169 chips, from Hayes Wang.
      
        32) Support tokenized interface identifiers in ipv6, from Daniel
            Borkmann.
      
        33) Use usbnet_link_change() helper in USB net driver, from Ming Lei.
      
        34) Add 802.1ad vlan offload support, from Patrick McHardy.
      
        35) Support mmap() based netlink communication, also from Patrick
            McHardy.
      
        36) Support HW timestamping in mlx4 driver, from Amir Vadai.
      
        37) Rationalize AF_PACKET packet timestamping when transmitting, from
            Willem de Bruijn and Daniel Borkmann.
      
        38) Bring parity to what's provided by /proc/net/packet socket dumping
            and the info provided by netlink socket dumping of AF_PACKET
            sockets.  From Nicolas Dichtel.
      
        39) Fix peeking beyond zero sized SKBs in AF_UNIX, from Benjamin
            Poirier"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1722 commits)
        filter: fix va_list build error
        af_unix: fix a fatal race with bit fields
        bnx2x: Prevent memory leak when cnic is absent
        bnx2x: correct reading of speed capabilities
        net: sctp: attribute printl with __printf for gcc fmt checks
        netlink: kconfig: move mmap i/o into netlink kconfig
        netpoll: convert mutex into a semaphore
        netlink: Fix skb ref counting.
        net_sched: act_ipt forward compat with xtables
        mlx4_en: fix a build error on 32bit arches
        Revert "bnx2x: allow nvram test to run when device is down"
        bridge: avoid OOPS if root port not found
        drivers: net: cpsw: fix kernel warn on cpsw irq enable
        sh_eth: use random MAC address if no valid one supplied
        3c509.c: call SET_NETDEV_DEV for all device types (ISA/ISAPnP/EISA)
        tg3: fix to append hardware time stamping flags
        unix/stream: fix peeking with an offset larger than data in queue
        unix/dgram: fix peeking with an offset larger than data in queue
        unix/dgram: peek beyond 0-sized skbs
        openvswitch: Remove unneeded ovs_netdev_get_ifindex()
        ...
      73287a43
    • Xi Wang's avatar
      filter: fix va_list build error · 20074f35
      Xi Wang authored
      This patch fixes the following build error.
      
      In file included from include/linux/filter.h:52:0,
                       from arch/arm/net/bpf_jit_32.c:14:
      include/linux/printk.h:54:2: error: unknown type name ‘va_list’
      include/linux/printk.h:105:21: error: unknown type name ‘va_list’
      include/linux/printk.h:108:30: error: unknown type name ‘va_list’
      Signed-off-by: default avatarXi Wang <xi.wang@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20074f35
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 251df49d
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "Assorted fixes and cleanups to the existing drivers plus a new driver
        for IMS Passenger Control Unit device they use for ther in-flight
        entertainment system."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (44 commits)
        Input: trackpoint - Optimize trackpoint init to use power-on reset
        Input: apbps2 - convert to devm_ioremap_resource()
        Input: ALPS - use %ph to print buffers
        ARM - shmobile: Armadillo800EVA: Move st1232 reset pin handling
        Input: st1232 - add reset pin handling
        Input: st1232 - convert to devm_* infrastructure
        Input: MT - handle semi-mt devices in core
        Input: adxl34x - use spi_get_drvdata()
        Input: ad7877 - use spi_get_drvdata() and spi_set_drvdata()
        Input: ads7846 - use spi_get_drvdata() and spi_set_drvdata()
        Input: ims-pcu - fix a memory leak on error
        Input: sysrq - supplement reset sequence with timeout functionality
        Input: tegra-kbc - support for defining row/columns based on SoC
        Input: imx_keypad - switch to using managed resources
        Input: arc_ps2 - add support for device tree
        Input: mma8450 - fix signed 12bits to 32bits conversion
        Input: eeti_ts - remove redundant null check
        Input: edt-ft5x06 - remove redundant null check before kfree
        Input: ad714x - add CONFIG_PM_SLEEP to suspend/resume functions
        Input: adxl34x - add CONFIG_PM_SLEEP to suspend/resume functions
        ...
      251df49d
    • Eric Dumazet's avatar
      af_unix: fix a fatal race with bit fields · 60bc851a
      Eric Dumazet authored
      Using bit fields is dangerous on ppc64/sparc64, as the compiler [1]
      uses 64bit instructions to manipulate them.
      If the 64bit word includes any atomic_t or spinlock_t, we can lose
      critical concurrent changes.
      
      This is happening in af_unix, where unix_sk(sk)->gc_candidate/
      gc_maybe_cycle/lock share the same 64bit word.
      
      This leads to fatal deadlock, as one/several cpus spin forever
      on a spinlock that will never be available again.
      
      A safer way would be to use a long to store flags.
      This way we are sure compiler/arch wont do bad things.
      
      As we own unix_gc_lock spinlock when clearing or setting bits,
      we can use the non atomic __set_bit()/__clear_bit().
      
      recursion_level can share the same 64bit location with the spinlock,
      as it is set only with this spinlock held.
      
      [1] bug fixed in gcc-4.8.0 :
      http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52080Reported-by: default avatarAmbrose Feinstein <ambrose@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60bc851a
    • David S. Miller's avatar
      Merge branch 'bnx2x' · c3b28ea3
      David S. Miller authored
      Yuval Mintz says:
      
      ====================
      This fixes 2 small bugs - one which may cause an unnecessary link flap,
      and the other is a small memory leak when unloading while cnic is not
      loaded.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c3b28ea3
    • Yuval Mintz's avatar
      bnx2x: Prevent memory leak when cnic is absent · 05952246
      Yuval Mintz authored
      bnx2x driver allocates searcher T2 tables, but it releases that memory
      during unload only released if the cnic is loaded.
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      05952246
    • Yaniv Rosner's avatar
      bnx2x: correct reading of speed capabilities · b0261926
      Yaniv Rosner authored
      When the bnx2x driver reads the port configuration - mask irrelevant bits.
      
      Without this change, the unintended bits may cause the driver to needlessly
      toggle the link, as a comparison in the link flap avoidance flow will show
      that the old link did not advertise the same capabilities and thus cannot
      be retained.
      Signed-off-by: default avatarYaniv Rosner <yanivr@broadcom.com>
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b0261926
    • Daniel Borkmann's avatar
      net: sctp: attribute printl with __printf for gcc fmt checks · be3e4581
      Daniel Borkmann authored
      Let GCC check for format string errors in sctp's probe printl
      function. This patch fixes the warning when compiled with W=1:
      
      net/sctp/probe.c:73:2: warning: function might be possible candidate
      for 'gnu_printf' format attribute [-Wmissing-format-attribute]
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      be3e4581
    • Daniel Borkmann's avatar
      netlink: kconfig: move mmap i/o into netlink kconfig · ee1bec9b
      Daniel Borkmann authored
      Currently, in menuconfig, Netlink's new mmaped IO is the very first
      entry under the ``Networking support'' item and comes even before
      ``Networking options'':
      
        [ ]   Netlink: mmaped IO
        Networking options  --->
        ...
      
      Lets move this into ``Networking options'' under netlink's Kconfig,
      since this might be more appropriate. Introduced by commit ccdfcc39
      (``netlink: mmaped netlink: ring setup'').
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ee1bec9b
    • Neil Horman's avatar
      netpoll: convert mutex into a semaphore · bd7c4b60
      Neil Horman authored
      Bart Van Assche recently reported a warning to me:
      
      <IRQ>  [<ffffffff8103d79f>] warn_slowpath_common+0x7f/0xc0
      [<ffffffff8103d7fa>] warn_slowpath_null+0x1a/0x20
      [<ffffffff814761dd>] mutex_trylock+0x16d/0x180
      [<ffffffff813968c9>] netpoll_poll_dev+0x49/0xc30
      [<ffffffff8136a2d2>] ? __alloc_skb+0x82/0x2a0
      [<ffffffff81397715>] netpoll_send_skb_on_dev+0x265/0x410
      [<ffffffff81397c5a>] netpoll_send_udp+0x28a/0x3a0
      [<ffffffffa0541843>] ? write_msg+0x53/0x110 [netconsole]
      [<ffffffffa05418bf>] write_msg+0xcf/0x110 [netconsole]
      [<ffffffff8103eba1>] call_console_drivers.constprop.17+0xa1/0x1c0
      [<ffffffff8103fb76>] console_unlock+0x2d6/0x450
      [<ffffffff8104011e>] vprintk_emit+0x1ee/0x510
      [<ffffffff8146f9f6>] printk+0x4d/0x4f
      [<ffffffffa0004f1d>] scsi_print_command+0x7d/0xe0 [scsi_mod]
      
      This resulted from my commit ca99ca14 which introduced a mutex_trylock
      operation in a path that could execute in interrupt context.  When mutex
      debugging is enabled, the above warns the user when we are in fact
      exectuting in interrupt context
      interrupt context.
      
      After some discussion, It seems that a semaphore is the proper mechanism to use
      here.  While mutexes are defined to be unusable in interrupt context, no such
      condition exists for semaphores (save for the fact that the non blocking api
      calls, like up and down_trylock must be used when in irq context).
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Reported-by: default avatarBart Van Assche <bvanassche@acm.org>
      CC: Bart Van Assche <bvanassche@acm.org>
      CC: David Miller <davem@davemloft.net>
      CC: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd7c4b60