[PATCH net-next 02/12] bnxt_en: Add basic WoL infrastructure.

2017-04-04 Thread Michael Chan
Add code to driver probe function to check if the device is WoL capable and if Magic packet WoL filter is currently set. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 43 +++ drivers/net/ethernet/broadco

[PATCH net-next 00/12] bnxt_en: Updates for net-next.

2017-04-04 Thread Michael Chan
Main changes are to add WoL and selftest features, optimize XDP_TX by using short BDs, and to cap the usage of MSIX. Michael Chan (12): bnxt_en: Update firmware interface spec to 1.7.6.2. bnxt_en: Add basic WoL infrastructure. bnxt_en: Add pci shutdown method. bnxt_en: Add ethtool get_wol

[PATCH net-next 07/12] bnxt_en: Add basic ethtool -t selftest support.

2017-04-04 Thread Michael Chan
Add the basic infrastructure and only firmware tests initially. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 13 ++- drivers/net/ethernet/broadcom/bnxt/bnxt_eth

[PATCH net-next 06/12] bnxt_en: Add suspend/resume callbacks.

2017-04-04 Thread Michael Chan
Add suspend/resume callbacks using the newer dev_pm_ops method. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 57 +++ 1 file changed, 57 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnx

[PATCH net-next 03/12] bnxt_en: Add pci shutdown method.

2017-04-04 Thread Michael Chan
Add pci shutdown method to put device in the proper WoL and power state. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 31 +++ 1 file changed, 31 insertions(+) diff --git a/drivers/net/ethernet/broadco

[PATCH net 3/3] bnxt_en: Fix DMA unmapping of the RX buffers in XDP mode during shutdown.

2017-03-28 Thread Michael Chan
In bnxt_free_rx_skbs(), which is called to free up all RX buffers during shutdown, we need to unmap the page if we are running in XDP mode. Fixes: c61fb99cae51 ("bnxt_en: Add RX page mode support.") Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethern

[PATCH net 2/3] bnxt_en: Correct the order of arguments to netdev_err() in bnxt_set_tpa()

2017-03-28 Thread Michael Chan
From: Sankar Patchineelam <sankar.patchinee...@broadcom.com> Signed-off-by: Sankar Patchineelam <sankar.patchinee...@broadcom.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH net 1/3] bnxt_en: Fix NULL pointer dereference in reopen failure path

2017-03-28 Thread Michael Chan
ore bnxt_init_chip() is invoked. Signed-off-by: Sankar Patchineelam <sankar.patchinee...@broadcom.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 13 + 1 file changed, 13 insertions(+) diff --git a/drivers/net/et

[PATCH net 0/3] bnxt_en: Small misc. fixes.

2017-03-28 Thread Michael Chan
Fix a NULL pointer crash in open failure path, wrong arguments when printing error messages, and a DMA unmap bug in XDP shutdown path. Michael Chan (1): bnxt_en: Fix DMA unmapping of the RX buffers in XDP mode during shutdown. Sankar Patchineelam (2): bnxt_en: Fix NULL pointer

Re: Null pointer dereference in tg3_poll_work running linux-3.4

2017-03-28 Thread Michael Chan
On Tue, Mar 28, 2017 at 11:32 AM, Salam Noureddine wrote: > Hi, > > We've seen a very rare kernel panic in tg3_poll_work on hardware > running linux-3.4. > I haven't seen any upstream patches that seem to fix this issue in the > tg3 driver. > The disassembly shows that the

[PATCH net 3/4] bnxt_en: Check if firmware LLDP agent is running.

2017-03-08 Thread Michael Chan
Set DCB_CAP_DCBX_HOST capability flag only if the firmware LLDP agent is not running. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + drivers/net/ethernet/broadco

[PATCH net 2/4] bnxt_en: Call bnxt_ulp_stop() during tx timeout.

2017-03-08 Thread Michael Chan
If we call bnxt_reset_task() due to tx timeout, we should call bnxt_ulp_stop() to inform the RDMA driver about the error and the impending reset. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +++- 1 file changed, 7 insertions

[PATCH net 4/4] bnxt_en: Ignore 0 value in autoneg supported speed from firmware.

2017-03-08 Thread Michael Chan
the updated settings from firmware at that time. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/br

[PATCH net 1/4] bnxt_en: Perform function reset earlier during probe.

