1. 13 May, 2014 14 commits
    • David S. Miller's avatar
      Merge branch 'cdc_mbim-next' · 4b9734e5
      David S. Miller authored
      Bjørn Mork says:
      
      ====================
      cdc_mbim: cleanups and new features
      
      This series depends on commit 6b5eeb7f ("net: cdc_mbim: handle
      unaccelerated VLAN tagged frames"), which is currently in "net" but
      not yet in "net-next".
      
      Patch 4 might have a minor context collision with the "cdc_ncm: add
      buffer tuning and stats using ethtool" series I just posted for
      review.  Please let me know if I should submit an adjusted version
      in either direction.  These two series' are otherwise completely
      independent of each other.
      
      The major new feature here is in patch 1, which I hope will solve
      some problems with the original design without changing the existing
      API, optionally allowing IP session 0 to be treated like any other
      MBIM session.
      
      The rest are some minor cleanups and finally some documentation of
      the current driver APIs, after this series has been applied.  I
      started feeling a bit more mortal than usual lately, which probably
      is healthy, and realized that I should put some of the stuff in my
      head in a somewhat less volatile storage.
      
      v2:
      
      Fixed patch 1 so that it actually does what it claims to do. This time
      it is even tested for functionality, and not just build tested...
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b9734e5
    • Bjørn Mork's avatar
      net: cdc_ncm/cdc_mbim: rework probing of NCM/MBIM functions · 50a0ffaf
      Bjørn Mork authored
      The NCM class match in the cdc_mbim driver is confusing and
      cause unexpected behaviour. The USB core guarantees that a
      USB interface is in altsetting 0 when probing starts. This
      means that devices implementing a NCM 1.0 backwards
      compatible MBIM function (a "NCM/MBIM function") always hit
      the NCM entry in the cdc_mbim driver match table. Such
      functions will never match any of the MBIM entries.
      
      This causes unexpeced behaviour for cases where the NCM and
      MBIM entries are differet, which is currently the case for
      all except Ericsson devices.
      
      Improve the probing of NCM/MBIM functions by looking up the
      device again in the cdc_mbim match table after switching to
      the MBIM identity.
      
      The shared altsetting selection is updated to better
      accommodate the new probing logic, returning the preferred
      altsetting for the control interface instead of the data
      interface. The control interface altsetting update is moved
      to the cdc_mbim driver. It is never necessary to change the
      control interface altsetting for NCM.
      
      Cc: Greg Suarez <gsuarez@smithmicro.com>
      Reported by: Yu-an Shih <yshih@nvidia.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      50a0ffaf
    • Bjørn Mork's avatar
      net: cdc_mbim: add driver documentation · a563babe
      Bjørn Mork authored
      An initial attempt on describing some of the odd APIs
      provided by this driver.
      
      Cc: Greg Suarez <gsuarez@smithmicro.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a563babe
    • Bjørn Mork's avatar
      net: cdc_mbim: reject IP packets on DSS VLANs · 6e1b3095
      Bjørn Mork authored
      DSS VLANs are pseudo network interfaces representing arbitrary
      data streams, and specifically not IP. Preventing spurious IP
      packets can sometimes be a hassle. The kernel will for example
      send an IPv6 Router Solicit when the interface is brought up
      unless the user has been careful enough to disable IPv6 first.
      Such packets forwared to a MBIM DSS session will look like
      spurious noise to the device, and can cause it to log an error
      or even malfunction.
      
      Drop all IP packets on the designated DSS VLANs to prevent such
      unwanted spurious transmissions.
      
      Cc: Greg Suarez <gsuarez@smithmicro.com>
      Reported-by: default avatarArnaud Desmier <adesmier@sequans.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e1b3095
    • Bjørn Mork's avatar
      net: cdc_mbim: optionally use VLAN ID 4094 for IP session 0 · 146a08d2
      Bjørn Mork authored
      The cdc_mbim driver maps 802.1q VLANs to MBIM IP and DSS
      sessions. MBIM IP session 0 is handled as an exception and
      is mapped to untagged frames.
      
      This patch adds optional support for remapping MBIM IP
      session 0 to 802.1q VLAN ID 4094 instead. The default
      behaviour is not changed. The new behaviour is triggered
      by adding a link for this previously unsupported VLAN.
      
      The untagged mapping was chosen initially to support the
      assumed most common use case: Most current MBIM devices only
      support a single IP session (i.e. session 0 only), and using
      untagged frames lets the users completely ignore the
      additonal complexity of the multiplexing layer.
      
      But when the multiplexing features of MBIM are used, then
      this netdev gets a double meaning: It becomes the master
      interface for all the VLAN subdevs the additional sessions
      are mapped to, while still serving as the untagged IP
      interface for session 0.
      
      This can be problematic, especially when using Device Service
      Streams (DSS), as have become apparent recently with the
      availability of devices with real DSS support. Some use cases
      need to e.g set a MTU which is higher than allowed for IP
      Session 0. The dual role also leads to the situation where
      the IP Session 0 interface cannot be taken down without
      breaking unrelated IP or DSS sessions - a devastating side
      effect which applications managing a simple IP session cannot
      be expected to be aware of. A typical DHCP client will assume
      that it should bring the interface down after releasing the
      IP lease.
      
      These problems can be avoided by tagging IP session 0 packets
      too, making this session similar to all other multiplexed
      sessions. This redefines the main netdev as an upper master
      interface only.
      
      Cc: Greg Suarez <gsuarez@smithmicro.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      146a08d2
    • Wilfried Klaebe's avatar
      net: get rid of SET_ETHTOOL_OPS · 7ad24ea4
      Wilfried Klaebe authored
      net: get rid of SET_ETHTOOL_OPS
      
      Dave Miller mentioned he'd like to see SET_ETHTOOL_OPS gone.
      This does that.
      
      Mostly done via coccinelle script:
      @@
      struct ethtool_ops *ops;
      struct net_device *dev;
      @@
      -       SET_ETHTOOL_OPS(dev, ops);
      +       dev->ethtool_ops = ops;
      
      Compile tested only, but I'd seriously wonder if this broke anything.
      Suggested-by: default avatarDave Miller <davem@davemloft.net>
      Signed-off-by: default avatarWilfried Klaebe <w-lkml@lebenslange-mailadresse.de>
      Acked-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ad24ea4
    • Mathias Krause's avatar
      net: ptp: mark filter as __initdata · 0f49ff07
      Mathias Krause authored
      sk_unattached_filter_create() will copy the filter's instructions so we
      don't need to have the master copy hanging around after initialization.
      Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0f49ff07
    • Randy Dunlap's avatar
      net: fix test_bpf build to depend on NET · 98920ba6
      Randy Dunlap authored
      Fix build when CONFIG_NET is not enabled.
      Fixes these build errors:
      
      WARNING: "sk_unattached_filter_destroy" [lib/test_bpf.ko] undefined!
      WARNING: "kfree_skb" [lib/test_bpf.ko] undefined!
      WARNING: "sk_unattached_filter_create" [lib/test_bpf.ko] undefined!
      WARNING: "sk_run_filter_int_skb" [lib/test_bpf.ko] undefined!
      WARNING: "__alloc_skb" [lib/test_bpf.ko] undefined!
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      98920ba6
    • David S. Miller's avatar
      net: filter: Fix redefinition warnings on x86-64. · 1268e253
      David S. Miller authored
      Do not collide with the x86-64 PTRACE user API namespace.
      
      net/core/filter.c:57:0: warning: "R8" redefined [enabled by default]
      arch/x86/include/uapi/asm/ptrace-abi.h:38:0: note: this is the location of the previous definition
      
      Fix by adding a BPF_ prefix to the register macros.
      Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1268e253
    • Randy Dunlap's avatar
      bnx2x: fix build when BNX2X_SRIOV is not enabled · 62555582
      Randy Dunlap authored
      Fix build when BNX2X_SRIOV is not enabled.
      Change one parameter struct from bnx2 to bnx2x and don't return a value
      from a void function.
      
      drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h:576:48: warning: 'struct bnx2' declared inside parameter list [enabled by default]
      drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h:576:48: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
      
      drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h:576:60: warning: 'return' with a value, in function returning void [enabled by default]
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc:	Ariel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      62555582
    • David S. Miller's avatar
      Merge branch 'cpsw' · b62cb8d9
      David S. Miller authored
      Mugunthan V N says:
      
      ====================
      Add DRA7xx and AM43xx platform support in cpsw-phy-sel driver
      
      Adding DRA7xx and AM43xx platform support to cpsw-phy-sel driver to select
      phy mode in control driver and fixing the uninitialized dev by initializing
      to platform device structure pointer.
      
      Changes from Initial version
      * Added back the missing patch (1/3)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b62cb8d9
    • Mugunthan V N's avatar
      drivers: net: cpsw-phy-sel: add am43xx platform support · b80b9309
      Mugunthan V N authored
      AM43xx phy mode selection is similar to AM33xx platform, so adding only
      the compatibility string to the driver
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b80b9309
    • Mugunthan V N's avatar
      drivers: net: cpsw-phy-sel: add dra7xx support for phy sel · d415fa1b
      Mugunthan V N authored
      Add dra7xx support for selecting the phy mode which is present in control
      module of dra7xx SoC
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d415fa1b
    • Mugunthan V N's avatar
      drivers: net: cpsw-phy-sel: initialize priv->dev · 84ef36bd
      Mugunthan V N authored
      priv->dev is uninitialized, initializing with pdev->dev
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      84ef36bd
  2. 12 May, 2014 15 commits
  3. 09 May, 2014 11 commits
    • David S. Miller's avatar
      Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless · 1448eb56
      David S. Miller authored
      John W. Linville says:
      
      ====================
      pull request: wireless 2014-05-08
      
      This one is all from Johannes:
      
      "Here are a few small fixes for the current cycle: radiotap TX flags were
      wrong (fix by Bob), Chun-Yeow fixes an SMPS issue with mesh interfaces,
      Eliad fixes a locking bug and a cfg80211 state problem and finally
      Henning sent me a fix for IBSS rate information."
      
      Please let me know if there are problems!
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1448eb56
    • David S. Miller's avatar
      Merge branch 'sctp_sysctl' · 05ab2dae
      David S. Miller authored
      Wang Weidong says:
      
      ====================
      sctp: fix kfree static array pointer in sctp_sysctl_net_unregister
      
      patch #1 revert the efb842c4("sctp: optimize the sctp_sysctl_net_register")
      patch #2 add a checking for sctp_sysctl_net_register
      ====================
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      05ab2dae
    • wangweidong's avatar
      sctp: add a checking for sctp_sysctl_net_register · f66138c8
      wangweidong authored
      When register_net_sysctl failed, we should free the
      sysctl_table.
      Signed-off-by: default avatarWang Weidong <wangweidong1@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f66138c8
    • wangweidong's avatar
      Revert "sctp: optimize the sctp_sysctl_net_register" · eb9f3705
      wangweidong authored
      This revert commit efb842c4("sctp: optimize the sctp_sysctl_net_register"),
      Since it doesn't kmemdup a sysctl_table for init_net, so the
      init_net->sctp.sysctl_header->ctl_table_arg points to sctp_net_table
      which is a static array pointer. So when doing sctp_sysctl_net_unregister,
      it will free sctp_net_table, then we will get a NULL pointer dereference
      like that:
      
      [  262.948220] BUG: unable to handle kernel NULL pointer dereference at 000000000000006c
      [  262.948232] IP: [<ffffffff81144b70>] kfree+0x80/0x420
      [  262.948260] PGD db80a067 PUD dae12067 PMD 0
      [  262.948268] Oops: 0000 [#1] SMP
      [  262.948273] Modules linked in: sctp(-) crc32c_generic libcrc32c
      ...
      [  262.948338] task: ffff8800db830190 ti: ffff8800dad00000 task.ti: ffff8800dad00000
      [  262.948344] RIP: 0010:[<ffffffff81144b70>]  [<ffffffff81144b70>] kfree+0x80/0x420
      [  262.948353] RSP: 0018:ffff8800dad01d88  EFLAGS: 00010046
      [  262.948358] RAX: 0100000000000000 RBX: ffffffffa0227940 RCX: ffffea0000707888
      [  262.948363] RDX: ffffea0000707888 RSI: 0000000000000001 RDI: ffffffffa0227940
      [  262.948369] RBP: ffff8800dad01de8 R08: 0000000000000000 R09: ffff8800d9e983a9
      [  262.948374] R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffa0227940
      [  262.948380] R13: ffffffff8187cfc0 R14: 0000000000000000 R15: ffffffff8187da10
      [  262.948386] FS:  00007fa2a2658700(0000) GS:ffff880112800000(0000) knlGS:0000000000000000
      [  262.948394] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [  262.948400] CR2: 000000000000006c CR3: 00000000cddc0000 CR4: 00000000000006e0
      [  262.948410] Stack:
      [  262.948413]  ffff8800dad01da8 0000000000000286 0000000020227940 ffffffffa0227940
      [  262.948422]  ffff8800dad01dd8 ffffffff811b7fa1 ffffffffa0227940 ffffffffa0227940
      [  262.948431]  ffffffff8187d960 ffffffff8187cfc0 ffffffff8187d960 ffffffff8187da10
      [  262.948440] Call Trace:
      [  262.948457]  [<ffffffff811b7fa1>] ? unregister_sysctl_table+0x51/0xa0
      [  262.948476]  [<ffffffffa020d1a1>] sctp_sysctl_net_unregister+0x21/0x30 [sctp]
      [  262.948490]  [<ffffffffa020ef6d>] sctp_net_exit+0x12d/0x150 [sctp]
      [  262.948512]  [<ffffffff81394f49>] ops_exit_list+0x39/0x60
      [  262.948522]  [<ffffffff813951ed>] unregister_pernet_operations+0x3d/0x70
      [  262.948530]  [<ffffffff81395292>] unregister_pernet_subsys+0x22/0x40
      [  262.948544]  [<ffffffffa020efcc>] sctp_exit+0x3c/0x12d [sctp]
      [  262.948562]  [<ffffffff810c5e04>] SyS_delete_module+0x194/0x210
      [  262.948577]  [<ffffffff81240fde>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [  262.948587]  [<ffffffff815217a2>] system_call_fastpath+0x16/0x1b
      
      With this revert, it won't occur the Oops.
      Signed-off-by: default avatarWang Weidong <wangweidong1@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eb9f3705
    • Arnd Bergmann's avatar
      mdio_bus: fix devm_mdiobus_alloc_size export · 93dccc59
      Arnd Bergmann authored
      commit 6d48f44b "mdio_bus: implement devm_mdiobus_alloc/devm_mdiobus_free"
      introduced a new function devm_mdiobus_alloc_size() but added an export
      for a different function devm_mdiobus_alloc(), which was obviously
      a simple mistake that leads to  build error whenever this function is
      used from a loadable module:
      
      ERROR: "devm_mdiobus_alloc_size" [drivers/net/ethernet/ti/davinci_mdio.ko] undefined!
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Grygorii Strashko <grygorii.strashko@ti.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Cc: Lad, Prabhakar <prabhakar.csengg@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Acked-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93dccc59
    • Emil Goode's avatar
      net: cassini: use nested lock annotation · a9de0500
      Emil Goode authored
      In the cas_lock_tx function we acquire multiple locks in a loop and
      need to use nested lock annotation to prevent lockdep warnings.
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarEmil Goode <emilgoode@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a9de0500
    • Nikolay Aleksandrov's avatar
      bonding: make a generic sysfs option store and fix comments · dc3e5d18
      Nikolay Aleksandrov authored
      Introduce a generic option store function for sysfs and remove the
      specific ones. The attribute name is used to match against the option
      which is to be set.
      Also adjust the "name" of tlb_dynamic_lb option to match the sysfs
      entry and fix the comments and comment style in bond_sysfs.c
      The comments which showed obvious behaviour (i.e. behaviour that's seen
      in the option's entry) are removed, the ones that explained important
      points about the setting function have been moved above the respective
      set function in bond_options.c
      
      There's only 1 exception: num_unsol_na/num_grat_arp since it has 2 names
      
      CC: Jay Vosburgh <j.vosburgh@gmail.com>
      CC: Veaceslav Falico <vfalico@gmail.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc3e5d18
    • Yuval Mintz's avatar
      bnx2x: Fix UNDI driver unload · de682941
      Yuval Mintz authored
      Commit 91ebb928b "bnx2x: Add support for Multi-Function UNDI" contains a bug
      which prevent the emptying of the device's Rx buffers before reset.
      As a result, on new boards it is likely HW will reach some fatal assertion
      once its interfaces load after UNDI was previously loaded.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      de682941
    • wangweidong's avatar
      rds: remove the unneed NULL checking · be7faf71
      wangweidong authored
      unregister_net_sysctl_table will check the ctl_table_header,
      so remove the unneed checking
      Signed-off-by: default avatarWang Weidong <wangweidong1@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      be7faf71
    • David S. Miller's avatar
      Merge branch 'mdio_net' · 27653053
      David S. Miller authored
      Johan Hovold says:
      
      ====================
      net: cpsw and mdio-gpio fixes for v3.15-final
      
      These patches against v3.15-rc4 fix a few issues in the cpsw and
      mdio-gpio drivers.
      
      Resend with proper stable CC (git send-email still fails to parse the
      
      Sorry about the noise.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27653053
    • Johan Hovold's avatar
      net: cpsw: add missing of_node_put · 60e71ab5
      Johan Hovold authored
      Add missing of_node_put to avoid kref leak.
      Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60e71ab5