15 Oct, 2015

31 commits

  • Introduce infrastructure which will be used internally to defer ops.
    Note that the deferred ops are queued up and either are processed by
    scheduled work or explicitly by user calling deferred_process function.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • this patch fixes a bug in hns driver. when we want to get statistic info
    by using ethtool -S, it shows us there are 3 wrong counters info. because
    the strings related to the registers are wrong. it needs to modify the
    strings which give us wrong info.

    Signed-off-by: lipeng
    Signed-off-by: yankejian
    Signed-off-by: Yisen Zhuang
    Signed-off-by: David S. Miller

    lipeng
     
  • Jeff Kirsher says:

    ====================
    Intel Wired LAN Driver Updates 2015-10-15

    This series contains updates to i40e, i40evf and ixgbe.

    Emil changes the ixgbe driver to disable LRO by default in favor or GRO.

    Mark provides two changes for ixgbe, first fixes a semaphore issue when
    a reset never completes, it is necessary to retake the semaphore before
    returning.

    Jesse fixes up a missing function header comment variable reference. Then
    enables ethtool priv flags to control flow director at runtime.

    Neerav changes several i40e error messages to debug only since the
    messages were printing when there was no functional issue and were meant
    for debug only.

    Catherine changes the i40e driver to make only X722 support 100M SGMII,
    since it is the only device to actually support it.

    Anjali modifies the i40e/i40evf driver to add writeback on ITR offload
    support for X722 since the device has a way to work around the
    descriptor writeback issue.

    Mitch cleans up obsolete code. Also reduces the i40evf init time by
    shortening up the delays in the init task to aid in performance in
    load/unload tests and mitigates DMAR errors in VF enable/disable tests.

    Shannon modifies i40e to allow flow director sideband when the device
    is in MFP mode and only has one partition enabled, since we still have
    plenty of interrupts for managing the flow director activity. Also
    cleaned up flow director ATR control in debugfs since the priv flag
    has been added to our ethtool interface. Makes several general code
    cleanups of redundant or unnecessary code for i40e.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Only call the internal_setup_link method when it is provided. This
    check is required for newer version parts.

    Signed-off-by: Mark Rustad
    Tested-by: Darin Miller
    Signed-off-by: Jeff Kirsher

    Mark Rustad
     
  • Bump.

    Change-ID: I8d9a99f320af43960deba8718eee2d6de50eaf46
    Signed-off-by: Catherine Sullivan
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Catherine Sullivan
     
  • Shorten up the delays in the init task, allowing the VF driver to
    initialize faster. This aids performance in load/unload tests and
    mitigates DMAR errors in VF enable/disable tests with absurdly short
    delays. In the real world, the VF driver will come up more quickly.

    The original values were set conservatively based on what we expected
    from the firmware in terms of performance. Now that the driver is in use
    and we know how well firmware responds to our requests, we can shorten
    these delays.

    Change-ID: Ibead77d34b19e8170e667c3f58bc14748bbc5bc9
    Signed-off-by: Mitch Williams
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • Save a little stack space and remove unnecessary strncpy() with a little
    string pointer.

    Change-ID: Id2719d34710bfc273d3bb445fec085cd04276e88
    Signed-off-by: Shannon Nelson
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Shannon Nelson
     
  • X722 will report Gen 1x1 in the PCI config space as it is on
    IOSF bus, so skip the PCI bus link/speed check.

    Change-ID: Icd5f5751dc7fb00dccf0d5dc5a0a644948e7062e
    Signed-off-by: Anjali Singhai Jain
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Anjali Singhai Jain
     
  • Store off reported PHY capabilities in link_info structure.

    Change-ID: Ife0f037c26983ca985dbf79abf33f8f8791369e8
    Signed-off-by: Kevin Scott
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Kevin Scott
     
  • Remove a variable declaration inside an if block hiding an existing
    declaration at the start of the function.

    Also remove a forward function declaration that is no longer needed due
    to code re-organization.

    Change-ID: I12954668b722718074949c93d74cd20eaacd93e4
    Signed-off-by: Shannon Nelson
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Shannon Nelson
     
  • Since the flow-director-atr priv flag was added to our ethtool interface,
    we don't need the on/off control in debugfs.

    Change-ID: Ib3b599916434ab30ccd40074e71d7a81609b5bb5
    Signed-off-by: Shannon Nelson
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Shannon Nelson
     
  • Even though the device might be in MFP mode, if there's only one partition
    enabled, then we still have plenty of interrupts for managing the Flow
    Directory Sideband activity. This patch enables FD SB in this case.
    This patch also reverses the sense of the conditional in order to remove
    the negative logic.

    Change-ID: I9edf211a6219fc8d159b4be9964f9fd7f4e00bc0
    Signed-off-by: Shannon Nelson
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Shannon Nelson
     
  • This version check only applies to very, very old firmware,
    that only ran on A0 hardware, which we never shipped and don't
    support in this driver anyway. Remove it, before somebody
    gets hurt.

    Change-ID: I3752d090ff488acf98ee76b075af961e9c968ee4
    Signed-off-by: Mitch Williams
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Mitch Williams
     
  • X722 has a way to work around the descriptor WB issue,
    this offload helps turn that feature on.

    Change-ID: I7ffa67622426bfca5a651417b63e3afcfeb60412
    Signed-off-by: Anjali Singhai Jain
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Anjali Singhai Jain
     
  • Only the X722 device now supports 100M SGMII, and nothing supports
    100M on 1000Base_T.

    Change-ID: I6f44dcd818944edd40041410e6de380f4a359a0c
    Signed-off-by: Catherine Sullivan
    Signed-off-by: Shannon Nelson
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Catherine Sullivan
     
  • There are several error messages that have been printing when there is
    no functional issue. These messages should be available at debug message
    level only.

    Change-ID: Id91e47bf942c483563995f30d8705fa53acd5aa3
    Signed-off-by: Neerav Parikh
    Signed-off-by: Catherine Sullivan
    Signed-off-by: Shannon Nelson
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Neerav Parikh
     
  • Some customers wish to be able to control our hardware specific
    feature called flow director, at runtime. This patch enables
    ethtool priv flags to control this driver/hardware specific feature.

    ethtool --set-priv-flags ethX flow-director-atr off

    NOTE: the ethtool ntuple interface controls the flow-director
    sideband rules.

    Change-ID: Iba156350b07fa2ce66f53ded51739f9a3781fe0e
    Signed-off-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Jesse Brandeburg
     
  • Add nlflags to the function comment for ndo_bridge_setlink.

    Change-ID: I34c704f307f2a3f7bac3ca4b44e2a094d3d082d6
    Signed-off-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Jesse Brandeburg
     
  • If the reset never completes, it is necessary to retake the
    semaphore before returning, because the caller will release
    the semaphore.

    Signed-off-by: Mark Rustad
    Tested-by: Darin Miller
    Signed-off-by: Jeff Kirsher

    Mark Rustad
     
  • This patch disables LRO by default in favor of GRO.

    LRO is incompatible with forwarding and is disabled when forwarding
    is turned on which makes the default offloads of the driver
    inconsistent. LRO can still be enabled via ethtool.

    Signed-off-by: Emil Tantilov
    Tested-by: Darin Miller
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Or Gerlitz says:

    ====================
    Mellanox driver update, Oct 14 2015

    This series contains two more patches from Eli, patch from Majd
    to support PCI error handlers and a fix from Jack to mlx4 VFs
    when probed without a provisioned mac address.

    The patch set applied on top of net-next commit bbb300e "Merge branch 'bridge-vlan'"

    changes from V0:
    - made the health flag int --> bool to address comment from Dave on patch #1
    - fixed sparse warning noted by the 0-day build tests in patch #2
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • By design, when no default MAC addresses are set in the Hypervisor for VFs,
    the VFs are passed zero-macs. When such a MAC is received by the VF, it
    generates a random MAC address and registers that MAC address
    with the Hypervisor.

    This random mac generation is currently done in the mlx4_en module.
    There is a problem, though, if the mlx4_ib module is loaded by a VF before
    the mlx4_en module. In this case, for RoCE, mlx4_ib will see the un-replaced
    zero-mac and register that zero-mac as part of QP1 initialization.

    Having a zero-mac in the port's MAC table creates problems for a
    Baseboard Management Console. The BMC occasionally sends packets with a
    zero-mac destination MAC. If there is a zero-mac present in the port's
    MAC table, the FW will send such BMC packets to the host driver rather than
    to the wire, and BMC will stop working.

    To address this problem, we move the replacement of zero-mac addresses
    with random-mac addresses to procedure mlx4_slave_cap(), which is part of the
    driver startup for VFs, and is before activation of mlx4_ib and mlx4_en.
    As a result, zero-mac addresses will never be registered in the port MAC table
    by the driver.

    In addition, when mlx4_en does initialize the net device, it needs to set
    the NET_ADDR_RANDOM flag in the netdev structure if the address was
    randomly generated. This is done so that udev on the VM does not create
    a new device name after each VF probe (VM boot and such). To accomplish this,
    we add a per-port flag in mlx4_dev which gets set whenever mlx4_core replaces
    a zero-mac with a randomly-generated mac. This flag is examined when mlx4_en
    initializes the net-device.

    Fix was suggested by Matan Barak

    Signed-off-by: Jack Morgenstein
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Jack Morgenstein
     
  • On device initialization, wait till firmware indicates that that it is done
    with initialization before proceeding to initialize the device.

    Also update initialization segment layout to match driver/firmware
    interface definitions.

    Signed-off-by: Eli Cohen
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Eli Cohen
     
  • This patch implement the pci_error_handlers for mlx5_core which allow the
    driver to recover from PCI error.

    Once an error is detected in the PCI, the mlx5_pci_err_detected is called
    and it:
    1) Marks the device to be in 'Internal Error' state.
    2) Dispatches an event to the mlx5_ib to flush all the outstanding cqes
    with error.
    3) Returns all the on going commands with error.
    4) Unloads the driver.

    Afterwards, the FW is reset and mlx5_pci_slot_reset is called and it
    enables the device and restore it's pci state.

    If the later succeeds, mlx5_pci_resume is called, and it loads the SW
    stack.

    Signed-off-by: Majd Dibbiny
    Signed-off-by: Eli Cohen
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Majd Dibbiny
     
  • The detection of a fatal condition has been updated to take into account
    the state reported by the device or by detecting an all ones read of the
    firmware version which indicates that the device is not accessible.

    Signed-off-by: Eli Cohen
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Eli Cohen
     
  • At listen() time, there is a small window where listener is visible with
    a zero backlog, triggering a spurious "Possible SYN flooding on port"
    message.

    Nothing prevents us from setting the correct backlog.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • As we no longer hold listener lock in fast path, it is possible that a
    child is created right after listener freed its bound port, if a close()
    is done while incoming packets are processed.

    __inet_inherit_port() must detect this and return an error,
    so that caller can free the child earlier.

    Fixes: e994b2f0fb92 ("tcp: do not lock listener to process SYN packets")
    Fixes: 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table")
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Use module_phy_driver macro to simplify the code a bit.

    Signed-off-by: Axel Lin
    Signed-off-by: David S. Miller

    Axel Lin
     
  • this patch fixes a bug in hns driver. the link led is on at the beginning,
    but at this time the ethernet port is on down status. it needs to reset
    the led status on init sequence.

    Signed-off-by: lipeng
    Signed-off-by: yankejian
    Signed-off-by: David S. Miller

    lipeng
     
  • This helps improving the latency of small packets.

    Signed-off-by: Rakesh Ranjan
    Signed-off-by: Karen Xie
    Signed-off-by: David S. Miller

    Karen Xie
     
  • …x/kernel/git/mkl/linux-can-next

    Marc Kleine-Budde says:

    ====================
    pull-request: can-next 2015-09-17

    this is a pull request of 4 patches for net-next/master.

    Two patches are by Gerhard Bertelsmann, fixing some problems in the
    sun4i driver. The patch by Arnd Bergmann stops using timeval for the
    CAN broadcast manager. The last patch by Alexandre Belloni removes the
    otherwise unused struct at91_can_data from the driver.
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