2017-03-08 Thread Michael Chan
The firmware call to do function reset is done too late. It is causing the rings that have been reserved to be freed. In NPAR mode, this bug is causing us to run out of rings. Fixes: 391be5c27364 ("bnxt_en: Implement new scheme to reserve tx rings.") Signed-off-by: Michael Chan

[PATCH net 0/4] bnxt_en: Misc. small fixes.

2017-03-08 Thread Michael Chan
Fixes include moving the initial function reset, notifying the RDMA driver during tx timeout, setting dcbx_cap properly depending on whether the firmware agent is running or not, and an autoneg related improvement. Michael Chan (4): bnxt_en: Perform function reset earlier during probe

[PATCH net-next 0/3] bnxt_en: Fix probe and open bugs.

2017-02-20 Thread Michael Chan
Fix 3 issues related to bnxt_init_one() and bnxt_open(). Don't probe bridge devices and fixup some error code paths. Michael Chan (1): bnxt_en: Fix NULL pointer dereference in a failure path during open. Ray Jui (1): bnxt_en: Reject driver probe against all bridge devices Sathya Perla (1

[PATCH net-next 3/3] bnxt_en: fix pci cleanup in bnxt_init_one() failure path

2017-02-20 Thread Michael Chan
ed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 76 --- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c i

[PATCH net-next 1/3] bnxt_en: Reject driver probe against all bridge devices

2017-02-20 Thread Michael Chan
adcom.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 71f9a18..f4dec1b 10

[PATCH net-next 2/3] bnxt_en: Fix NULL pointer dereference in a failure path during open.

2017-02-20 Thread Michael Chan
been initialized before writing to the completion ring doorbell. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drive

[PATCH net-next 5/9] bnxt_en: Add hardware NTUPLE filter for encapsulated packets.

2017-02-12 Thread Michael Chan
If skb_flow_dissect_flow_keys() returns with the encapsulation flag set, pass the information to the firmware to setup the NTUPLE filter accordingly. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 17 ++--- 1 file chang

[PATCH net-next 6/9] bnxt_en: Do not setup PHY unless driving a single PF.

2017-02-12 Thread Michael Chan
-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index f3d829f..afd1190 100644 --- a/drivers/net/ethernet/br

[PATCH net-next 3/9] bnxt_en: Fix ethtool -l pre-set max combined channel.

2017-02-12 Thread Michael Chan
entralize logic to reserve rings.") Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/br

[PATCH net-next 7/9] bnxt_en: Print FEC settings as part of the linkup dmesg.

2017-02-12 Thread Michael Chan
Print FEC (Forward Error Correction) autoneg and encoding settings during link up. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 13 - drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 2 files changed, 16 insertions

[PATCH net-next 1/9] bnxt_en: Update to firmware interface spec 1.7.0.

2017-02-12 Thread Michael Chan
The new spec has NVRAM defragmentation support which will be used in the next patch to improve ethtool flash operation. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h

[PATCH net-next 2/9] bnxt_en: Retry failed NVM_INSTALL_UPDATE with defragmentation flag.

2017-02-12 Thread Michael Chan
mutex until we finish reading the response. Signed-off-by: Kshitij Soni <kshitij.s...@broadcom.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 32 ++- 1 file changed, 26 insertions(+), 6 deleti

[PATCH net-next 9/9] bnxt_en: Added PCI IDs for BCM57452 and BCM57454 ASICs

2017-02-12 Thread Michael Chan
From: Deepak Khungar <deepak.khun...@broadcom.com> Signed-off-by: Deepak Khungar <deepak.khun...@broadcom.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/dr

[PATCH net-next 4/9] bnxt_en: Allow NETIF_F_NTUPLE to be enabled on VFs.

2017-02-12 Thread Michael Chan
Commit ae10ae740ad2 ("bnxt_en: Add new hardware RFS mode.") has added code to allow NTUPLE to be enabled on VFs. So we now remove the BNXT_VF() check in rfs_capable() to allow NTUPLE on VFs. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broa

[PATCH net-next 8/9] bnxt_en: Fix bnxt_setup_tc() error message.

2017-02-12 Thread Michael Chan
Add proper puctuation to make the message more clear. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/et

[PATCH net-next 0/9] bnxt_en: Misc updates.

