1. 23 5月, 2017 5 次提交
  2. 22 5月, 2017 30 次提交
    • G
      macsec: double accounting of dropped rx/tx packets · 863483c9
      Girish Moodalbail 提交于
      The macsec implementation shouldn't account for rx/tx packets that are
      dropped in the netdev framework. The netdev framework itself accounts
      for such packets by atomically updating struct net_device`rx_dropped and
      struct net_device`tx_dropped fields. Later on when the stats for macsec
      link is retrieved, the packets dropped in netdev framework will be
      included in dev_get_stats() after calling macsec.c`macsec_get_stats64()
      Signed-off-by: NGirish Moodalbail <girish.moodalbail@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      863483c9
    • D
      net: Fix parisc SCM_TIMESTAMPING_PKTINFO value. · f5a64d64
      David S. Miller 提交于
      Needs to follow the existing sequence.
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f5a64d64
    • D
      net: Define SCM_TIMESTAMPING_PKTINFO on all architectures. · 1c4f676a
      David S. Miller 提交于
      A definition was only provided for asm-generic/socket.h
      using platforms, define it for the others as well
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c4f676a
    • E
      tcp: fix tcp_probe_timer() for TCP_USER_TIMEOUT · 4ab68879
      Eric Dumazet 提交于
      TCP_USER_TIMEOUT is still converted to jiffies value in
      icsk_user_timeout
      
      So we need to make a conversion for the cases HZ != 1000
      
      Fixes: 9a568de4 ("tcp: switch TCP TS option (RFC 7323) to 1ms clock")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NSoheil Hassas Yeganeh <soheil@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4ab68879
    • S
      ipv6: drop unused variables in seg6_genl_dumphac · 0a9fc39e
      stephen hemminger 提交于
      THe seg6_pernet_data variable was set but never used.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0a9fc39e
    • S
      fou: make local function static · 9dc621af
      stephen hemminger 提交于
      The build header functions are not used by any other code.
      
      net/ipv6/fou6.c:36:5: warning: no previous prototype for ‘fou6_build_header’ [-Wmissing-prototypes]
      net/ipv6/fou6.c:54:5: warning: no previous prototype for ‘gue6_build_header’ [-Wmissing-prototypes]
      
      Need to do some code rearranging to satisfy different Kconfig possiblities.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9dc621af
    • S
      tcpnv: do not export local function · c718c6d6
      stephen hemminger 提交于
      The TCP New Vegas congestion control was exporting an internal
      function tcpnv_get_info which is not used by any other in tree
      kernel code. Make it static.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c718c6d6
    • S
      inet: fix warning about missing prototype · 9691724e
      stephen hemminger 提交于
      The prototype for inet_rcv_saddr_equal was not being included.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9691724e
    • S
      ila: propagate error code in ila_output · 9e7b19c5
      stephen hemminger 提交于
      This warning:
      net/ipv6/ila/ila_lwt.c: In function ‘ila_output’:
      net/ipv6/ila/ila_lwt.c:42:6: warning: variable ‘err’ set but not used [-Wunused-but-set-variable]
      
      It looks like the code attempts to set propagate different error
      values, but always returned -EINVAL.
      
      Compile tested only. Needs review by original author.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9e7b19c5
    • S
      dcb: enforce minimum length on IEEE_APPS attribute · 332b4fc8
      stephen hemminger 提交于
      Found by reviewing the warning about unused policy table.
      The code implies that it meant to check for size, but since
      it unrolled the loop for attribute validation that is never used.
      Instead do explicit check for attribute.
      
      Compile tested only. Needs review by original author.
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      332b4fc8
    • D
      Merge branch 'net-extend-socket-timestamping-API' · dae37055
      David S. Miller 提交于
      Miroslav Lichvar says:
      
      ====================
      Extend socket timestamping API
      
      Changes v5->v6:
      - fixed skb_is_swtx_tstamp() when OPT_TX_SWHW is disabled and improved
        its description
      - improved OPT_PKTINFO documentation
      - improved scm_timestamping documentation
      
      Changes v4->v5:
      - fixed initialization of reserved fields in struct scm_ts_pktinfo
      
      Changes v3->v4:
      - added reserved fields to struct scm_ts_pktinfo
      - replaced patch fixing false SW timestamps with a documentation fix
      - updated OPT_TX_SWHW patch to handle false SW timestamps
      
      Changes v2->v3:
      - modified struct scm_ts_pktinfo to use fixed-width integer types
      - added WARN_ON_ONCE for missing RCU lock in dev_get_by_napi_id()
      - modified dev_get_by_napi_id() to not return dev in unexpected branch
      - modified recv to return SCM_TIMESTAMPING_PKTINFO even if the interface
        index is unknown
      
      Changes v1->v2:
      - added separate patch for new NAPI functions
      - split code from __sock_recv_timestamp() for better readability
      - fixed RCU locking
      - fixed compiler warning (missing case in switch in first patch)
      - inline sw_tx_timestamp() in its only user
      
      Changes RFC->v1:
      - reworked SOF_TIMESTAMPING_OPT_PKTINFO patch to not add new fields to
        skb shared info (net device is now looked up by napi_id), not require
        any changes in drivers, and restrict the cmsg to incoming packets
      - renamed SOF_TIMESTAMPING_OPT_MULTIMSG to SOF_TIMESTAMPING_OPT_TX_SWHW
        and fixed its description
      - moved struct scm_ts_pktinfo from errqueue.h to net_tstamp.h as it
        can't be received from the error queue anymore
      - improved commit descriptions and removed incorrect comment
      
      This patchset adds new options to the timestamping API that will be
      useful for NTP implementations and possibly other applications.
      
      The first patch specifies a timestamp filter for NTP packets. The second
      patch updates drivers that can timestamp all packets, or need to list
      the filter as unsupported. There is no attempt to add the support to the
      phyter driver.
      
      The third patch adds two helper functions working with NAPI ID, which is
      needed by the next patch. The fourth patch adds a new option to get a
      new control message with the L2 length and interface index for incoming
      packets with hardware timestamps.
      
      The fifth patch fixes documentation on number of non-zero fields in
      scm_timestamping and warns about false software timestamps when
      SO_TIMESTAMP(NS) is combined with SCM_TIMESTAMPING.
      
      The sixth patch adds a new option to request both software and hardware
      timestamps for outgoing packets. The seventh patch updates drivers that
      assumed software timestamping cannot be used together with hardware
      timestamping.
      
      The patches have been tested on x86_64 machines with igb and e1000e
      drivers.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dae37055
    • M
      net: ethernet: update drivers to make both SW and HW TX timestamps · 74abc9b1
      Miroslav Lichvar 提交于
      Some drivers were calling the skb_tx_timestamp() function only when
      a hardware timestamp was not requested. Now that applications can use
      the SOF_TIMESTAMPING_OPT_TX_SWHW option to request both software and
      hardware timestamps, the drivers need to be modified to unconditionally
      call skb_tx_timestamp().
      
      CC: Richard Cochran <richardcochran@gmail.com>
      CC: Willem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      74abc9b1
    • M
      net: allow simultaneous SW and HW transmit timestamping · b50a5c70
      Miroslav Lichvar 提交于
      Add SOF_TIMESTAMPING_OPT_TX_SWHW option to allow an outgoing packet to
      be looped to the socket's error queue with a software timestamp even
      when a hardware transmit timestamp is expected to be provided by the
      driver.
      
      Applications using this option will receive two separate messages from
      the error queue, one with a software timestamp and the other with a
      hardware timestamp. As the hardware timestamp is saved to the shared skb
      info, which may happen before the first message with software timestamp
      is received by the application, the hardware timestamp is copied to the
      SCM_TIMESTAMPING control message only when the skb has no software
      timestamp or it is an incoming packet.
      
      While changing sw_tx_timestamp(), inline it in skb_tx_timestamp() as
      there are no other users.
      
      CC: Richard Cochran <richardcochran@gmail.com>
      CC: Willem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b50a5c70
    • M
      net: fix documentation of struct scm_timestamping · 67953d47
      Miroslav Lichvar 提交于
      The scm_timestamping struct may return multiple non-zero fields, e.g.
      when both software and hardware RX timestamping is enabled, or when the
      SO_TIMESTAMP(NS) option is combined with SCM_TIMESTAMPING and a false
      software timestamp is generated in the recvmsg() call in order to always
      return a SCM_TIMESTAMP(NS) message.
      
      CC: Richard Cochran <richardcochran@gmail.com>
      CC: Willem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      67953d47
    • M
      net: add new control message for incoming HW-timestamped packets · aad9c8c4
      Miroslav Lichvar 提交于
      Add SOF_TIMESTAMPING_OPT_PKTINFO option to request a new control message
      for incoming packets with hardware timestamps. It contains the index of
      the real interface which received the packet and the length of the
      packet at layer 2.
      
      The index is useful with bonding, bridges and other interfaces, where
      IP_PKTINFO doesn't allow applications to determine which PHC made the
      timestamp. With the L2 length (and link speed) it is possible to
      transpose preamble timestamps to trailer timestamps, which are used in
      the NTP protocol.
      
      While this information could be provided by two new socket options
      independently from timestamping, it doesn't look like they would be very
      useful. With this option any performance impact is limited to hardware
      timestamping.
      
      Use dev_get_by_napi_id() to get the device and its index. On kernels
      with disabled CONFIG_NET_RX_BUSY_POLL or drivers not using NAPI, a zero
      index will be returned in the control message.
      
      CC: Richard Cochran <richardcochran@gmail.com>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aad9c8c4
    • M
      net: add function to retrieve original skb device using NAPI ID · 90b602f8
      Miroslav Lichvar 提交于
      Since commit b6858177 ("net: Make skb->skb_iif always track
      skb->dev") skbs don't have the original index of the interface which
      received the packet. This information is now needed for a new control
      message related to hardware timestamping.
      
      Instead of adding a new field to skb, we can find the device by the NAPI
      ID if it is available, i.e. CONFIG_NET_RX_BUSY_POLL is enabled and the
      driver is using NAPI. Add dev_get_by_napi_id() and also skb_napi_id() to
      hide the CONFIG_NET_RX_BUSY_POLL ifdef.
      
      CC: Richard Cochran <richardcochran@gmail.com>
      Suggested-by: NWillem de Bruijn <willemb@google.com>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      90b602f8
    • M
      net: ethernet: update drivers to handle HWTSTAMP_FILTER_NTP_ALL · e3412575
      Miroslav Lichvar 提交于
      Include HWTSTAMP_FILTER_NTP_ALL in net_hwtstamp_validate() as a valid
      filter and update drivers which can timestamp all packets, or which
      explicitly list unsupported filters instead of using a default case, to
      handle the filter.
      
      CC: Richard Cochran <richardcochran@gmail.com>
      CC: Willem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3412575
    • M
      net: define receive timestamp filter for NTP · b8210a9e
      Miroslav Lichvar 提交于
      Add HWTSTAMP_FILTER_NTP_ALL to the hwtstamp_rx_filters enum for
      timestamping of NTP packets. There is currently only one driver
      (phyter) that could support it directly.
      
      CC: Richard Cochran <richardcochran@gmail.com>
      CC: Willem de Bruijn <willemb@google.com>
      Signed-off-by: NMiroslav Lichvar <mlichvar@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b8210a9e
    • G
      cxgb4 : retrieve port information from firmware · 2061ec3f
      Ganesh Goudar 提交于
      issue get port information command to firmware to retrieve port
      information and update if it is different from what was last
      recorded and also add indication for supported link modes for
      firmware port types FW_PORT_TYPE_SFP28, FW_PORT_TYPE_KR_SFP28,
      FW_PORT_TYPE_CR4_QSFP.
      
      Based on the original work by Casey Leedom <leedom@chelsio.com>
      Signed-off-by: NCasey Leedom <leedom@chelsio.com>
      Signed-off-by: NGanesh Goudar <ganeshgr@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2061ec3f
    • S
      ibmveth: Support to enable LSO/CSO for Trunk VEA. · 66aa0678
      Sivakumar Krishnasamy 提交于
      Current largesend and checksum offload feature in ibmveth driver,
       - Source VM sends the TCP packets with ip_summed field set as
         CHECKSUM_PARTIAL and TCP pseudo header checksum is placed in
         checksum field
       - CHECKSUM_PARTIAL flag in SKB will enable ibmveth driver to mark
         "no checksum" and "checksum good" bits in transmit buffer descriptor
         before the packet is delivered to pseries PowerVM Hypervisor
       - If ibmveth has largesend capability enabled, transmit buffer descriptors
         are market accordingly before packet is delivered to Hypervisor
         (along with mss value for packets with length > MSS)
       - Destination VM's ibmveth driver receives the packet with "checksum good"
         bit set and so, SKB's ip_summed field is set with CHECKSUM_UNNECESSARY
       - If "largesend" bit was on, mss value is copied from receive descriptor
         into SKB's gso_size and other flags are appropriately set for
         packets > MSS size
       - The packet is now successfully delivered up the stack in destination VM
      
      The offloads described above works fine for TCP communication among VMs in
      the same pseries server ( VM A <=> PowerVM Hypervisor <=> VM B )
      
      We are now enabling support for OVS in pseries PowerVM environment. One of
      our requirements is to have ibmveth driver configured in "Trunk" mode, when
      they are used with OVS. This is because, PowerVM Hypervisor will no more
      bridge the packets between VMs, instead the packets are delivered to
      IO Server which hosts OVS to bridge them between VMs or to external
      networks (flow shown below),
        VM A <=> PowerVM Hypervisor <=> IO Server(OVS) <=> PowerVM Hypervisor
                                                                         <=> VM B
      In "IO server" the packet is received by inbound Trunk ibmveth and then
      delivered to OVS, which is then bridged to outbound Trunk ibmveth (shown
      below),
              Inbound Trunk ibmveth <=> OVS <=> Outbound Trunk ibmveth
      
      In this model, we hit the following issues which impacted the VM
      communication performance,
      
       - Issue 1: ibmveth doesn't support largesend and checksum offload features
         when configured as "Trunk". Driver has explicit checks to prevent
         enabling these offloads.
      
       - Issue 2: SYN packet drops seen at destination VM. When the packet
         originates, it has CHECKSUM_PARTIAL flag set and as it gets delivered to
         IO server's inbound Trunk ibmveth, on validating "checksum good" bits
         in ibmveth receive routine, SKB's ip_summed field is set with
         CHECKSUM_UNNECESSARY flag. This packet is then bridged by OVS (or Linux
         Bridge) and delivered to outbound Trunk ibmveth. At this point the
         outbound ibmveth transmit routine will not set "no checksum" and
         "checksum good" bits in transmit buffer descriptor, as it does so only
         when the ip_summed field is CHECKSUM_PARTIAL. When this packet gets
         delivered to destination VM, TCP layer receives the packet with checksum
         value of 0 and with no checksum related flags in ip_summed field. This
         leads to packet drops. So, TCP connections never goes through fine.
      
       - Issue 3: First packet of a TCP connection will be dropped, if there is
         no OVS flow cached in datapath. OVS while trying to identify the flow,
         computes the checksum. The computed checksum will be invalid at the
         receiving end, as ibmveth transmit routine zeroes out the pseudo
         checksum value in the packet. This leads to packet drop.
      
       - Issue 4: ibmveth driver doesn't have support for SKB's with frag_list.
         When Physical NIC has GRO enabled and when OVS bridges these packets,
         OVS vport send code will end up calling dev_queue_xmit, which in turn
         calls validate_xmit_skb.
         In validate_xmit_skb routine, the larger packets will get segmented into
         MSS sized segments, if SKB has a frag_list and if the driver to which
         they are delivered to doesn't support NETIF_F_FRAGLIST feature.
      
      This patch addresses the above four issues, thereby enabling end to end
      largesend and checksum offload support for better performance.
      
       - Fix for Issue 1 : Remove checks which prevent enabling TCP largesend and
         checksum offloads.
       - Fix for Issue 2 : When ibmveth receives a packet with "checksum good"
         bit set and if its configured in Trunk mode, set appropriate SKB fields
         using skb_partial_csum_set (ip_summed field is set with
         CHECKSUM_PARTIAL)
       - Fix for Issue 3: Recompute the pseudo header checksum before sending the
         SKB up the stack.
       - Fix for Issue 4: Linearize the SKBs with frag_list. Though we end up
         allocating buffers and copying data, this fix gives
         upto 4X throughput increase.
      
      Note: All these fixes need to be dropped together as fixing just one of
      them will lead to other issues immediately (especially for Issues 1,2 & 3).
      Signed-off-by: NSivakumar Krishnasamy <ksiva@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      66aa0678
    • D
      Merge branch 'qed-next' · 76e7f31d
      David S. Miller 提交于
      Yuval Mintz says:
      
      ====================
      qed/qede updates
      
      This series contains some general minor fixes and enhancements:
      
       - #1, #2 and #9 correct small missing ethtool functionality.
       - #3, #6  and #8 correct minor issues in driver, but those are either
         print-related or unexposed in existing code.
       - #4 adds proper support to TLB mode bonding.
       - #10 is meant to improve performance on varying cache-line sizes.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      76e7f31d
    • S
      qede: Support 1G advertisment. · 9ac4c546
      Sudarsana Reddy Kalluru 提交于
      Some variants of adapters support the 1G speed capability. Need to
      allow the configuration of 1G speed if adapter supports it.
      Signed-off-by: NSudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9ac4c546
    • T
      qed: Fix setting of Management bitfields · b19601bb
      Tomer Tayar 提交于
      The management firmware HSI contains masks which are already
      shifted to their right place, so QED_MFW_SET_FIELD() is clearing
      incorrect fields by shifting the mask by the offset.
      
      Luckily, today we set the fields in an incrementing order [so we're
      not erasing any previously set fields], but this still needs fixing.
      Signed-off-by: NTomer Tayar <Tomer.Tayar@cavium.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b19601bb
    • M
      qede: qedr closure after setting state · 2e7022d6
      Mintz, Yuval 提交于
      This is benign, but it makes more sense to start the close sequence
      only after changing the internal state [in case it would once care].
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2e7022d6
    • M
      qed: Correct print in iscsi error-flow · 88fa9527
      Mintz, Yuval 提交于
      If too many CQs are requested, qed would print the available
      number as if it's a resource and not a feature leading to the
      wrong print.
      
      Fixes: 08737a3f ("qed: Inform qedi the number of possible CQs")
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      88fa9527
    • T
      qed: Revise alloc/setup/free flow · 3587cb87
      Tomer Tayar 提交于
      Re-organize the logic that allocates and frees memory of various
      sub-components of the hw-function -
      
       a. No need to pass pointers to said structure as parameters;
          The internal logic knows exactly where to find/set the data.
      
       b. Nullify pointers after cleanup to prevent possible errors to
          re-entrant code.
      Signed-off-by: NTomer Tayar <Tomer.Tayar@cavium.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3587cb87
    • M
      qede: Don't use an internal MAC field · 492a1d98
      Mintz, Yuval 提交于
      Driver maintains its primary MAC in a private field which
      gets updated when ndo_dev_set_mac() gets called.
      
      However, there are flows where the primary MAC of the device can change
      without said NDO being called [bond device in TLB mode configuring
      slaves' addresses], resulting in a configuration where there's a mismatch
      between what's apparent to user [the netdevice's value] and what's
      configured in the HW [the private value].
      
      As we don't have any real motivation of maintaining this
      private field, simply remove it and start using the netdevice's
      field instead.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      492a1d98
    • S
      qede: Add missing Status-block free · 71851ea5
      Sudarsana Reddy Kalluru 提交于
      When destroying the datapath channels, qede doesn't notify qed of the
      released status blocks which were acquired during the initialization.
      Signed-off-by: NSudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71851ea5
    • S
      qede: Honor user request for Tx buffers · 5a052d62
      Sudarsana Reddy Kalluru 提交于
      Driver always allocates the maximal number of tx-buffers irrespective of
      actual Tx ring config.
      Signed-off-by: NSudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5a052d62
    • M
      qede: Allow WoL to activate by default · ba798b5b
      Mintz, Yuval 提交于
      When management firmware declares that the device is WoL-capable,
      the default driver behavior would be to allow the management firmware
      to take the decision of whether it's actually needed or not.
      
      Problem is ethtool interface doesn't have a 'default' kind
      of option, and user would see the interface WoL as disabled,
      which doesn't accurately reflect the actual configuration.
      More-so, if the user actually wants to explicitly disable WoL he'd have
      to first enable it [otherwise ethtool would block the command].
      
      Instead of allowing management to make the decision, enable WoL by
      default on all devices capable of it.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ba798b5b
  3. 20 5月, 2017 5 次提交
    • D
      Merge branch 'xgene-check-all-RGMII-phy-mode-variants' · dc57ae3d
      David S. Miller 提交于
      Iyappan Subramanian says:
      
      ====================
      Check all RGMII phy mode variants
      
      This patch set,
           - adds phy_interface_mode_is_rgmii() helper function
           - addresses review comment from previous patch set, by calling
             phy_interface_mode_is_rgmii() to address all RGMII variants
      
      v2: Address review comments from v1
           - adds phy_interface_mode_is_rgmii() helper function
           - addresses review comment from previous patch set, by calling
             phy_interface_mode_is_rgmii() to address all RGMII variants
      v1:
           - Initial version
      ====================
      Signed-off-by: NIyappan Subramanian <isubramanian@apm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc57ae3d
    • I
      xgene: Check all RGMII phy mode variants · 326dde3e
      Iyappan Subramanian 提交于
      This patch addresses the review comment from the previous patch set,
      by using phy_interface_mode_is_rgmii() helper function to address
      all RGMII phy mode variants.
      Signed-off-by: NIyappan Subramanian <isubramanian@apm.com>
      Signed-off-by: NQuan Nguyen <qnguyen@apm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      326dde3e
    • I
      phy: Add helper function to check phy interface mode · 32d0f783
      Iyappan Subramanian 提交于
      Added helper function that checks phy_mode is RGMII (all variants)
      'bool phy_interface_mode_is_rgmii(phy_interface_t mode)'
      
      Changed the following function, to use the above.
      'bool phy_interface_is_rgmii(struct phy_device *phydev)'
      Signed-off-by: NIyappan Subramanian <isubramanian@apm.com>
      Suggested-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Suggested-by: NAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      32d0f783
    • D
      Merge branch 'net-fix-CRC32c-in-the-forwarding-path' · 5d65a16a
      David S. Miller 提交于
      Davide Caratti says:
      
      ====================
      net: fix CRC32c in the forwarding path
      
      Current kernel allows offloading CRC32c computation when SCTP packets
      are generated, setting skb->ip_summed to CHECKSUM_PARTIAL, if the
      underlying device features have NETIF_F_SCTP_CRC set. However, after these
      packets are forwarded, they may land on a device where CRC32c offloading is
      not available: as a consequence, transmission is done with wrong CRC32c.
      It's not possible to use sctp_compte_cksum() in the forwarding path
      and in most drivers, because it needs symbols exported by libcrc32c module.
      
      Patch 1 and 2 of this series try to solve this problem, introducing a new
      helper function, namely skb_crc32c_csum_help(), that can be used to resolve
      CHECKSUM_PARTIAL when crc32c is needed instead of Internet Checksum.
      
      Currently, we need to parse the packet headers to understand what algorithm
      is needed to resolve CHECKSUM_PARTIAL. We can speedup things by storing
      this information in the skb metadata, and use it to call an appropriate
      helper (skb_checksum_help or skb_crc32c_csum_help), or leave the packet
      unmodified when the NIC is able to offload the checksum computation.
      
      Patch 3 deprecates skb->csum_bad to free one bit in skb metadata; patch 4
      introduces skb->csum_not_inet, providing skb with an indication on the
      algorithm needed to resolve CHECKSUM_PARTIAL.
      Patch 5 and 6 fix the kernel forwarding path and openvswitch datapath,
      where skb_checksum_help was unconditionally called to resolve CHECKSUM_PARTIAL,
      thus generating wrong CRC32c in forwarded SCTP packets.
      Finally, patch 7 updates documentation to provide a better description of
      possible values of skb->ip_summed.
      
      Some further work is still possible:
      * drivers that parse the packet header to correctly resolve CHECKSUM_PARTIAL
      (e.g. ixgbe_tx_csum()) can benefit from testing skb->csum_not_inet to avoid
      calling ip_hdr(skb)->protocol or ixgbe_ipv6_csum_is_sctp(skb).
      
      * drivers that call skb_checksum_help() to resolve CHECKSUM_PARTIAL can
      call skb_csum_hwoffload_help to avoid corrupting SCTP packets.
      
      Changes v2->v3:
      - patch 1/7: more standard declaration of stub variables
      
      Changes v1->v2:
      - none
      
      Changes RFCv4->v1:
      - patch 2/7: use WARN_ON_ONCE() instead of BUG_ON(), and avoid computing
      CRC32c on the error path.
      - patch 3/7: don't invert tests on the values of same_flow and
      NAPI_GRO_CB(skb)->flush in dev_gro_receive(), it's useless and it breaks
      GRO functionality as reported by kernel test robot.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5d65a16a
    • D
      sk_buff.h: improve description of CHECKSUM_{COMPLETE, UNNECESSARY} · b4759dcd
      Davide Caratti 提交于
      Add FCoE to the list of protocols that can set CHECKSUM_UNNECESSARY; add a
      note to CHECKSUM_COMPLETE section to specify that it does not apply to SCTP
      and FCoE protocols.
      Suggested-by: NTom Herbert <tom@herbertland.com>
      Signed-off-by: NDavide Caratti <dcaratti@redhat.com>
      Acked-by: NTom Herbert <tom@herbertland.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b4759dcd