14 Oct, 2015

9 commits

  • this patch adds support to set promisc mode. it configs the queue on
    init seq when it is on promisc mode.and being enabled or disabled promisc
    mode by upper level user.

    Signed-off-by: yankejian
    Signed-off-by: Yisen Zhuang
    Signed-off-by: David S. Miller

    yankejian
     
  • Revert the commit e2ca690b657f ("ipv4/icmp: redirect messages
    can use the ingress daddr as source"), which tried to introduce a more
    suitable behaviour for ICMP redirect messages generated by VRRP routers.
    However RFC 5798 section 8.1.1 states:

    The IPv4 source address of an ICMP redirect should be the address
    that the end-host used when making its next-hop routing decision.

    while said commit used the generating packet destination
    address, which do not match the above and in most cases leads to
    no redirect packets to be generated.

    Signed-off-by: Paolo Abeni
    Signed-off-by: David S. Miller

    Paolo Abeni
     
  • Jeff Kirsher says:

    ====================
    Intel Wired LAN Driver Updates 2015-10-13

    This series contains updates to i40e, i40evf, ixgbe and fm10k.

    Carolyn cleans up ndo_bridge_getlink() by flagging a parameter as
    __always_unused, since it is never used. Adds a member to the nvm_info
    struct to store OEM version info to be output either by OID or ethtool.

    Neerav cleans up a remaining bit shift to use BIT() macro.

    Mitch fixes the i40evf driver to properly handle calls to its
    ndo_set_mac_address() method. It did not properly check to see if the
    override would be allowed by the PF driver, and it never removed the old
    address from its filter list. Cleaned up the use of
    i40e_enable_vf_mappings() in i40e_alloc_vfs(), since it is just redundant
    since we already call it by i40e_reset_vf(). Fixed a possible panic
    in some circumstances where the firmware may fail to allocate a VSI for
    a VF by checking the return value from i40e_alloc_vf_res() and don't
    try to configure the device further if it failed.

    Greg fixes the parsing of CEE App TLVs so the caller does not have to
    consider whether the App came from a CEE or IEEE DCBx negotiation.

    Shannon moves the device ids into a standalone file due to the desire
    to write user-land drivers (and other requests) without needing the rest
    of the include files.

    Catherine adds the ability to save the module information from
    get_phy_capabilities() to be used to determine which speeds the module
    supports. Also cleaned up the PHY structure by removing unused members
    and add the ability to store the PHY capabilities reported by the
    firmware.

    Emil modifies ixgbe to ensure that flow control packets initiated by the
    VF are dropped and reported as spoofed.

    Jacob cleans up the fm10k driver to avoid buffer overflow by using
    sprintf(), so convert to using snprintf(). Also fixed the use of an
    enum as a boolean, so check for the actual value of NETREG_UNINITIALIZED
    in case it ever changes from the current value of zero.

    v2: Dropped patch 11 of the original series, which added functions that
    were never used.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Check for actual value NETREG_UNINITIALIZED in case it ever changes from
    the current value of zero.

    Signed-off-by: Jacob Keller
    Signed-off-by: Bruce Allan
    Tested-by: Krishneil Singh
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • Signed-off-by: Jacob Keller
    Signed-off-by: Bruce Allan
    Tested-by: Krishneil Singh
    Signed-off-by: Jeff Kirsher

    Jacob Keller
     
  • This patch makes sure that flow control packets initiated by the VF are
    dropped and reported as spoofed.

    Flow control packets can be used to limit the throughput or as DOS
    attack when generated from a VF. Flow control is not supported per VF
    hence any pause frames generated from a VF are considered malicious.

    Also cleaned up indentation and some redundant comments.

    Signed-off-by: Emil Tantilov
    Tested-by: Krishneil Singh
    Signed-off-by: Jeff Kirsher

    Emil Tantilov
     
  • Bump.

    Change-ID: If3cd42f6c1b9546beed60faf9c79faab35216f58
    Signed-off-by: Catherine Sullivan
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Catherine Sullivan
     
  • Remove unused members in the PHY structure and add a new member to store
    all the capabilities the PHY has as reported by the FW. This information
    will help us determine what speeds the device is capable of when link is
    down.

    Also add an enum to decode the PHY types the NVM is capable of.
    Use the phy_types variable to determine what phy types are possible
    when link is down instead of device id as it will be more accurate.

    When on a backplane device, we do not support changing any settings,
    however we should display all the phy_types we are capable of so if we
    see a backplane dev ID set supported and advertised purely based on
    the phy_types variable.

    Change-ID: Ia75d560f1fcd30c54cbfb7458690c5867559a930
    Signed-off-by: Catherine Sullivan
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Catherine Sullivan
     
  • Add a module_types variable to the link_info struct to save the module
    information from get_phy_capabilities. This information can be used to
    determine which speeds the module supports.

    Also add a new function update_link_info which updates the module_types
    parameter and then calls get_link_info. This function should be called
    in place of get_link_info so that the module_types variable stays
    up-to-date with the rest of the link information.

    The EAS table does not reflect the values that are actually returned,
    so instead, basing these values on the Ethernet compliance codes
    specified in table 33 of SFF-8436 as these have been accurate.

    Use the new variable in ethtool to differentiate between a 10G/1G dual
    speed fiber module and a 10G only module.

    Change-ID: Ib7585cce321319c10ce15180054c41a6cbd41389
    Signed-off-by: Catherine Sullivan
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Catherine Sullivan