2017-02-12 Thread Michael Chan
Kshitij Soni (1): bnxt_en: Retry failed NVM_INSTALL_UPDATE with defragmentation flag. Michael Chan (7): bnxt_en: Update to firmware interface spec 1.7.0. bnxt_en: Fix ethtool -l pre-set max combined channel. bnxt_en: Allow NETIF_F_NTUPLE to be enabled on VFs. bnxt_en: Add hardware NTUPLE

[PATCH net-next v3 02/12] bnxt_en: Don't use DEFINE_DMA_UNMAP_ADDR to store DMA address in RX path.

2017-02-06 Thread Michael Chan
To support XDP_TX, we need the RX buffer's DMA address to transmit the packet. Convert the DMA address field to a permanent field in bnxt_sw_rx_bd. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 + drive

[PATCH net-next v3 04/12] bnxt_en: Parameterize RX buffer offsets.

2017-02-06 Thread Michael Chan
Convert the global constants BNXT_RX_OFFSET and BNXT_RX_DMA_OFFSET to device parameters. This will make it easier to support XDP with headroom support which requires different RX buffer offsets. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadco

[PATCH net-next v3 12/12] bnxt_en: Add support for XDP_TX action.

2017-02-06 Thread Michael Chan
trace_xdp_exception(). Add dma_sync. Signed-off-by: Michael Chan <michael.c...@broadcom.com> Tested-by: Andy Gospodarek <go...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 36 ++-- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 19 +- drivers/net/ethernet/b

[PATCH net-next v3 05/12] bnxt_en: Add RX page mode support.

2017-02-06 Thread Michael Chan
This mode is to support XDP. In this mode, each rx ring is configured with page sized buffers for linear placement of each packet. MTU will be restricted to what the page sized buffers can support. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadco

[PATCH net-next v3 10/12] bnxt_en: Refactor tx completion path.

2017-02-06 Thread Michael Chan
XDP_TX requires a different function to handle completion. Add a function pointer to handle tx completion logic. Regular TX rings will be assigned the current bnxt_tx_int() for the ->tx_int() function pointer. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net

[PATCH net-next v3 08/12] bnxt_en: Add tx ring mapping logic.

2017-02-06 Thread Michael Chan
can retrieve the netdev txq when handling TX completions. In this patch, before we introduce XDP_TX, the mapping is 1:1. v2: Fixed a bug in bnxt_tx_int(). Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15 --- drivers/net

[PATCH net-next v3 09/12] bnxt_en: Add a set of TX rings to support XDP.

2017-02-06 Thread Michael Chan
bp->tx_nr_rings_xdp. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 ++- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 3 files

[PATCH net-next v3 06/12] bnxt_en: Use event bit map in RX path.

2017-02-06 Thread Michael Chan
-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 30 +++--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drive

[PATCH net-next v3 07/12] bnxt_en: Centralize logic to reserve rings.

2017-02-06 Thread Michael Chan
ring checking logic in bnxt_setup_msix() can be removed. The rings have been reserved before hand. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 68 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h

[PATCH net-next v3 11/12] bnxt_en: Add basic XDP support.

2017-02-06 Thread Michael Chan
. Added XDP headroom support. Signed-off-by: Michael Chan <michael.c...@broadcom.com> Tested-by: Andy Gospodarek <go...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 36 +- drivers/net/ethernet/broadcom

[PATCH net-next v3 00/12] bnxt_en: Add XDP support.

2017-02-06 Thread Michael Chan
. - Added XDP headroom support. - Added tracing in exception path. - Clarified a parameter change. Michael Chan (12): bnxt_en: Refactor rx SKB function. bnxt_en: Don't use DEFINE_DMA_UNMAP_ADDR to store DMA address in RX path. bnxt_en: Add bp->rx_dir field for

[PATCH net-next v3 01/12] bnxt_en: Refactor rx SKB function.

2017-02-06 Thread Michael Chan
hanged the name of the last parameter to offset_and_len to make the code more clear. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 49 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 11 +-- 2 files

[PATCH net-next v3 03/12] bnxt_en: Add bp->rx_dir field for rx buffer DMA direction.

2017-02-06 Thread Michael Chan
When driver is running in XDP mode, rx buffers are DMA mapped as DMA_BIDIRECTIONAL. Add a field so the code will map/unmap rx buffers according to this field. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.

Re: [PATCH net-next v2 00/12] bnxt_en: Add XDP support.

