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 -
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 -
Jeff Kirsher says:
====================
Intel Wired LAN Driver Updates 2015-10-15This 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
-
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 -
Bump.
Change-ID: I8d9a99f320af43960deba8718eee2d6de50eaf46
Signed-off-by: Catherine Sullivan
Tested-by: Andrew Bowers
Signed-off-by: Jeff Kirsher -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Or Gerlitz says:
====================
Mellanox driver update, Oct 14 2015This 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
-
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 -
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 -
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 -
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 -
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 -
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 -
Use module_phy_driver macro to simplify the code a bit.
Signed-off-by: Axel Lin
Signed-off-by: David S. Miller -
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 -
This helps improving the latency of small packets.
Signed-off-by: Rakesh Ranjan
Signed-off-by: Karen Xie
Signed-off-by: David S. Miller -
…x/kernel/git/mkl/linux-can-next
Marc Kleine-Budde says:
====================
pull-request: can-next 2015-09-17this 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>
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 -
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 -
Jeff Kirsher says:
====================
Intel Wired LAN Driver Updates 2015-10-13This 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
-
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 -
Signed-off-by: Jacob Keller
Signed-off-by: Bruce Allan
Tested-by: Krishneil Singh
Signed-off-by: Jeff Kirsher -
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 -
Bump.
Change-ID: If3cd42f6c1b9546beed60faf9c79faab35216f58
Signed-off-by: Catherine Sullivan
Tested-by: Andrew Bowers
Signed-off-by: Jeff Kirsher -
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 -
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