[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file

[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 --- 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

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 + drivers/net/ethernet/broadcom/bnxt/b

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15

[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 Tested-by: Andy Gospodarek --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 36 ++-- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 19 +- drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 83 +++ drivers

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 135

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15 --- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 ++

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 68 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 +- drivers/net/ethernet

[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 Tested-by: Andy Gospodarek --- drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 36 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 9 +- drivers/net/ethernet/broadcom/bnxt

[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 --- 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 changed, 27 insertions(+), 13 del

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

2017-02-06 Thread Michael Chan
: Michael Chan --- 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/drivers/net/ethernet/broadcom/bnxt/bnxt.c

[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 fiel

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

2017-02-06 Thread Michael Chan
Changed the name of the last parameter to offset_and_len to make the code more clear. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 49 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 11 +-- 2 files changed, 44 insertions(+), 1

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 27 --- drivers/net/ethernet

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 "discussion" about wha

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 understand completely. Are

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 wrote: > On Thu, 2 Feb 2017 15:40:19 -0800, Michael Chan wrote: >> On Thu, Feb 2, 2017 at 2:56 PM, Jakub Kicinski wrote: >> > (b) why >> > do you encode the two parameters in a single u32? It's the seventh >>

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 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_buff *

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 >> + eBPF programs in

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

2017-02-02 Thread Michael Chan
r 16 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 --- drivers/net/ethernet/broadcom/bnxt/bnx

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

2017-02-02 Thread Michael Chan
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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 + drivers/net/ethernet/broadcom/bnxt/b

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 - drivers/net/ethernet/broadcom/bnxt/bnxt.h | 10 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/ether

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

2017-02-02 Thread Michael Chan
: Michael Chan --- 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/drivers/net/ethernet/broadcom/bnxt/bnxt.c

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15 --- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 ++

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

2017-02-02 Thread Michael Chan
: Michael Chan Tested-by: Andy Gospodarek --- drivers/net/ethernet/broadcom/Kconfig | 8 ++ drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 33 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 9 +- drivers/net/ethernet

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 133

[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 Tested-by: Andy Gospodarek --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 35

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 68 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 +- drivers/net/ethernet

[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 --- 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 changed, 27 insertions(+), 13 del

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 27 --- drivers/net/ethernet

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 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 ring logic) >

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(&bp->xdp_prog, prog); >> + if (old) >> + bpf_prog_put(old); >> + >> + if (prog) { >> + bnxt_set_rx_

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 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_t mapping, u32 offset, >> +

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 - drivers/net/ethernet/broadcom/bnxt/bnxt.h | 10 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/ether

[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 --- 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 changed, 24 insertions(+), 12 del

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 42 ++- drivers/net/ethernet/

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

2017-01-30 Thread Michael Chan
: Michael Chan --- 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/drivers/net/ethernet/broadcom/bnxt/bnxt.c

[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 Tested-by: Andy Gospodarek --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 34 +- drivers/net/ethernet/broadcom/bnxt

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

2017-01-30 Thread Michael Chan
-by: Michael Chan --- 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/broadcom/bnxt/bnxt.c index cb30

[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 Tested-by: Andy Gospodarek --- drivers/net/ethernet/broadcom/Kconfig

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 121

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 68 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 +- drivers/net/ethernet

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 22 ++ drivers/net/ethernet/broadcom

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 38 --- 1 file changed, 25 insertions(+), 13 deletions(-) diff

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

2017-01-24 Thread Michael Chan
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 on

[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 --- drivers/net

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

2017-01-24 Thread Michael Chan
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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c

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

2017-01-17 Thread Michael Chan
Gospodarek Acked-by: Andy Gospodarek Signed-off-by: Michael Chan --- 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 9608cb4..53e686f 100644

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 40 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 17 + drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 44

[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 --- 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/broadcom/bnxt/bnxt_hsi.h index d0d49ed..5df32ab

[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 is not

[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 --- drivers/net/ethernet/broadcom/b

[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 --- drivers/net/ethernet

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/ethernet

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 wrote: > On Wed, 2017-01-11 at 09:17 -0800, Michael Chan wrote: >> On Wed, Jan 11, 2017 at 7:46 AM, David Miller >> wrote: >> > >> > From: Michael Chan >> > Date: Tue, 10 Jan 2017 20:12:38 -0500 >> &

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 wrote: > From: Michael Chan > 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/bnxt/bnxt_dcb.h >> index 35a0d28..f2630cc 100644 &g

[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 --- drivers/net/ethernet/broadcom/b

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 40 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 17 + drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 44

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/ethernet

[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 --- drivers/net/ethernet

[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 --- drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 106 +- drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.h | 3

[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 --- 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/broadcom/bnxt/bnxt_hsi.h index d0d49ed..5df32ab

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

2017-01-06 Thread Michael Chan
y taking tp->lock. Reported-by: Wang Yufen Signed-off-by: Michael Chan --- 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 index 185e9e0..ae42de4 100644 --- a/drivers/net/ethernet/

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 not required. >> >> Sure, RTNETLINK dumps curren

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

2017-01-05 Thread Michael Chan
ginal 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 --- drivers/net/bonding/bond_main.c

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 wrote: > From: Michael Chan > 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 it is possible that we'll read tp->hw_stats after it &g

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. > ... >> This patch avoids the NULL pointer dereference by using !

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

2016-12-29 Thread Michael Chan
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 --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 25

[PATCH net-next 12/14] bnxt_en: Set default completion ring for async events.

2016-12-29 Thread Michael Chan
bnxt_en allocates the completion rings. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 338dbd0

[PATCH net-next 06/14] bnxt_en: Add function to get vnic capability.

2016-12-29 Thread Michael Chan
The new vnic RSS capability will enhance NTUPLE support, to be added in subsequent patches. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 22 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h

[PATCH net-next 04/14] bnxt_en: Fix and clarify link_info->advertising.

2016-12-29 Thread Michael Chan
from the firmware yet. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 ++-- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a

[PATCH net-next 11/14] bnxt_en: Implement new scheme to reserve tx rings.

2016-12-29 Thread Michael Chan
use the new scheme when the firmware interface spec is 1.6.1 or newer. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 59 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 + drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 15

[PATCH net-next 07/14] bnxt_en: Refactor code that determines RFS capability.

2016-12-29 Thread Michael Chan
Add function bnxt_rfs_supported() that determines if the chip supports RFS. Refactor the existing function bnxt_rfs_capable() that determines if run-time conditions support RFS. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 38 +++ 1

[PATCH net-next 09/14] bnxt_en: Assign additional vnics to VFs.

2016-12-29 Thread Michael Chan
Assign additional vnics to VFs whenever possible so that NTUPLE can be supported on the VFs. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b

[PATCH net-next 14/14] MAINTAINERS: Add bnxt_en maintainer info.

2016-12-29 Thread Michael Chan
Signed-off-by: Michael Chan --- MAINTAINERS | 6 ++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index cfff2c9..11904a9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2605,6 +2605,12 @@ L: netdev@vger.kernel.org S: Supported F: drivers/net/ethernet

[PATCH net-next 03/14] bnxt_en: Improve the IRQ disable sequence during shutdown.

2016-12-29 Thread Michael Chan
. Rearrange the code to avoid forward declaration. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 89 --- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet

[PATCH net-next 08/14] bnxt_en: Add new hardware RFS mode.

2016-12-29 Thread Michael Chan
. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 27 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom

[PATCH net-next 01/14] bnxt_en: Remove busy poll logic in the driver.

2016-12-29 Thread Michael Chan
Use native NAPI polling instead. The next patch will complete the work by switching to use napi_complete_done() Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 53 + drivers/net/ethernet/broadcom/bnxt/bnxt.h | 99 --- 2

[PATCH net-next 02/14] bnxt_en: Use napi_complete_done()

2016-12-29 Thread Michael Chan
For better busy polling and GRO support. Do not re-arm IRQ if napi_complete_done() returns false. Signed-off-by: Michael Chan --- 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

[PATCH net-next 10/14] bnxt_en: Add IPV6 hardware RFS support.

2016-12-29 Thread Michael Chan
Accept ipv6 flows in .ndo_rx_flow_steer() and support ETHTOOL_GRXCLSRULE ipv6 flows. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 32 +++--- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 53 +-- 2 files changed, 66

[PATCH net-next 00/14] bnxt_en: updates for net-next.

2016-12-29 Thread Michael Chan
the firmware is implemented for newer chips and firmware. Plus some misc. cleanups, minor fixes, and to add the maintainer entry. Please review. Michael Chan (14): bnxt_en: Remove busy poll logic in the driver. bnxt_en: Use napi_complete_done() bnxt_en: Improve the IRQ disable sequence

[PATCH net-next 05/14] bnxt_en: Refactor TPA code path.

2016-12-29 Thread Michael Chan
Call tcp_gro_complete() in the common code path instead of the chip- specific method. The newer 5731x method is missing the call. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet

Re: [PATCH V2 00/22] Broadcom RoCE Driver (bnxt_re)

2016-12-12 Thread Michael Chan
On Mon, Dec 12, 2016 at 8:52 PM, Selvin Xavier wrote: >> CHECK drivers/infiniband/hw/bnxtre/bnxt_qplib_rcfw.c >> CHECK drivers/infiniband/hw/bnxtre/bnxt_qplib_sp.c >> CHECK drivers/infiniband/hw/bnxtre/bnxt_qplib_fp.c >> drivers/infiniband/hw/bnxtre/bnxt_qplib_fp.c:1015:22: warning: c

Re: 4.9.0-rc8: tg3 dead after resume

2016-12-07 Thread Michael Chan
On Wed, Dec 7, 2016 at 7:20 AM, Billy Shuman wrote: > After resume on 4.9.0-rc8 tg3 is dead. > > In logs I see: > kernel: tg3 :44:00.0: phy probe failed, err -19 > kernel: tg3 :44:00.0: Problem fetching invariants of chip, aborting -19 is -ENODEV which means tg3 cannot read the PHY ID. I

[PATCH net-next v2 4/7] bnxt_en: Improve completion ring allocation for VFs.

2016-12-06 Thread Michael Chan
bnxt_restore_pf_fw_resources() to restore FW resources. Later on we need to add some logic to account for RDMA resources. Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2

[PATCH net-next v2 6/7] bnxt_en: Refactor the driver registration function with firmware.

2016-12-06 Thread Michael Chan
for the RDMA driver. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 34 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 ++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b

[PATCH net-next v2 5/7] bnxt_en: Reserve RDMA resources by default.

2016-12-06 Thread Michael Chan
. v2: Fix compile warning when BNXT_CONFIG_SRIOV is not set. Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 58 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 9 + 2 files changed, 66 insertions(+), 1 deletio

[PATCH net-next v2 7/7] bnxt_en: Add interface to support RDMA driver.

2016-12-06 Thread Michael Chan
the RDMA driver calls bnxt_request_msix() function pointer. 6. When the RDMA driver calls bnxt_unregister_device(), all RDMA resources will be cleaned up. v2: Fixed 2 uninitialized variable warnings. Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt

[PATCH net-next v2 2/7] bnxt_en: Enable MSIX early in bnxt_init_one().

2016-12-06 Thread Michael Chan
Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 183 +++--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + 2 files changed, 115 insertions(+), 69 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom

[PATCH net-next v2 3/7] bnxt_en: Move function reset to bnxt_init_one().

2016-12-06 Thread Michael Chan
27;ll do function reset as well. Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 25 ++--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 - 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/drivers/net/eth

[PATCH net-next v2 1/7] bnxt_en: Add bnxt_set_max_func_irqs().

2016-12-06 Thread Michael Chan
By refactoring existing code into this new function. The new function will be used in subsequent patches. v2: Fixed compile warning when CONFIG_BNXT_SRIOV is not set. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 17 +++-- drivers/net/ethernet

[PATCH net-next v2 0/7] bnxt_en: Add interface to support RDMA driver.

2016-12-06 Thread Michael Chan
messages, and receive some notifications. v2: Fixed kbuild test robot warnings. David, please consider this series for net-next. Thanks. Michael Chan (7): bnxt_en: Add bnxt_set_max_func_irqs(). bnxt_en: Enable MSIX early in bnxt_init_one(). bnxt_en: Move function reset to bnxt_init_one

[PATCH net-next 4/7] bnxt_en: Improve completion ring allocation for VFs.

2016-12-06 Thread Michael Chan
bnxt_restore_pf_fw_resources() to restore FW resources. Later on we need to add some logic to account for RDMA resources. Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2

[PATCH net-next 6/7] bnxt_en: Refactor the driver registration function with firmware.

2016-12-06 Thread Michael Chan
for the RDMA driver. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 34 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 ++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b

<    5   6   7   8   9   10   11   12   13   14   >