2017-02-03 Thread Michael Chan
On Fri, Feb 3, 2017 at 4:33 PM, Jakub Kicinski wrote: > On Fri, 03 Feb 2017 16:50:54 -0500 (EST), David Miller wrote: >> We don't set precedence by one driver saying "hey it's better to do >> things this way, forget what all the other drivers are doing." Rather >> we have a

Re: [PATCH net-next v2 00/12] bnxt_en: Add XDP support.

2017-02-03 Thread Michael Chan
On Fri, Feb 3, 2017 at 12:49 PM, David Miller wrote: > > Please _DO NOT_ guard XDP support with an ifdef the user > can modify. > > Treat it like any other common netdev feature a driver might > support such as checksum offloading or GRO. > David, I want to make sure I

Re: [PATCH net-next v2 01/12] bnxt_en: Refactor rx SKB function.

2017-02-02 Thread Michael Chan
On Thu, Feb 2, 2017 at 4:22 PM, Jakub Kicinski <kubak...@wp.pl> wrote: > On Thu, 2 Feb 2017 15:40:19 -0800, Michael Chan wrote: >> On Thu, Feb 2, 2017 at 2:56 PM, Jakub Kicinski <kubak...@wp.pl> wrote: >> > (b) why >> > do you encode the two parame

Re: [PATCH net-next v2 01/12] bnxt_en: Refactor rx SKB function.

