1. 03 Jun, 2014 5 commits
  2. 02 Jun, 2014 35 commits
    • Peter Senna Tschudin's avatar
      vxge: Remove useless return variables · f6d9b514
      Peter Senna Tschudin authored
      This patch remove variables that are initialized with a constant,
      are never updated, and are only used as parameter of return.
      Return the constant instead of using a variable.
      
      Verified by compilation only.
      
      The coccinelle script that find and fixes this issue is:
      // <smpl>
      @@
      type T;
      constant C;
      identifier ret;
      @@
      - T ret = C;
      ... when != ret
          when strict
      return
      - ret
      + C
      ;
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f6d9b514
    • Peter Senna Tschudin's avatar
      bnx2x: Remove useless return variables · b2bda2f7
      Peter Senna Tschudin authored
      This patch remove variables that are initialized with a constant,
      are never updated, and are only used as parameter of return.
      Return the constant instead of using a variable.
      
      Verified by compilation only.
      
      The coccinelle script that find and fixes this issue is:
      // <smpl>
      @@
      type T;
      constant C;
      identifier ret;
      @@
      - T ret = C;
      ... when != ret
          when strict
      return
      - ret
      + C
      ;
      // </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b2bda2f7
    • Paul Gortmaker's avatar
      drivers/net: fix broadcom/bcmsysport.c compile fail on SPARC · 3afc557d
      Paul Gortmaker authored
      To fix:
      
        CC      drivers/net/ethernet/broadcom/bcmsysport.o
      In file included from drivers/net/ethernet/broadcom/bcmsysport.c:28:0:
      drivers/net/ethernet/broadcom/bcmsysport.h:41:8: error: redefinition of 'struct tsb'
      arch/sparc/include/asm/mmu_64.h:65:8: note: originally defined here
      make[1]: *** [drivers/net/ethernet/broadcom/bcmsysport.o] Error 1
      
      we change struct tsb to struct bcm_tsb in the broadcom driver in
      order to avoid the namespace collision.  For consistency, we also
      change struct rsb to struct bcm_rsb, so the Rx/Tx symmetry is
      maintained.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3afc557d
    • David Ahern's avatar
      fib_trie: use seq_file_net rather than seq->private · 30f38d2f
      David Ahern authored
      Make fib_triestat_seq_show consistent with other /proc/net files and
      use seq_file_net.
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
      Cc: James Morris <jmorris@namei.org>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: Patrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      30f38d2f
    • Chema Gonzalez's avatar
      net: filter: fix length calculation in BPF testsuite · e9d94504
      Chema Gonzalez authored
      The current probe_filter_length() (the function that calculates the
      length of a test BPF filter) behavior is to declare the end of the
      filter as soon as it finds {0, *, *, 0}. This is actually a valid
      insn ("ld #0"), so any filter with includes "BPF_STMT(BPF_LD | BPF_IMM, 0)"
      fails (its length is cut short).
      
      We are changing probe_filter_length() so as to start from the end, and
      declare the end of the filter as the first instruction which is not
      {0, *, *, 0}. This solution produces a simpler patch than the
      alternative of using an explicit end-of-filter mark. It is technically
      incorrect if your filter ends up with "ld #0", but that should not
      happen anyway.
      
      We also add a new test (LD_IMM_0) that includes ld #0 (does not work
      without this patch).
      Signed-off-by: default avatarChema Gonzalez <chema@google.com>
      Acked-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e9d94504
    • David S. Miller's avatar
      Merge branch 'mvneta' · f7b4e71c
      David S. Miller authored
      Ezequiel Garcia says:
      
      ====================
      ethernet: marvell: After-TSO fixes
      
      This patchset consists of different fixes and improvements in the mvneta
      and mv643xx_eth drivers. The most important change is the one that allows
      to support small MSS values (see patches 2 and 6).
      
      This is done following the Solarflare driver (see commit 7e6d06f0).
      
      While doing this some other fixes were spotted and so they are included.
      
      Finally, notice that the TSO support introduced a wrong DMA unmapping
      of the TSO header buffers, so patches 4 and 8 provide a couple patches to
      fix that in the drivers.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7b4e71c
    • Ezequiel Garcia's avatar
      net: mv643xx_eth: Avoid unmapping the TSO header buffers · b926260c
      Ezequiel Garcia authored
      The buffers for the TSO headers belong to a DMA coherent region which is
      allocated at ndo_open() time, and released at ndo_stop() time.
      
      Therefore, and contrary to the TSO payload descriptor buffers, the TSO header
      buffers don't need to be unmapped. This commit adds a check to detect a
      TSO header buffer and explicitly prevent the unmap.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b926260c
    • Ezequiel Garcia's avatar
      net: mv643xx_eth: Drop the NETDEV_TX_BUSY return path · eee492ea
      Ezequiel Garcia authored
      After adding proper stop/wake thresholds, we can expect a queue to never
      be full and drop the NETDEV_TX_BUSY return path. In any case, if the queue
      cannot accommodate a TSO packet, the packet would be discarded.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eee492ea
    • Ezequiel Garcia's avatar
      net: mv643xx_eth: Limit the TSO segments and adjust stop/wake thresholds · ee9e4956
      Ezequiel Garcia authored
      Currently small MSS values may require too many TSO descriptors for
      the default queue size. This commit prevents this situation by fixing
      the maximum supported TSO number of segments to 100 and by setting a
      minimum Tx queue size. The minimum Tx queue size is set so that at
      least 2 worst-case skb can be accommodated.
      
      In addition, the queue stop and wake thresholds values are adjusted
      accordingly. The queue is stopped when there's room for only 1 worst-case
      skb and waked when the number of descriptors is half that value.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ee9e4956
    • Ezequiel Garcia's avatar
      net: mv643xx_eth: Count dropped packets properly · dd11680d
      Ezequiel Garcia authored
      This commit fixes the current dropped packet count by doing it properly,
      increasing the count when a packet is discarded; i.e. the packet is not
      processed and the driver returns NETDEV_TX_OK.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd11680d
    • Ezequiel Garcia's avatar
      net: mvneta: Avoid unmapping the TSO header buffers · 2e3173a3
      Ezequiel Garcia authored
      The buffers for the TSO headers belong to a DMA coherent region which is
      allocated at ndo_open() time, and released at ndo_stop() time.
      
      Therefore, and contrary to the TSO payload descriptor buffers, the TSO header
      buffers don't need to be unmapped. This commit adds a check to detect a
      TSO header buffer and explicitly prevent the unmap.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e3173a3
    • Ezequiel Garcia's avatar
      net: mvneta: Fix missing DMA region unmap · ba7e46ef
      Ezequiel Garcia authored
      The Tx descriptor release code currently calls dma_unmap_single() and
      dev_kfree_skb_any() if the descriptor is associated with a non-NULL skb.
      This is true only for the last fragment of the packet.
      
      This is wrong, however, since every descriptor buffer is DMA mapped and needs
      to be unmapped.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ba7e46ef
    • Ezequiel Garcia's avatar
      net: mvneta: Limit the TSO segments and adjust stop/wake thresholds · 8eef5f97
      Ezequiel Garcia authored
      Currently small MSS values may require too many TSO descriptors for
      the default queue size. This commit prevents this situation by fixing
      the maximum supported TSO number of segments to 100 and by setting a
      minimum Tx queue size. The minimum Tx queue size is set so that at
      least 2 worst-case skb can be accommodated.
      
      In addition, the queue stop and wake thresholds values are adjusted
      accordingly. The queue is stopped when there's room for only 1 worst-case
      skb and waked when the number of descriptors is half that value.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8eef5f97
    • Ezequiel Garcia's avatar
      net: mvneta: Use default NAPI weight instead of a custom one · 9fa9379d
      Ezequiel Garcia authored
      This driver has no need for a custom NAPI weigth. Use the default
      one, which has the same value.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9fa9379d
    • dingtianhong's avatar
      macvlan: add netpoll support · 688cea83
      dingtianhong authored
      Add netpoll support to macvlan devices. Based on the netpoll support in the 802.1q vlan code.
      
      Tested and macvlan could work well with netconsole.
      Signed-off-by: default avatarDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      688cea83
    • David S. Miller's avatar
      Merge branch 'cdc_ncm' · 7d507ac2
      David S. Miller authored
      Bjørn Mork says:
      
      ====================
      cdc_ncm: fixes and conversion to sysfs API
      
      After considering the comments received after the ethtool coalesce
      support was commited, I have ended up concluding that we should
      remove it again, while we can, before it hits a release. The idea
      was not well enough thought through, and all comments received
      pointed to advantages of using a sysfs based API instead.
      
      This series removes the ethtool coalesce support and replaces it
      with sysfs attributes in a driver specific group under the netdev.
      
      The first 3 patches are unrelated fixes:
      
      patch 1: reducing truesize as discussed
      patch 2: fixing a potentional buffer overrun when changing tx_max
      patch 3: prevent framing errors when changing rx_max
      
      Changes v2:
       - minor editorial changes to patch 8, as suggested by Peter Stuge
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7d507ac2
    • Bjørn Mork's avatar
      net: cdc_ncm: document the sysfs API · e3cfeefc
      Bjørn Mork authored
      Adding documentation for all the driver specific sysfs attributes.
      
      Cc: Peter Stuge <peter@stuge.se>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e3cfeefc
    • Bjørn Mork's avatar
      net: cdc_ncm: allow tuning min_tx_pkt · 39eb7e0e
      Bjørn Mork authored
      The min_tx_pkt variable decides the cutoff point where the driver
      will stop padding out NTBs to maximum size. The padding is a tradeoff
      where we use some USB bus bandwidth to allow the device to receive
      fixed size buffers. Different devices will have different optimal
      settings, spanning from no padding at all to padding every NTB.
      There is no way to automatically figure out which setting is best
      for a specific device.
      
      The default value is a reasonable tradeoff, calculated based on the
      USB packet size and out NTB max size. This may have to be changed
      along with any tx_max changes.
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      39eb7e0e
    • Bjørn Mork's avatar
      net: cdc_ncm: export NCM Transfer Block (NTB) parameters · 871578c9
      Bjørn Mork authored
      The mandatory GetNtbParameters control request is an important part of
      the host <-> device protocol negotiation in CDC NCM (and CDC MBIM). It
      gives device limits which the host must obey when configuring the
      protocol aggregation variables. The driver will enforce this by
      rejecting attempts to set any of the tunable variables to a value
      which is not supported by the device.  Exporting the parameter block
      helps userspace decide which values are allowed without resorting
      to trial and error.
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      871578c9
    • Bjørn Mork's avatar
      net: cdc_ncm: drop ethtool coalesce support · e368d27f
      Bjørn Mork authored
      The ethtool coalesce API is not applicable for this driver. Forcing
      it to fit the NCM aggregation redefined the API in a driver specific
      way, which is much worse than defining a clean new API. These ethtool
      coalesce functions have therefore been replaced by a new sysfs API.
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e368d27f
    • Bjørn Mork's avatar
      net: cdc_ncm: use sysfs for rx/tx aggregation tuning · 289507d3
      Bjørn Mork authored
      Attach a driver specific sysfs group to the netdev, and use it
      for the rx/tx aggregation variables.
      
      The datagram aggregation defined by the CDC NCM specification is
      specific to this device class (including CDC MBIM). Using the
      ethtool interrupt coalesce API as an interface to the aggregation
      parameters redefined that API in a driver specific and confusing
      way.  A sysfs group
       - makes it clear that this is a driver specific userspace API, and
       - allows us to export the real values instead of some translated
         version, and
       - lets us include more aggregation variables which were impossible
         to force into the ethtool API.
      
      Additionally, using sysfs allows tuning the driver on space
      constrained hosts where userspace tools like ethtool are undesired.
      Suggested-by: default avatarPeter Stuge <peter@stuge.se>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      289507d3
    • Bjørn Mork's avatar
      net: cdc_ncm: inform usbnet when rx buffers are reduced · f42763db
      Bjørn Mork authored
      It doesn't matter whether the buffer size goes up or down.  We have to
      keep usbnet and device syncronized to be able to split transfers at the
      correct boundaries. The spec allow skipping short packets when using
      max sized transfers.  If we don't tell usbnet about our new expected rx
      buffer size, then it will merge and/or split NTBs.  The driver does not
      support this, and the result will be lots of framing errors.
      
      Fix by always reallocating usbnet rx buffers when the rx_max value
      changes.
      
      Fixes: 68864abf ("net: cdc_ncm: support rx_max/tx_max updates when running")
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f42763db
    • Bjørn Mork's avatar
      net: cdc_ncm: always reallocate tx_curr_skb when tx_max increases · 1ba5d0ff
      Bjørn Mork authored
      We are calling usbnet_start_xmit() to flush any remaining data,
      depending on the side effect that tx_curr_skb is set to NULL,
      ensuring a new allocation using the updated tx_max.  But this
      side effect will only happen if there were any cached data ready
      to transmit. If not, then an empty tx_curr_skb is still allocated
      using the old tx_max size. Free it to avoid a buffer overrun.
      
      Fixes: 68864abf ("net: cdc_ncm: support rx_max/tx_max updates when running")
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1ba5d0ff
    • Bjørn Mork's avatar
      net: cdc_ncm: reduce skb truesize in rx path · 1e2c6117
      Bjørn Mork authored
      Cloning the big skbs we use for USB buffering chokes up TCP and
      SCTP because the socket memory limits are hitting earlier than
      they should. It is better to unconditionally copy the unwrapped
      packets to freshly allocated skbs.
      Reported-by: default avatarJim Baxter <jim_baxter@mentor.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e2c6117
    • dingtianhong's avatar
      macvlan: fix the problem when mac address changes for passthru mode · e289fd28
      dingtianhong authored
      The macvlan dev should always have the same mac address like lowerdev
      when in the passthru mode, change the mac address alone will break the
      work mechanism, so when the lowerdev or macvlan mac address changes,
      we should propagate the changes to another dev.
      
      v1->v2: Allow macvlan dev to change mac address for passthru mode and propagate to
      	lowerdev.
      
      v2->v3: Don't set the mac address to the lower dev's unicast address for
      	passthru mode when mac address changes.
      Signed-off-by: default avatarDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e289fd28
    • Chen-Yu Tsai's avatar
      net: stmmac: Handle different error codes from platform_get_irq_byname · d7ec8584
      Chen-Yu Tsai authored
      The following patch moved device tree interrupt resolution into
      platform_get_irq_byname:
      
        ad69674e of/irq: do irq resolution in platform_get_irq_byname()
      
      As a result, the function no longer only return -ENXIO on error.
      This breaks DT based probing of stmmac, as seen in test runs of
      linux-next next-20140526 cubie2-sunxi_defconfig:
      
        http://lists.linaro.org/pipermail/kernel-build-reports/2014-May/003659.html
      
      This patch makes the stmmac_platform probe function properly handle
      error codes, such as returning for deferred probing, and other codes
      returned by of_irq_get_by_name.
      Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d7ec8584
    • David S. Miller's avatar
      Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next · 31595de2
      David S. Miller authored
      John W. Linville says:
      
      ====================
      pull request: wireless-next 2014-06-02
      
      Please pull this remaining batch of updates intended for the 3.16 stream...
      
      For the mac80211 bits, Johannes says:
      
      "The remainder for -next right now is mostly fixes, and a handful of
      small new things like some CSA infrastructure, the regdb script mW/dBm
      conversion change and sending wiphy notifications."
      
      For the bluetooth bits, Gustavo says:
      
      "Some more patches for 3.16. There is nothing really special here, just a
      bunch of clean ups, fixes plus some small improvements. Please pull."
      
      For the nfc bits, Samuel says:
      
      "We have:
      
      - Felica (Type3) tags support for trf7970a
      - Type 4b tags support for port100
      - st21nfca DTS typo fix
      - A few sparse warning fixes"
      
      For the atheros bits, Kalle says:
      
      "Ben added support for setting antenna configurations. Michal improved
      warm reset so that we would not need to fall back to cold reset that
      often, an issue where ath10k stripped protected flag while in monitor
      mode and made module initialisation asynchronous to fix the problems
      with firmware loading when the driver is linked to the kernel.
      
      Luca removed unused channel_switch_beacon callbacks both from ath9k and
      ath10k. Marek fixed Protected Management Frames (PMF) when using Action
      Frames. Also we had other small fixes everywhere in the driver."
      
      Along with that, there are a handful of updates to a variety
      of drivers.  This includes updates to at76c50x-usb, ath9k, b43,
      brcmfmac, mwifiex, rsi, rtlwifi, and wil6210.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31595de2
    • Eric Dumazet's avatar
      inetpeer: get rid of ip_id_count · 73f156a6
      Eric Dumazet authored
      Ideally, we would need to generate IP ID using a per destination IP
      generator.
      
      linux kernels used inet_peer cache for this purpose, but this had a huge
      cost on servers disabling MTU discovery.
      
      1) each inet_peer struct consumes 192 bytes
      
      2) inetpeer cache uses a binary tree of inet_peer structs,
         with a nominal size of ~66000 elements under load.
      
      3) lookups in this tree are hitting a lot of cache lines, as tree depth
         is about 20.
      
      4) If server deals with many tcp flows, we have a high probability of
         not finding the inet_peer, allocating a fresh one, inserting it in
         the tree with same initial ip_id_count, (cf secure_ip_id())
      
      5) We garbage collect inet_peer aggressively.
      
      IP ID generation do not have to be 'perfect'
      
      Goal is trying to avoid duplicates in a short period of time,
      so that reassembly units have a chance to complete reassembly of
      fragments belonging to one message before receiving other fragments
      with a recycled ID.
      
      We simply use an array of generators, and a Jenkin hash using the dst IP
      as a key.
      
      ipv6_select_ident() is put back into net/ipv6/ip6_output.c where it
      belongs (it is only used from this file)
      
      secure_ip_id() and secure_ipv6_id() no longer are needed.
      
      Rename ip_select_ident_more() to ip_select_ident_segs() to avoid
      unnecessary decrement/increment of the number of segments.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      73f156a6
    • Daniel Mack's avatar
      of: of_mdio: export symbol of_mdiobus_link_phydev · e067ee33
      Daniel Mack authored
      Make of_mdiobus_link_phydev externally available.
      This fixes CONFIG_OF_MDIO=m.
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Fixes: 86f6cf41 ("net: of_mdio: add of_mdiobus_link_phydev()")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e067ee33
    • Daniel Mack's avatar
      net: of_mdio: use int type for address variable · 4cd984b0
      Daniel Mack authored
      Use int rather than u32 to fix the following warning:
      
      drivers/of/of_mdio.c:147 of_mdiobus_register() warn: unsigned 'addr' is
      never less than zero.
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Fixes: 8f838288 ("net: of_mdio: factor out code to parse a phy's 'reg' property")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4cd984b0
    • David S. Miller's avatar
      Merge branch 'netdevsync' · c7bfbe51
      David S. Miller authored
      Alexander Duyck says:
      
      ====================
      Provide common means for device address sync
      
      The following series implements a means for synchronizing both unicast and
      multicast addresses on a device interface.  The code is based on the original
      implementation of dev_uc_sync that was available for syncing a VLAN to the
      lower dev.
      
      The original reason for coming up for this patch is a driver that is still in
      the early stages of development.  The nearest driver I could find that
      appeared to have the same limitations as the driver I was working on was the
      Cisco enic driver.  For this reason I chose it as the first driver to make use
      of this interface publicly.
      
      However, I do not have a Cisco enic interface so I have only been able to
      compile test any changes made to the driver.  I tried to keep this change as
      simple as possible to avoid any issues.  Any help with testing would be
      greatly appreciated.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7bfbe51
    • Alexander Duyck's avatar
      enic: Update driver to use __dev_uc/mc_sync/unsync calls · f009618a
      Alexander Duyck authored
      This change updates the enic driver to make use of __dev_uc_sync and
      __dev_mc_sync calls.  Previously the driver was doing its own list
      management by storing the mc_addr and uc_addr list in a 32 address array.
      With this change the sync data is stored in the netdev_addr_list structures
      and instead we just track how many addresses we have written to the device.
      When we encounter 32 we stop and print a message as occurred previously with
      the old approach.
      
      Other than the core change the only other bit needed was to propagate the
      constant attribute with the MAC address as there were several spots where
      is twas only passed as a u8 * instead of a const u8 *.
      
      This patch is meant to maintain the original functionality without the use
      of the mc_addr and uc_addr arrays.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Acked-by: default avatarGovindarajulu Varadarajan <_govind@gmx.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f009618a
    • Alexander Duyck's avatar
      net: Add support for device specific address syncing · 670e5b8e
      Alexander Duyck authored
      This change provides a function to be used in order to break the
      ndo_set_rx_mode call into a set of address add and remove calls.  The code
      is based on the implementation of dev_uc_sync/dev_mc_sync.  Since they
      essentially do the same thing but with only one dev I simply named my
      functions __dev_uc_sync/__dev_mc_sync.
      
      I also implemented an unsync version of the functions as well to allow for
      cleanup on close.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      670e5b8e
    • David S. Miller's avatar
      Merge branch '6lowpan-next' · 3e820811
      David S. Miller authored
      Alexander Aring says:
      
      ====================
      6lowpan: fragmentation fixes
      
      This patch series fix the 6LoWPAN fragmentation which are in two cases broken.
      
      The first case is if we have exactly two 6LoWPAN fragments only. This is fixed
      by patch "6lowpan_rtnl: fix fragmentation with two fragments".
      The second case is a off by one issue if we have payload which hits the fragment
      boundary.
      
      Both issues are introduced by commit d4b2816d
      ("6lowpan: fix fragmentation").
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3e820811
    • Alexander Aring's avatar
      6lowpan_rtnl: fix off by one while fragmentation · eb06481d
      Alexander Aring authored
      This patch fix a off by one error while fragmentation. If the frag_cap
      value is equal to skb_unprocessed value we need to stop the
      fragmentation loop because the last fragment which has a size of
      skb_unprocessed fits into the frag capability size.
      
      This issue was introduced by commit d4b2816d
      ("6lowpan: fix fragmentation").
      Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eb06481d