1. 24 Aug, 2015 16 commits
  2. 23 Aug, 2015 18 commits
    • Jiri Benc's avatar
      route: fix breakage after moving lwtunnel state · 751a587a
      Jiri Benc authored
      __recnt and related fields need to be in its own cacheline for performance
      reasons. Commit 61adedf3 ("route: move lwtunnel state to dst_entry")
      broke that on 32bit archs, causing BUILD_BUG_ON in dst_hold to be triggered.
      
      This patch fixes the breakage by moving the lwtunnel state to the end of
      dst_entry on 32bit archs. Unfortunately, this makes it share the cacheline
      with __refcnt and may affect performance, thus further patches may be
      needed.
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Fixes: 61adedf3 ("route: move lwtunnel state to dst_entry")
      Signed-off-by: default avatarJiri Benc <jbenc@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      751a587a
    • David S. Miller's avatar
      Merge tag 'linux-can-next-for-4.3-20150820' of... · 31fbde99
      David S. Miller authored
      Merge tag 'linux-can-next-for-4.3-20150820' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      
      Marc Kleine-Budde says:
      
      ====================
      this is a pull request of a two patches for net-next.
      
      The first patch is by Nik Nyby and fixes a typo in a function name. The
      second patch by Lucas Stach demotes register output to debug level.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31fbde99
    • David S. Miller's avatar
      Merge branch 'tipc-failover-fixes' · c5f98b56
      David S. Miller authored
      Jon Maloy says:
      
      ====================
      tipc: fix link failover/synch problems
      
      We fix three problems with the new link failover/synch implementation,
      which was introduced earlier in this release cycle. They are all related
      to situations where there is a very short interval between the disabling
      and enabling of interfaces.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c5f98b56
    • Jon Paul Maloy's avatar
      tipc: fix stale link problem during synchronization · 2be80c2d
      Jon Paul Maloy authored
      Recent changes to the link synchronization means that we can now just
      drop packets arriving on the synchronizing link before the synch point
      is reached. This has lead to significant simplifications to the
      implementation, but also turns out to have a flip side that we need
      to consider.
      
      Under unlucky circumstances, the two endpoints may end up
      repeatedly dropping each other's packets, while immediately
      asking for retransmission of the same packets, just to drop
      them once more. This pattern will eventually be broken when
      the synch point is reached on the other link, but before that,
      the endpoints may have arrived at the retransmission limit
      (stale counter) that indicates that the link should be broken.
      We see this happen at rare occasions.
      
      The fix for this is to not ask for retransmissions when a link is in
      state LINK_SYNCHING. The fact that the link has reached this state
      means that it has already received the first SYNCH packet, and that it
      knows the synch point. Hence, it doesn't need any more packets until the
      other link has reached the synch point, whereafter it can go ahead and
      ask for the missing packets.
      
      However, because of the reduced traffic on the synching link that
      follows this change, it may now take longer to discover that the
      synch point has been reached. We compensate for this by letting all
      packets, on any of the links, trig a check for synchronization
      termination. This is possible because the packets themselves don't
      contain any information that is needed for discovering this condition.
      Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2be80c2d
    • Jon Paul Maloy's avatar
      tipc: interrupt link synchronization when a link goes down · 5ae2f8e6
      Jon Paul Maloy authored
      When we introduced the new link failover/synch mechanism
      in commit 6e498158
      ("tipc: move link synch and failover to link aggregation level"),
      we missed the case when the non-tunnel link goes down during the link
      synchronization period. In this case the tunnel link will remain in
      state LINK_SYNCHING, something leading to unpredictable behavior when
      the failover procedure is initiated.
      
      In this commit, we ensure that the node and remaining link goes
      back to regular communication state (SELF_UP_PEER_UP/LINK_ESTABLISHED)
      when one of the parallel links goes down. We also ensure that we don't
      re-enter synch mode if subsequent SYNCH packets arrive on the remaining
      link.
      Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ae2f8e6
    • Jon Paul Maloy's avatar
      tipc: eliminate risk of premature link setup during failover · 17b20630
      Jon Paul Maloy authored
      When a link goes down, and there is still a working link towards its
      destination node, a failover is initiated, and the failed link is not
      allowed to re-establish until that procedure is finished. To ensure
      this, the concerned link endpoints are set to state LINK_FAILINGOVER,
      and the node endpoints to NODE_FAILINGOVER during the failover period.
      
      However, if the link reset is due to a disabled bearer, the corres-
      ponding link endpoint is deleted, and only the node endpoint knows
      about the ongoing failover. Now, if the disabled bearer is re-enabled
      during the failover period, the discovery mechanism may create a new
      link endpoint that is ready to be established, despite that this is not
      permitted. This situation may cause both the ongoing failover and any
      subsequent link synchronization to fail.
      
      In this commit, we ensure that a newly created link goes directly to
      state LINK_FAILINGOVER if the corresponding node state is
      NODE_FAILINGOVER. This eliminates the problem described above.
      
      Furthermore, we tighten the criteria for which packets are allowed
      to end a failover state in the function tipc_node_check_state().
      By checking that the receiving link is up and running, instead of just
      checking that it is not in failover mode, we eliminate the risk that
      protocol packets from the re-created link may cause the failover to
      be prematurely terminated.
      Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      17b20630
    • David S. Miller's avatar
      Merge branch 'nps_enet_fixes' · 7f629be1
      David S. Miller authored
      Noam Camus says:
      
      ====================
      *** nps_enet fixups ***
      
      Change v2
      TX done is handled back with NAPI poll.
      
      Change v1
      This patch set is a bunch of fixes to make nps_enet work correctly with
      all platforms, i.e. real device, emulation system, and simulation system.
      The main trigger for this patch set was that in our emulation system
      the TX end interrupt is "edge-sensitive" and therefore we cannot use the
      cause register since it is not sticky.
      Also:
      TX is handled during HW interrupt context and not NAPI job.
      race with TX done was fixed.
      added acknowledge for TX when device is "level sensitive".
      enable drop of control frames which is not needed for regular usage.
      
      So most of this patch set is about TX handling, which is now more complete.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f629be1
    • Noam Camus's avatar
      NET: nps_enet: minor namespace cleanup · 41493795
      Noam Camus authored
      We define buf_int_enable in the minimal namespace it is used.
      Signed-off-by: default avatarNoam Camus <noamc@ezchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41493795
    • Noam Camus's avatar
      NET: nps_enet: TX done acknowledge. · 3d99b74a
      Noam Camus authored
      This is needed for when TX done interrupt is in
      "level mode".
      For example it is true for some simulators of this device.
      Signed-off-by: default avatarNoam Camus <noamc@ezchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3d99b74a
    • Noam Camus's avatar
      NET: nps_enet: drop control frames · de671567
      Noam Camus authored
      We set controller to drop control frames and not trying
      to pass them on. This is only needed for debug reasons.
      Signed-off-by: default avatarNoam Camus <noamc@ezchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      de671567
    • Noam Camus's avatar
      NET: nps_enet: TX done race condition · 93fcf83e
      Noam Camus authored
      We need to set tx_skb pointer before send frame.
      If we receive interrupt before we set pointer we will try
      to free SKB with wrong pointer.
      Now we are sure that SKB pointer will never be NULL during
      handling TX done and check is removed.
      Signed-off-by: default avatarNoam Camus <noamc@ezchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93fcf83e
    • Noam Camus's avatar
      NET: nps_enet: replace use of cause register · 0dd20f3c
      Noam Camus authored
      When interrupt is received we read directly from control
      register for RX/TX instead of reading cause register
      since this register fails to indicate TX done when
      TX interrupt is "edge mode".
      Signed-off-by: default avatarNoam Camus <noamc@ezchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0dd20f3c
    • David S. Miller's avatar
      Merge branch 'gro_tunnels' · 1728369e
      David S. Miller authored
      Tom Herbert says:
      
      ====================
      gro: Fixes for tunnels and GRO
      
      This patch set addresses some issue related to tunneling and GRO:
      
      - Fix remote checksum offload to properly deal with frag0 in GRO.
      - Add support for GRO at VXLAN tunnel (call gro_cells)
      
      Testing: Ran one netperf TCP_STREAM to highlight impact of different
      configurations:
      
      GUE
        Zero UDP checksum
          4628.42 MBps
        UDP checksums enabled
          6800.51 MBps
        UDP checksums and remote checksum offload
          7663.82 MBps
        UDP checksums and remote checksum offload using no-partial
          7287.25 MBps
      
      VXLAN
        Zero UDP checksum
          4112.02
        UDP checksums enabled
          6785.80 MBps
        UDP checksums and remote checksum offload
          7075.56 MBps
      
      v2:
        - Drop "gro: Pull headers into skb head for 1st skb in gro list"
          from patch set
        - In vxlan_remcsum and gue_remcsum return immediately if remcsum
          processing was already done
        - Add gro callbacks for sit offload
        - Use WARN_ON_ONCE if we get a GUE protocol that does not have
          GRO offload support
      
      v3:
        - Don't restore gro callbacks for sit offload
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1728369e
    • Tom Herbert's avatar
      fou: Do WARN_ON_ONCE in gue_gro_receive for bad proto callbacks · 27013661
      Tom Herbert authored
      Do WARN_ON_ONCE instead of WARN_ON in gue_gro_receive when the offload
      callcaks are bad (either don't exist or gro_receive is not specified).
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27013661
    • Tom Herbert's avatar
      vxlan: GRO support at tunnel layer · 58ce31cc
      Tom Herbert authored
      Add calls to gro_cells infrastructure to do GRO when receiving on a tunnel.
      
      Testing:
      
      Ran 200 netperf TCP_STREAM instance
      
        - With fix (GRO enabled on VXLAN interface)
      
          Verify GRO is happening.
      
          9084 MBps tput
          3.44% CPU utilization
      
        - Without fix (GRO disabled on VXLAN interface)
      
          Verified no GRO is happening.
      
          9084 MBps tput
          5.54% CPU utilization
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58ce31cc
    • Tom Herbert's avatar
      gro: Fix remcsum offload to deal with frags in GRO · b7fe10e5
      Tom Herbert authored
      The remote checksum offload GRO did not consider the case that frag0
      might be in use. This patch fixes that by accessing headers using the
      skb_gro functions and not saving offsets relative to skb->head.
      Signed-off-by: default avatarTom Herbert <tom@herbertland.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b7fe10e5
    • Chas Williams's avatar
      net/xen-netfront: only clean up queues if present · 9a873c71
      Chas Williams authored
      If you simply load and unload the module without starting the interfaces,
      the queues are never created and you get a bad pointer dereference.
      Signed-off-by: default avatarChas Williams <3chas3@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9a873c71
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: set 802.1Q mode to Fallback · f5117ce4
      Vivien Didelot authored
      The current Secure port mode requires the port-based VLANs to also be
      valid in the 802.1Q VLAN Table Unit. The current hardware bridging
      support only configures the port-based VLANs, thus is broken.
      
      A new patchset is required to adapt the hardware bridging code to fully
      support the Secure port mode.
      
      In the meantime, change the 802.1Q mode of every ports to Fallback,
      which filtering is more permissive, and doesn't add this restriction to
      handle port-based and tagged-based VLANs.
      
      Fixes: 8efdda4a ("net: dsa: mv88e6xxx: use port 802.1Q mode Secure")
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f5117ce4
  3. 21 Aug, 2015 5 commits
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · dc25b258
      David S. Miller authored
      Conflicts:
      	drivers/net/usb/qmi_wwan.c
      
      Overlapping additions of new device IDs to qmi_wwan.c
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc25b258
    • David S. Miller's avatar
      enic: Fix build failure with SRIOV disabled. · 1a69205c
      David S. Miller authored
      err_out_vnic_unregister is used regardless of whether
      SRIOV is enabled or not.
      Reported-by: default avatarJesse Brandeburg <jesse.brangeburg@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a69205c
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · a9e01ed9
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter updates for net-next
      
      This is second pull request includes the conflict resolution patch that
      resulted from the updates that we got for the conntrack template through
      kmalloc. No changes with regards to the previously sent 15 patches.
      
      The following patchset contains Netfilter updates for your net-next tree, they
      are:
      
      1) Rework the existing nf_tables counter expression to make it per-cpu.
      
      2) Prepare and factor out common packet duplication code from the TEE target so
         it can be reused from the new dup expression.
      
      3) Add the new dup expression for the nf_tables IPv4 and IPv6 families.
      
      4) Convert the nf_tables limit expression to use a token-based approach with
         64-bits precision.
      
      5) Enhance the nf_tables limit expression to support limiting at packet byte.
         This comes after several preparation patches.
      
      6) Add a burst parameter to indicate the amount of packets or bytes that can
         exceed the limiting.
      
      7) Add netns support to nfacct, from Andreas Schultz.
      
      8) Pass the nf_conn_zone structure instead of the zone ID in nf_tables to allow
         accessing more zone specific information, from Daniel Borkmann.
      
      9) Allow to define zone per-direction to support netns containers with
         overlapping network addressing, also from Daniel.
      
      10) Extend the CT target to allow setting the zone based on the skb->mark as a
         way to support simple mappings from iptables, also from Daniel.
      
      11) Make the nf_tables payload expression aware of the fact that VLAN offload
          may have removed a vlan header, from Florian Westphal.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a9e01ed9
    • Pablo Neira Ayuso's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 81bf1c64
      Pablo Neira Ayuso authored
      Resolve conflicts with conntrack template fixes.
      
      Conflicts:
      	net/netfilter/nf_conntrack_core.c
      	net/netfilter/nf_synproxy_core.c
      	net/netfilter/xt_CT.c
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      81bf1c64
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0bad9098
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael Wysocki:
       "These fix a recent regression in the ACPI backlight code and a memory
        leak in the Exynos cpufreq driver.
      
        Specifics:
      
         - Fix a recently introduced issue in the ACPI backlight code which
           causes lockdep to complain about a circular lock dependency during
           initialization (Hans de Goede).
      
         - Fix a possible memory during initialization in the Exynos cpufreq
           driver (Shailendra Verma)"
      
      * tag 'pm+acpi-4.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: exynos: Fix for memory leak in case SoC name does not match
        ACPI / video: Fix circular lock dependency issue in the video-detect code
      0bad9098
  4. 20 Aug, 2015 1 commit
    • David S. Miller's avatar
      Merge branch 'lwt-ipv6' · 08617f47
      David S. Miller authored
      Jiri Benc says:
      
      ====================
      lwtunnel: per route ipv6 support for vxlan
      
      v3: Moved LWTUNNEL_ENCAP_IP6 definition in patch 13.
      v2: Fixed issues in patch 4 pointed out by Alexei.
      
      This series enables IPv6 tunnels based on lwtunnel infrastructure. Only
      vxlan is supported for now.
      
      Tested in all combinations of IPv4 over IPv6, IPv6 over IPv4 and IPv6 over
      IPv6.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      08617f47