2017-02-02 Thread Michael Chan
On Thu, Feb 2, 2017 at 2:56 PM, Jakub Kicinski <kubak...@wp.pl> wrote: > On Thu, 2 Feb 2017 11:55:29 -0500, Michael Chan wrote: >> @@ -755,8 +757,8 @@ static void bnxt_reuse_rx_agg_bufs(struct bnxt_napi >> *bnapi, u16 cp_cons, >> >> static struct sk_

Re: [PATCH net-next v2 11/12] bnxt_en: Add basic XDP support.

2017-02-02 Thread Michael Chan
On Thu, Feb 2, 2017 at 9:18 AM, Mintz, Yuval wrote: >> +config BNXT_XDP >> + bool "Xpress Data Path (XDP) driver support" >> + default n >> + depends on BNXT && BPF >> + ---help--- >> + Say Y here if you want to enable XDP in the driver to support >>

[PATCH net-next v2 01/12] bnxt_en: Refactor rx SKB function.

2017-02-02 Thread Michael Chan
bit. The offset is needed to support the rx page mode and is not used in this existing function. v2: Changed the name of the last parameter to offset_and_len to make the code more clear. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bn

[PATCH net-next v2 00/12] bnxt_en: Add XDP support.

2017-02-02 Thread Michael Chan
and uncovering some bugs. v2: Addressed review comments from Alexei Starovoitov, Jakub Kicinski, and David Miller: - Added missing dma syncs. - Added XDP headroom support. - Added tracing in exception path. - Clarified a parameter change. Michael Chan (12): bnxt_en: Refactor

[PATCH net-next v2 02/12] bnxt_en: Don't use DEFINE_DMA_UNMAP_ADDR to store DMA address in RX path.

2017-02-02 Thread Michael Chan
To support XDP_TX, we need the RX buffer's DMA address to transmit the packet. Convert the DMA address field to a permanent field in bnxt_sw_rx_bd. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 + drive

[PATCH net-next v2 10/12] bnxt_en: Refactor tx completion path.

2017-02-02 Thread Michael Chan
uct bnxt_sw_tx_bd. XDP TX rings will use the struct page pointer. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 - drivers/net/ethernet/broadcom/bnxt/bnxt.h | 10 +- 2 files changed, 13 insertions(+), 2 deletions(-) d

[PATCH net-next v2 06/12] bnxt_en: Use event bit map in RX path.

2017-02-02 Thread Michael Chan
-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 28 +--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +++ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drive

[PATCH net-next v2 04/12] bnxt_en: Parameterize RX buffer offsets.

2017-02-02 Thread Michael Chan
Convert the global constants BNXT_RX_OFFSET and BNXT_RX_DMA_OFFSET to device parameters. This will make it easier to support XDP with headroom support which requires different RX buffer offsets. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadco

[PATCH net-next v2 08/12] bnxt_en: Add tx ring mapping logic.

2017-02-02 Thread Michael Chan
can retrieve the netdev txq when handling TX completions. In this patch, before we introduce XDP_TX, the mapping is 1:1. v2: Fixed a bug in bnxt_tx_int(). Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15 --- drivers/net

[PATCH net-next v2 11/12] bnxt_en: Add basic XDP support.

2017-02-02 Thread Michael Chan
-by: Michael Chan <michael.c...@broadcom.com> Tested-by: Andy Gospodarek <go...@broadcom.com> --- drivers/net/ethernet/broadcom/Kconfig | 8 ++ drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 33 +- drivers/net/ether

[PATCH net-next v2 05/12] bnxt_en: Add RX page mode support.

2017-02-02 Thread Michael Chan
This mode is to support XDP. In this mode, each rx ring is configured with page sized buffers for linear placement of each packet. MTU will be restricted to what the page sized buffers can support. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadco

[PATCH net-next v2 12/12] bnxt_en: Add support for XDP_TX action.

2017-02-02 Thread Michael Chan
Add dedicated transmit function and transmit completion handler for XDP which are a lot simpler than the original functions for SKB. v2: Add trace_xdp_exception(). Add dma_sync. Signed-off-by: Michael Chan <michael.c...@broadcom.com> Tested-by: Andy Gospodarek <go...@bro

[PATCH net-next v2 07/12] bnxt_en: Centralize logic to reserve rings.

2017-02-02 Thread Michael Chan
ring checking logic in bnxt_setup_msix() can be removed. The rings have been reserved before hand. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 68 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h

[PATCH net-next v2 09/12] bnxt_en: Add a set of TX rings to support XDP.

2017-02-02 Thread Michael Chan
bp->tx_nr_rings_xdp. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 ++- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 3 files

[PATCH net-next v2 03/12] bnxt_en: Add bp->rx_dir field for rx buffer DMA direction.

2017-02-02 Thread Michael Chan
When driver is running in XDP mode, rx buffers are DMA mapped as DMA_BIDIRECTIONAL. Add a field so the code will map/unmap rx buffers according to this field. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.

Re: [PATCH net-next 00/10] bnxt_en: Add XDP support.

2017-01-30 Thread Michael Chan
On Mon, Jan 30, 2017 at 9:13 PM, Jakub Kicinski <kubak...@wp.pl> wrote: > On Mon, 30 Jan 2017 20:47:47 -0800, Alexei Starovoitov wrote: >> On Mon, Jan 30, 2017 at 08:49:25PM -0500, Michael Chan wrote: >> > The first 8 patches refactor the code (rx/tx code paths and

Re: [PATCH net-next 09/10] bnxt_en: Add basic XDP support.

2017-01-30 Thread Michael Chan
On Mon, Jan 30, 2017 at 9:04 PM, Jakub Kicinski wrote: > > >> + if (netif_running(dev)) >> + bnxt_close_nic(bp, true, false); >> + >> + old = xchg(>xdp_prog, prog); >> + if (old) >> + bpf_prog_put(old); >> + >> + if (prog) { >> +

Re: [PATCH net-next 10/10] bnxt_en: Add support for XDP_TX action.

2017-01-30 Thread Michael Chan
On Mon, Jan 30, 2017 at 9:27 PM, Jakub Kicinski <kubak...@wp.pl> wrote: > On Mon, 30 Jan 2017 20:49:35 -0500, Michael Chan wrote: >> +static int bnxt_xmit_xdp(struct bnxt *bp, struct bnxt_napi *bnapi, >> + struct page *page, dma_addr_

[PATCH net-next 08/10] bnxt_en: Refactor tx completion path.

2017-01-30 Thread Michael Chan
uct bnxt_sw_tx_bd. XDP TX rings will use the struct page pointer. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 - drivers/net/ethernet/broadcom/bnxt/bnxt.h | 10 +- 2 files changed, 13 insertions(+), 2 deletions(-) d

[PATCH net-next 07/10] bnxt_en: Add a set of TX rings to support XDP.

2017-01-30 Thread Michael Chan
bp->tx_nr_rings_xdp. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 17 ++--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 ++- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 3 files

[PATCH net-next 01/10] bnxt_en: Refactor rx SKB function.

2017-01-30 Thread Michael Chan
ket data in the bnxt_sw_rx_bd structure. The original data field is changed to void pointer so that it can either hold the kmalloc'ed data or a page pointer. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bn

[PATCH net-next 04/10] bnxt_en: Use event bit map in RX path.

2017-01-30 Thread Michael Chan
-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 28 +--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +++ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drive

[PATCH net-next 10/10] bnxt_en: Add support for XDP_TX action.

2017-01-30 Thread Michael Chan
Add dedicated transmit function and transmit completion handler for XDP which are a lot simpler than the original functions for SKB. Signed-off-by: Michael Chan <michael.c...@broadcom.com> Tested-by: Andy Gospodarek <go...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnx

[PATCH net-next 03/10] bnxt_en: Add RX page mode support.

2017-01-30 Thread Michael Chan
This mode is to support XDP. In this mode, each rx ring is configured with page sized buffers for linear placement of each packet. MTU will be restricted to what the page sized buffers can support. Signed-off-by: Michael Chan <michael.c...@broadocm.com> --- drivers/net/ethernet/broadco

[PATCH net-next 06/10] bnxt_en: Add tx ring mapping logic.

2017-01-30 Thread Michael Chan
off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 11 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broa

[PATCH net-next 09/10] bnxt_en: Add basic XDP support.

2017-01-30 Thread Michael Chan
Add basic ndo_xdp support to setup and query program, configure the NIC to run in rx page mode, and support XDP_PASS, XDP_DROP, XDP_ABORTED actions only. Use Kconfig option to enable XDP support. Signed-off-by: Michael Chan <michael.c...@broadcom.com> Tested-by: Andy Gospodar

[PATCH net-next 05/10] bnxt_en: Centralize logic to reserve rings.

2017-01-30 Thread Michael Chan
ring checking logic in bnxt_setup_msix() can be removed. The rings have been reserved before hand. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 68 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h

[PATCH net-next 00/10] bnxt_en: Add XDP support.

2017-01-30 Thread Michael Chan
The first 8 patches refactor the code (rx/tx code paths and ring logic) and add the basic infrastructure to support XDP. The 9th patch adds basic ndo_xdp to support XDP_DROP and XDP_PASS only. The 10th patch completes the series with XDP_TX. Michael Chan (10): bnxt_en: Refactor rx SKB

[PATCH net-next 02/10] bnxt_en: Add bp->rx_dir field for rx buffer DMA direction.

2017-01-30 Thread Michael Chan
When driver is running in XDP mode, rx buffers are DMA mapped as DMA_BIDIRECTIONAL. Add a field so the code will map/unmap rx buffers according to this field. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.

[PATCH net 1/3] bnxt_en: Fix bnxt_reset() in the slow path task.

2017-01-24 Thread Michael Chan
BNXT_STATE_IN_SP_TASK must be the last functions to be called in bnxt_sp_task(). The common scheme will handle the condition properly. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 38 --- 1 file changed, 25 inse

[PATCH net 0/3] bnxt_en: Fix RTNL lock usage in bnxt_sp_task().

2017-01-24 Thread Michael Chan
is bnxt_sp_task() which does not automatically take RTNL, we add a common scheme for bnxt_sp_task() to call these functions properly under RTNL. Michael Chan (3): bnxt_en: Fix bnxt_reset() in the slow path task. bnxt_en: Fix RTNL lock usage on bnxt_update_link(). bnxt_en: Fix RTNL lock usage

[PATCH net 3/3] bnxt_en: Fix RTNL lock usage on bnxt_get_port_module_status().

2017-01-24 Thread Michael Chan
bnxt_get_port_module_status() calls bnxt_update_link() which expects RTNL to be held. In bnxt_sp_task() that does not hold RTNL, we need to call it with a prior call to bnxt_rtnl_lock_sp() and the call needs to be moved to the end of bnxt_sp_task(). Signed-off-by: Michael Chan <michae

[PATCH net 2/3] bnxt_en: Fix RTNL lock usage on bnxt_update_link().

2017-01-24 Thread Michael Chan
the caller to always hold RTNL. In bnxt_sp_task(), call bnxt_rtnl_lock_sp() before calling bnxt_update_link(). We also need to move the call to the end of bnxt_sp_task() since it will be clearing the BNXT_STATE_IN_SP_TASK bit. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drive

[PATCH net] bnxt_en: Fix "uninitialized variable" bug in TPA code path.

2017-01-17 Thread Michael Chan
Gospodarek <andrew.gospoda...@broadocm.com> Acked-by: Andy Gospodarek <andrew.gospoda...@broadocm.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net

[PATCH net-next v2 4/5] bnxt_en: Add support for ethtool -p.

2017-01-12 Thread Michael Chan
Add LED blinking code to support ethtool -p on the PF. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 40 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 17 + drivers/net/ethernet/broadco

[PATCH net-next v2 3/5] bnxt_en: Update to firmware interface spec to 1.6.1.

2017-01-12 Thread Michael Chan
Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 261 +++--- 1 file changed, 237 insertions(+), 24 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h b/drivers/net/ethernet/broadco

[PATCH net-next v2 0/5] bnxt_en: Misc. updates for net-next.

2017-01-12 Thread Michael Chan
Miscellaneous updates including firmware spec update, ethtool -p blinking LED support, RDMA SRIOV config callback, and minor fixes. v2: Dropped the DCBX RoCE app TLV patch until the ETH_P_IBOE RDMA patch is merged. Michael Chan (5): bnxt_en: Fix compiler warnings when CONFIG_RFS_ACCEL

[PATCH net-next v2 2/5] bnxt_en: Clear TPA flags when BNXT_FLAG_NO_AGG_RINGS is set.

2017-01-12 Thread Michael Chan
Commit bdbd1eb59c56 ("bnxt_en: Handle no aggregation ring gracefully.") introduced the BNXT_FLAG_NO_AGG_RINGS flag. For consistency, bnxt_set_tpa_flags() should also clear TPA flags when there are no aggregation rings. Signed-off-by: Michael Chan <michael.c...@broadcom.com>

[PATCH net-next v2 1/5] bnxt_en: Fix compiler warnings when CONFIG_RFS_ACCEL is not defined.

2017-01-12 Thread Michael Chan
/ethernet/broadcom/bnxt/bnxt.o drivers/net/ethernet/broadcom/bnxt/bnxt.c:4956:21: warning: ‘bnxt_get_max_func_vnics’ defined but not used [-Wunused-function] static unsigned int bnxt_get_max_func_vnics(struct bnxt *bp) ^ Signed-off-by: Michael Chan <michael.c...@broadcom.

[PATCH net-next v2 5/5] bnxt_en: Add the ulp_sriov_cfg hooks for bnxt_re RDMA driver.

2017-01-12 Thread Michael Chan
Add the ulp_sriov_cfg callbacks when the number of VFs is changing. This allows the RDMA driver to provision RDMA resources for the VFs. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 5 + 1 file changed, 5 insertions(+)

Re: [PATCH net-next 5/6] bnxt_en: Pass RoCE app priority to firmware.

2017-01-11 Thread Michael Chan
On Wed, Jan 11, 2017 at 10:34 AM, Doug Ledford <dledf...@redhat.com> wrote: > On Wed, 2017-01-11 at 09:17 -0800, Michael Chan wrote: >> On Wed, Jan 11, 2017 at 7:46 AM, David Miller <da...@davemloft.net> >> wrote: >> > >> > From: Michael Chan <michae

Re: [PATCH net-next 5/6] bnxt_en: Pass RoCE app priority to firmware.

2017-01-11 Thread Michael Chan
On Wed, Jan 11, 2017 at 7:46 AM, David Miller <da...@davemloft.net> wrote: > From: Michael Chan <michael.c...@broadcom.com> > Date: Tue, 10 Jan 2017 20:12:38 -0500 > >> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.h >> b/drivers/net/ethernet/broadcom

[PATCH net-next 2/6] bnxt_en: Clear TPA flags when BNXT_FLAG_NO_AGG_RINGS is set.

2017-01-10 Thread Michael Chan
Commit bdbd1eb59c56 ("bnxt_en: Handle no aggregation ring gracefully.") introduced the BNXT_FLAG_NO_AGG_RINGS flag. For consistency, bnxt_set_tpa_flags() should also clear TPA flags when there are no aggregation rings. Signed-off-by: Michael Chan <michael.c...@broadcom.com>

[PATCH net-next 4/6] bnxt_en: Add support for ethtool -p.

2017-01-10 Thread Michael Chan
Add LED blinking code to support ethtool -p on the PF. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 40 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 17 + drivers/net/ethernet/broadco

[PATCH net-next 6/6] bnxt_en: Add the ulp_sriov_cfg hooks for bnxt_re RDMA driver.

2017-01-10 Thread Michael Chan
Add the ulp_sriov_cfg callbacks when the number of VFs is changing. This allows the RDMA driver to provision RDMA resources for the VFs. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 5 + 1 file changed, 5 insertions(+)

[PATCH net-next 1/6] bnxt_en: Fix compiler warnings when CONFIG_RFS_ACCEL is not defined.

2017-01-10 Thread Michael Chan
/ethernet/broadcom/bnxt/bnxt.o drivers/net/ethernet/broadcom/bnxt/bnxt.c:4956:21: warning: ‘bnxt_get_max_func_vnics’ defined but not used [-Wunused-function] static unsigned int bnxt_get_max_func_vnics(struct bnxt *bp) ^ Signed-off-by: Michael Chan <michael.c...@broadcom.

[PATCH net-next 5/6] bnxt_en: Pass RoCE app priority to firmware.

2017-01-10 Thread Michael Chan
When the driver gets the RoCE app priority set/delete call through DCBNL, the driver will send the information to the firmware. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 106 +- drivers/net/et

[PATCH net-next 0/6] bnxt_en: Misc. updates for net-next.

2017-01-10 Thread Michael Chan
Miscellaneous updates including firmware spec update, ethtool -p blinking LED support, RDMA SRIOV and app TLV support, and minor fixes. Michael Chan (6): bnxt_en: Fix compiler warnings when CONFIG_RFS_ACCEL is not defined. bnxt_en: Clear TPA flags when BNXT_FLAG_NO_AGG_RINGS is set. bnxt_en

[PATCH net-next 3/6] bnxt_en: Update to firmware interface spec to 1.6.1.

2017-01-10 Thread Michael Chan
Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 261 +++--- 1 file changed, 237 insertions(+), 24 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h b/drivers/net/ethernet/broadco

[PATCH net] tg3: Fix race condition in tg3_get_stats64().

2017-01-06 Thread Michael Chan
ing tp->lock. Reported-by: Wang Yufen <wangyu...@huawei.com> Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/ethernet/broadcom/tg3.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c i

Re: [PATCH net] net: Fix inconsistent rtnl_lock usage on dev_get_stats().

2017-01-06 Thread Michael Chan
On Fri, Jan 6, 2017 at 10:01 AM, David Miller wrote: > From: Eric Dumazet > Date: Fri, 06 Jan 2017 09:32:56 -0800 > >> This makes no sense to me. >> >> RTNL is absolutely not needed to get device stats. >> >> We try to not add RTNL, especially when

[PATCH net] net: Fix inconsistent rtnl_lock usage on dev_get_stats().

2017-01-05 Thread Michael Chan
dev_get_stats() as __dev_get_stats() and add a new dev_get_stats() that takes rtnl_lock() before calling __dev_get_stats(). Modify all callers that already take rtnl_lock() to call __dev_get_stats(). Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/bonding/bond_

Re: [PATCH] tg3: Avoid NULL pointer dereference in tg3_get_nstats()

2017-01-05 Thread Michael Chan
On Thu, Jan 5, 2017 at 12:17 PM, David Miller <da...@davemloft.net> wrote: > From: Michael Chan <michael.c...@broadcom.com> > Date: Thu, 5 Jan 2017 12:04:13 -0800 > >> But it looks like ndo_get_stats() can be called without rtnl lock from >> net-procfs.c. So

Re: [PATCH] tg3: Avoid NULL pointer dereference in tg3_get_nstats()

2017-01-05 Thread Michael Chan
On Thu, Jan 5, 2017 at 9:33 AM, David Miller wrote: > From: Wang Yufen > Date: Thu, 5 Jan 2017 22:13:21 +0800 > >> From: Yufen Wang >> >> A possible NULL pointer dereference in tg3_get_stats64 while doing >> tg3_free_consistent. >

[PATCH net-next 13/14] bnxt_en: Handle no aggregation ring gracefully.

2016-12-29 Thread Michael Chan
. To handle it, we need to properly set up only 1 ring without aggregation. Set a new flag BNXT_FLAG_NO_AGG_RINGS for this condition and add logic to set up the chip to place RX data linearly into a single buffer per packet. Signed-off-by: Michael Chan <michael.c...@broadcom.com> --- drivers/net/et

<    1   2   3   4   5   6   7   8   9   10   >