1. 18 Oct, 2016 10 commits
  2. 17 Oct, 2016 14 commits
  3. 15 Oct, 2016 4 commits
    • Julia Lawall's avatar
      ipvlan: constify l3mdev_ops structure · ab530f63
      Julia Lawall authored
      This l3mdev_ops structure is only stored in the l3mdev_ops field of a
      net_device structure.  This field is declared const, so the l3mdev_ops
      structure can be declared as const also.  Additionally drop the
      __read_mostly annotation.
      
      The semantic patch that adds const is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct l3mdev_ops i@p = { ... };
      
      @ok@
      identifier r.i;
      struct net_device *e;
      position p;
      @@
      e->l3mdev_ops = &i@p;
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct l3mdev_ops e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct l3mdev_ops i = { ... };
      // </smpl>
      
      The effect on the layout of the .o file is shown by the following output
      of the size command, first before then after the transformation:
      
         text    data     bss     dec     hex filename
         7364     466      52    7882    1eca drivers/net/ipvlan/ipvlan_main.o
         7412     434      52    7898    1eda drivers/net/ipvlan/ipvlan_main.o
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ab530f63
    • David S. Miller's avatar
      Merge branch 'ila-cached-route' · f9dbd5a3
      David S. Miller authored
      Tom Herbert says:
      
      ====================
      ila: Cache a route in ILA lwt structure
      
      Add a dst_cache to ila_lwt structure. This holds a cached route for the
      translated address. In ila_output we now perform a route lookup after
      translation and if possible (destination in original route is full 128
      bits) we set the dst_cache. Subsequent calls to ila_output can then use
      the cache to avoid the route lookup.
      
      This eliminates the need to set the gateway on ILA routes as previously
      was being done. Now we can do somthing like:
      
      ./ip route add 3333::2000:0:0:2/128 encap ila 2222:0:0:2 \
          csum-mode neutral-map dev eth0  ## No via needed!
      
      Also, add destroy_state to lwt ops. We need this do destroy the
      dst_cache.
      
      - v2
        - Fixed comparisons to fc_dst_len to make comparison against number
          of bits in data structure not bytes.
        - Move destroy_state under build_state (requested by Jiri)
        - Other minor cleanup
      
      Tested:
      
      Running 200 TCP_RR streams:
      
        Baseline, no ILA
      
          1730716 tps
          102/170/313 50/90/99% latencies
          88.11 CPU utilization
      
        Using ILA in both directions
      
          1680428 tps
          105/176/325 50/90/99% latencies
          88.16 CPU utilization
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f9dbd5a3
    • Tom Herbert's avatar
      ila: Cache a route to translated address · 79ff2fc3
      Tom Herbert authored
      Add a dst_cache to ila_lwt structure. This holds a cached route for the
      translated address. In ila_output we now perform a route lookup after
      translation and if possible (destination in original route is full 128
      bits) we set the dst_cache. Subsequent calls to ila_output can then use
      the cache to avoid the route lookup.
      
      This eliminates the need to set the gateway on ILA routes as previously
      was being done. Now we can do something like:
      
      ./ip route add 3333::2000:0:0:2/128 encap ila 2222:0:0:2 \
          csum-mode neutral-map dev eth0  ## No via needed!
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79ff2fc3
    • Tom Herbert's avatar
      lwtunnel: Add destroy state operation · 1104d9ba
      Tom Herbert authored
      Users of lwt tunnels may set up some secondary state in build_state
      function. Add a corresponding destroy_state function to allow users to
      clean up state. This destroy state function is called from lwstate_free.
      Also, we now free lwstate using kfree_rcu so user can assume structure
      is not freed before rcu.
      Acked-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1104d9ba
  4. 14 Oct, 2016 12 commits
    • David S. Miller's avatar
      Merge branch 'fjes-next' · 02dc7658
      David S. Miller authored
      Taku Izumi says:
      
      ====================
      FUJITSU Extended Socket driver version 1.2
      
      This patchset updates FUJITSU Extended Socket network driver into version 1.2.
      This includes the following enhancements:
        - ethtool -d support
        - ethtool -S enhancement
        - ethtool -w/-W support
        - Add some debugging feature (tracepoints etc)
      
      v1 -> v2:
        - Use u64 instead of phys_addr_t as TP_STRUCT__entry
        - Use ethtool facility to achieve debug mode instead of using debugfs
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02dc7658
    • Taku Izumi's avatar
      8f87d775
    • Taku Izumi's avatar
      fjes: Add debugfs entry for EP status information in fjes driver · c753119e
      Taku Izumi authored
      This patch adds debugfs entry to show EP status information.
      You can get each EP's status information like the following:
      
        # cat /sys/kernel/debug/fjes/fjes.0/status
      
      EPID    STATUS           SAME_ZONE        CONNECTED
      ep0     shared           Y                Y
      ep1     -                -                -
      ep2     unshared         N                N
      ep3     unshared         N                N
      ep4     unshared         N                N
      ep5     unshared         N                N
      ep6     unshared         N                N
      ep7     unshared         N                N
      Signed-off-by: default avatarTaku Izumi <izumi.taku@jp.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c753119e
    • Taku Izumi's avatar
      fjes: ethtool -w and -W support for fjes driver · b6ba737d
      Taku Izumi authored
      This patch adds implementation of supporting
      ethtool -w and -W for fjes driver.
      
      You can enable and disable firmware debug mode by
      using ethtool -W, and also retrieve firmware
      activity information by using ethtool -w.
      
      This is useful for debugging.
      Signed-off-by: default avatarTaku Izumi <izumi.taku@jp.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6ba737d
    • Taku Izumi's avatar
      fjes: Add tracepoints in fjes driver · 82f6aea8
      Taku Izumi authored
      This patch adds tracepoints in fjes driver.
      This is useful for debugging purpose.
      Signed-off-by: default avatarTaku Izumi <izumi.taku@jp.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      82f6aea8
    • Taku Izumi's avatar
      fjes: Enhance ethtool -S for fjes driver · 21b7efbc
      Taku Izumi authored
      This patch enhances ethtool -S for fjes driver so that
      EP related statistics can be retrieved.
      
      The following statistics can be displayed via ethtool -S:
      
           ep%d_com_regist_buf_exec
           ep%d_com_unregist_buf_exec
           ep%d_send_intr_rx
           ep%d_send_intr_unshare
           ep%d_send_intr_zoneupdate
           ep%d_recv_intr_rx
           ep%d_recv_intr_unshare
           ep%d_recv_intr_stop
           ep%d_recv_intr_zoneupdate
           ep%d_tx_buffer_full
           ep%d_tx_dropped_not_shared
           ep%d_tx_dropped_ver_mismatch
           ep%d_tx_dropped_buf_size_mismatch
           ep%d_tx_dropped_vlanid_mismatch
      Signed-off-by: default avatarTaku Izumi <izumi.taku@jp.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      21b7efbc
    • Taku Izumi's avatar
      fjes: ethtool -d support for fjes driver · 462d8074
      Taku Izumi authored
      This patch adds implementation of supporting
      ethtool -d for fjes driver. By using ethtool -d,
      you can get registers dump of Exetnded socket device.
      
        # ethtool -d es0
      
      Offset          Values
      ------          ------
      0x0000:         01 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00
      0x0010:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x0020:         02 00 00 80 02 00 00 80 64 a6 58 08 07 00 00 00
      0x0030:         00 00 00 00 28 80 00 00 00 00 f9 e3 06 00 00 00
      0x0040:         00 00 00 00 18 00 00 00 80 a4 58 08 07 00 00 00
      0x0050:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x0060:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x0070:         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x0080:         00 00 00 00 00 00 e0 7f 00 00 01 00 00 00 01 00
      0x0090:         00 00 00 00
      Signed-off-by: default avatarTaku Izumi <izumi.taku@jp.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      462d8074
    • David S. Miller's avatar
      Merge branch 'qed-next' · 9c7664cb
      David S. Miller authored
      Manish Chopra says:
      
      ====================
      qed*: driver updates
      
      There are several new additions in this series;
      Most are connected to either Tx offloading or Rx classifications
      [either fastpath changes or supporting configuration].
      
      In addition, there's a single IOV enhancement.
      
      Please consider applying this series to `net-next'.
      
      V2->V3:
      Fixes below kbuild warning
      call to '__compiletime_assert_60' declared with
      attribute error: Need native word sized stores/loads for atomicity.
      
      V1->V2:
      Added a fix for the race in ramrod handling
      pointed by Eric Dumazet [patch 7].
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9c7664cb
    • Manish Chopra's avatar
      qed: Fix possible race when reading firmware return code. · d5df7688
      Manish Chopra authored
      While handling SPQ ramrod completion, there is a possible race
      where driver might not read updated fw return code based on
      ramrod completion done. This patch ensures that fw return code
      is written first and then completion done flag is updated
      using appropriate memory barriers.
      Signed-off-by: default avatarManish Chopra <manish.chopra@caviumnetworks.com>
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@caviumnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d5df7688
    • Yuval Mintz's avatar
      qed: Handle malicious VFs events · 7eff82b0
      Yuval Mintz authored
      Malicious VFs might be caught in several different methods:
        - Misusing their bar permission and being blocked by hardware.
        - Misusing their fastpath logic and being blocked by firmware.
        - Misusing their interaction with their PF via hw-channel,
          and being blocked by PF driver.
      
      On the first two items, firmware would indicate to driver that
      the VF is to be considered malicious, but would sometime still
      allow the VF to communicate with the PF [depending on the exact
      nature of the malicious activity done by the VF].
      The current existing logic on the PF side lacks handling of such events,
      and might allow the PF to perform some incorrect configuration on behalf
      of a VF that was previously indicated as malicious.
      
      The new scheme is simple -
      Once the PF determines a VF is malicious it would:
       a. Ignore any further requests on behalf of the VF-driver.
       b. Prevent any configurations initiated by the hyperuser for
          the malicious VF, as firmware isn't willing to serve such.
      
      The malicious indication would be cleared upon the VF flr,
      after which it would become usable once again.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@caviumnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7eff82b0
    • Yuval Mintz's avatar
      qed: Allow chance for fast ramrod completions · c59f5291
      Yuval Mintz authored
      Whenever a ramrod is being sent for some device configuration,
      the driver is going to sleep at least 5ms between each iteration
      of polling on the completion of the ramrod.
      
      However, in almost every configuration scenario the firmware
      would be able to comply and complete the ramrod in a manner of
      several usecs. This is especially important in cases where there
      might be a lot of sequential configurations applying to the hardware
      [e.g., RoCE], in which case the existing scheme might cause some
      visible user delays.
      
      This patch changes the completion scheme - instead of immediately
      starting to sleep for a 'long' period, allow the device to quickly
      poll on the first iteration after a couple of usecs.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@caviumnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c59f5291
    • Yuval Mintz's avatar
      qed*: Allow unicast filtering · 7b7e70f9
      Yuval Mintz authored
      Apparently qede fails to set IFF_UNICAST_FLT, and as a result is not
      actually performing unicast MAC filtering.
      While we're at it - relax a hard-coded limitation that limits each
      interface into using at most 15 unicast MAC addresses before turning
      promiscuous. Instead utilize the HW resources to their limit.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@caviumnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7b7e70f9