dpdk.git
7 years agodoc: update release notes for bnxt PMD
Ajit Khaparde [Thu, 1 Jun 2017 17:07:23 +0000 (12:07 -0500)]
doc: update release notes for bnxt PMD

Update release doc briefly describing updates to bnxt PMD.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support to set VF rxmode
Ajit Khaparde [Thu, 1 Jun 2017 17:07:22 +0000 (12:07 -0500)]
net/bnxt: support to set VF rxmode

This patch adds support to configure the VF L2 Rx settings.
The per VF setting is maintained in bnxt_child_vf_info.l2_rx_mask

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: configure a default VF VLAN
Ajit Khaparde [Thu, 1 Jun 2017 17:07:21 +0000 (12:07 -0500)]
net/bnxt: configure a default VF VLAN

This patch adds code to insert a default VF VLAN.
Also track the current default VLAN per vnic for the VF.
When setting the default VLAN, avoid setting it to the current value.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support to add a VF MAC address
Ajit Khaparde [Thu, 1 Jun 2017 17:07:20 +0000 (12:07 -0500)]
net/bnxt: support to add a VF MAC address

This patch adds support to allocate a filter and program
it in the hardware for every MAC address added to the specified
function.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: determine the Rx status of VF
Ajit Khaparde [Thu, 1 Jun 2017 17:07:19 +0000 (12:07 -0500)]
net/bnxt: determine the Rx status of VF

This patch adds code to determine the Rx status of a VF.
It adds the rte_pmd_bnxt_get_vf_rx_status call, which calculates
the VNIC count of the function to get the Rx status.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support get and clear VF specific stats
Ajit Khaparde [Thu, 1 Jun 2017 17:07:18 +0000 (12:07 -0500)]
net/bnxt: support get and clear VF specific stats

This patch adds code to get and clear VF stats.

It also adds the necessary HWRM structures to send the command
to the firmware.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support set VF QOS and MAC anti spoof
Ajit Khaparde [Thu, 1 Jun 2017 17:07:17 +0000 (12:07 -0500)]
net/bnxt: support set VF QOS and MAC anti spoof

This patch adds support to
1) enable VF MAC anti spoof.
2) QOS configuration for specified VF.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support Tx loopback, set VF MAC and queues drop
Ajit Khaparde [Thu, 1 Jun 2017 17:07:16 +0000 (12:07 -0500)]
net/bnxt: support Tx loopback, set VF MAC and queues drop

Add functions rte_pmd_bnxt_set_tx_loopback,
rte_pmd_bnxt_set_all_queues_drop_en and
rte_pmd_bnxt_set_vf_mac_addr to configure tx_loopback,
queue_drop and VF MAC address setting in the hardware.
It also adds the necessary functions to send the HWRM commands
to the firmware.

Signed-off-by: Steeven Li <steeven.li@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support LED on/off
Ajit Khaparde [Thu, 1 Jun 2017 17:07:15 +0000 (12:07 -0500)]
net/bnxt: support LED on/off

This patch adds support for dev_led_on/off dev_ops

HWRM calls added:
bnxt_hwrm_port_led_qcaps()
bnxt_hwrm_port_led_cfg()

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agodoc: add LED support to default features file
Ajit Khaparde [Thu, 1 Jun 2017 17:07:14 +0000 (12:07 -0500)]
doc: add LED support to default features file

Update default.ini to indicate LED on/off support

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: refactor the query stats
Ajit Khaparde [Thu, 1 Jun 2017 17:07:13 +0000 (12:07 -0500)]
net/bnxt: refactor the query stats

1) Use hwrm_stat_ctx_query command to query statistics
   Using hwrm_stat_ctx_query command will allow polling
   the statistics from hardware instead of using the current push
   model from the hardware which does a DMA of the stats to the host
   at fixed intervals.

2) Use the rx_mbuf_alloc_fail to track mbuf alloc failures.

3) We were wrongly incrementing hwrm_cmd_seq in bnxt_hwrm_stat_clear
   and bnxt_hwrm_stat_ctx_alloc functions.  This patch fixes that.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support VLAN pvid
Ajit Khaparde [Thu, 1 Jun 2017 17:07:12 +0000 (12:07 -0500)]
net/bnxt: support VLAN pvid

This patch adds code to support vlan_pvid_set dev_op

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support rxq/txq get information
Ajit Khaparde [Thu, 1 Jun 2017 17:07:11 +0000 (12:07 -0500)]
net/bnxt: support rxq/txq get information

Add support for txq_info_get and rxq_info_get dev_ops

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support LRO
Ajit Khaparde [Thu, 1 Jun 2017 17:07:10 +0000 (12:07 -0500)]
net/bnxt: support LRO

This patch adds support to enable and disable LRO
To support this feature, the driver creates an aggregator ring.
When the hardware starts doing LRO, it sends a tpa_start completion.
When the driver receives a tpa_end completion, it indicates that the
LRO chaining is complete.

Signed-off-by: Steeven Li <steeven.li@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support set MTU
Ajit Khaparde [Thu, 1 Jun 2017 17:07:09 +0000 (12:07 -0500)]
net/bnxt: support set MTU

This patch adds support to modify MTU using the set_mtu dev_op.
To support frames > 2k, the PMD creates an aggregator ring.
When a frame greater than 2k is received, it is fragmented
and the resulting fragments are DMA'ed to the aggregator ring.
Now the driver can support jumbo frames upto 9500 bytes.

Signed-off-by: Steeven Li <steeven.li@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support get FW version
Ajit Khaparde [Thu, 1 Jun 2017 17:07:08 +0000 (12:07 -0500)]
net/bnxt: support get FW version

This patch adds support for fw_version_get dev_op

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agodoc: document bnxt allmulticast mode support
Ajit Khaparde [Thu, 1 Jun 2017 17:07:07 +0000 (12:07 -0500)]
doc: document bnxt allmulticast mode support

This patch update bnxt.int to document Allmulticast mode
which is already supported by the PMD.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support multicast filter and set MAC addr
Ajit Khaparde [Thu, 1 Jun 2017 17:07:06 +0000 (12:07 -0500)]
net/bnxt: support multicast filter and set MAC addr

This patch adds support for set_mc_addr_list and
mac_addr_set dev_ops

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support VLAN filter and strip
Ajit Khaparde [Thu, 1 Jun 2017 17:07:05 +0000 (12:07 -0500)]
net/bnxt: support VLAN filter and strip

This patch adds VLAN strip and offload callbacks.
To add a VLAN filter:
    For each VNIC and each associated filter(s)
        if VLAN exists:
            if VLAN matches vlan_id
                VLAN filter already exists, just skip and continue
            else
                add a new MAC+VLAN filter
        else
            Remove the old MAC only filter
            Add a new MAC+VLAN filter

To remove a VLAN filter:
    For each VNIC and each associated filter(s)
        if VLAN exists && VLAN matches vlan_id
            remove the MAC+VLAN filter
            add a new MAC only filter
        else
            VLAN filter doesn't exist, just skip and continue

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support xstats get/reset
Ajit Khaparde [Thu, 1 Jun 2017 17:07:04 +0000 (12:07 -0500)]
net/bnxt: support xstats get/reset

This patch adds support to get and reset xstats dev_ops

dev_ops added:
xstats_get, xstats_get_name, xstats_reset

HWRM commands added:
hwrm_port_qstats, hwrm_port_clr_stats

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support tunneling
Ajit Khaparde [Thu, 1 Jun 2017 17:07:03 +0000 (12:07 -0500)]
net/bnxt: support tunneling

Add support for udp_tunnel_port_add/del dev_ops to configure a UDP port
for VXLAN and Geneve Tunnel protocols.

The HWRM supports only one global destination port for a tunnel type,
use a reference counter to keep track of its usage.
Cache the configured VXLAN/Geneve ports and use that value to check
if the right UDP port is being freed up.
Skip calling bnxt_hwrm_tunnel_dst_port_alloc if the same UDP port is
being programmed.
Skip calling bnxt_hwrm_tunnel_dst_port_free if no UDP port has been
configured.

Also update tx offload capabilities

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: add additional HWRM debug info
Ajit Khaparde [Thu, 1 Jun 2017 17:07:02 +0000 (12:07 -0500)]
net/bnxt: add additional HWRM debug info

Add the cmd_err and opaque_0 and opaque_1 fields to HWRM error
messages.  These allow better debugging of some classes of HWRM
errors.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: support lack of huge pages
Ajit Khaparde [Thu, 1 Jun 2017 17:07:01 +0000 (12:07 -0500)]
net/bnxt: support lack of huge pages

rte_malloc_virt2phy() does not return a physical address if huge pages
aren't in use.  Further, rte_memzone->phys_addr is not a physical address.

Use rte_mem_virt2phy() and manually lock pages to support lack of
huge pages.

Also check the return value of rte_mem_virt2phy()

Verify the function returns an address. Otherwise return an error and
log a message.

Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: handle VF/PF initialization appropriately
Ajit Khaparde [Thu, 1 Jun 2017 17:07:00 +0000 (12:07 -0500)]
net/bnxt: handle VF/PF initialization appropriately

1) For a VF, query the firmware to determine if a MAC address is
   already configured. If not configure a random default MAC address.

2) Do not initialize the default completion ring in
   bnxt_alloc_hwrm_rings().

3) While registering for async events with the firmware,
   use func_vf_cfg for a VF and use func_cfg for a PF.

4) Query the VNIC plcmode config using the bnxt_hwrm_vnic_plcmodes_qcfg
   before a VNIC is updated. Reconfigure the VNIC with the plcmode
   configuration queried earlier. Not doing this could overwrite
   the plcmodes in some cases.

5) Reorg the bnxt_handle_fwd_req to properly handle the forwarded
   requests. The previous code did not handle it completely.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: refactor to properly allocate resources for PF/VF
Ajit Khaparde [Thu, 1 Jun 2017 17:06:59 +0000 (12:06 -0500)]
net/bnxt: refactor to properly allocate resources for PF/VF

1) Move the function reset to bnxt_dev_init.
   On the same lines, setup, enable and request interrupt to init path.
   Memory allocation is also being done in the init path.

2) After a function reset, configure the VFs.  Distribute resources
   evenly between all functions (PF and VF) for now. In the future, this
   should be controllable.

3) The bnxt_vf_info and bnxt_pf_info had lot of duplication. Move the
   common items to struct bnxt. And only unique items specific to PF
   remain in the struct bnxt_pf_info.

4) Program the firmware to allow certain commands sent by a VF.
   Disallowing these will prevent clean VF driver cleanup.

5) Since PF/VF need to allocate resources from a pool in the hardware,
   use func_qcaps and func_qcfg to appropriately query the capabilities
   and available resources.

6) If a PF is being initialized and no VFs are allocated, explicitly
   call func_cfg to allocate the resources.

7) Once resources are requested from the firmware, update local copy
   of resource count in struct bnxt only after sending the func_qcfg to
   make sure the allocation request in the firmware went through.

The changes in this patch will be used by the subsequent patches
to allow proper initialization of PF/VF instance.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/bnxt: update to HWRM version 1.7.7
Ajit Khaparde [Thu, 1 Jun 2017 17:06:58 +0000 (12:06 -0500)]
net/bnxt: update to HWRM version 1.7.7

This patch updates the Broadcom bnxt PMD to version 1.7.7
Most of the changes in the patch are in the hsi_struct_def_dpdk.h - an
autogenerated file. The changes in the *.c files are because of changes
in the macro names.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
7 years agonet/i40e: fix VF statistics
Qi Zhang [Mon, 5 Jun 2017 21:14:20 +0000 (17:14 -0400)]
net/i40e: fix VF statistics

CRC bytes should be excluded, so rx/tx bytes of VF stats is aligned
with PF stats.

Fixes: 9aace75fc82e ("i40e: fix statistics")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agonet/e1000: add support 2-tuple filter on i210/i211
Wei Zhao [Mon, 5 Jun 2017 05:40:57 +0000 (13:40 +0800)]
net/e1000: add support 2-tuple filter on i210/i211

Add support of i210 and i211 type nic in 2-tuple filter.

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/i40e: exclude internal packet's byte count
Qi Zhang [Thu, 1 Jun 2017 17:55:45 +0000 (13:55 -0400)]
net/i40e: exclude internal packet's byte count

Tx/Rx byte counts of internal managed packet should be
excluded from the total rx/tx bytes.

Fixes: 9aace75fc82e ("i40e: fix statistics")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
7 years agonet/ixgbe: enable flex bytes for generic flow API
Qi Zhang [Thu, 1 Jun 2017 17:36:45 +0000 (13:36 -0400)]
net/ixgbe: enable flex bytes for generic flow API

Add fdir flex byte support for rte_flow APIs.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/ixgbe: fix fdir mask not be reset
Qi Zhang [Thu, 1 Jun 2017 17:36:44 +0000 (13:36 -0400)]
net/ixgbe: fix fdir mask not be reset

When the last fdir flow be destroyed, the flag "mask_added"
should be reset, so the remain mask info will not take effect
when a new flow be added.

Fixes: a14de8b498d1 ("net/ixgbe: destroy consistent filter")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/ixgbe: remove redundant code
Qi Zhang [Thu, 1 Jun 2017 17:36:43 +0000 (13:36 -0400)]
net/ixgbe: remove redundant code

Remove redundant code.
item->type != RTE_FLOW_ITEM_TYPE_END already cover
item->type == RTE_FLOW_ITEM_TYPE_VLAN.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/i40e: update actions for FDIR
Beilei Xing [Wed, 31 May 2017 23:47:30 +0000 (07:47 +0800)]
net/i40e: update actions for FDIR

This commit adds support of FLAG action and PASSTHRU
action for flow director.

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoethdev: move bypass functions to ixgbe PMD
Radu Nicolau [Wed, 31 May 2017 11:10:25 +0000 (12:10 +0100)]
ethdev: move bypass functions to ixgbe PMD

Move all bypass functions to ixgbe pmd and remove function
pointers from the eth_dev_ops struct.

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/igb: fix checksum valid flags
Wei Zhao [Wed, 31 May 2017 03:03:12 +0000 (11:03 +0800)]
net/igb: fix checksum valid flags

To enable L4 checksum offload for SCTP packets, E1000_RXCSUM_CRCOFL
should be set.

Otherwise, for SCTP packets even L4 checksum not calculated, it will
return PKT_RX_L4_CKSUM_GOOD.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/mlx5: fix redundant free of Tx buffer
Yongseok Koh [Wed, 31 May 2017 17:48:45 +0000 (10:48 -0700)]
net/mlx5: fix redundant free of Tx buffer

SW completion ring of Tx (txq->elts) stores individual mbufs even if a
multi-segmented packet is sent. rte_pktmbuf_free_seg() must be used when
cleaning up the completion ring. Otherwise, chained mbufs are redundantly
freed and finally it would cause a crash.

Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path")
CC: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agonet/mlx5: fix exception handling
Yongseok Koh [Tue, 30 May 2017 01:02:59 +0000 (18:02 -0700)]
net/mlx5: fix exception handling

A sanity check is required in priv_fdir_disable(). If resizing Rx queue
fails, this can cause a crash by referencing a NULL pointer.

Fixes: 76f5c99e6840 ("mlx5: support flow director")
Fixes: 0cdddf4d0626 ("net/mlx5: split Rx queue structure")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/sfc: rely on one desc is one mbuf in simple EF10 Tx reap
Andrew Rybchenko [Fri, 26 May 2017 13:50:44 +0000 (14:50 +0100)]
net/sfc: rely on one desc is one mbuf in simple EF10 Tx reap

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
Reviewed-by: David Riddoch <driddoch@solarflare.com>
7 years agonet/sfc: check added but not completed descs on EF10 Tx reap
Andrew Rybchenko [Fri, 26 May 2017 13:50:43 +0000 (14:50 +0100)]
net/sfc: check added but not completed descs on EF10 Tx reap

There is not point to check other Tx descriptors.
It is important if Tx datapath does not reset Tx descriptor
mbuf pointer to NULL on completion (EF10 simple Tx will do).

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
Reviewed-by: David Riddoch <driddoch@solarflare.com>
7 years agonet/ring: fix adding MAC addresses
Chas Williams [Fri, 26 May 2017 13:18:05 +0000 (09:18 -0400)]
net/ring: fix adding MAC addresses

When .mac_addr_add() was changed to allow a return code, ring was changed
to return -ENOTSUP.  This changes the behavior of the rte_ring driver in
a way that does not maintain backward compatibility.  Additionally, if
the intent is to return -ENOTSUP, you could simply not define the stubs.

Fixes: 6d01e580ac5d ("ethdev: fix adding invalid MAC address")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <ciwillia@brocade.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/mlx5: remove already initialised mbuf fields
Nélio Laranjeiro [Mon, 29 May 2017 09:45:09 +0000 (11:45 +0200)]
net/mlx5: remove already initialised mbuf fields

Since commit 8f094a9ac5d7 ("mbuf: set mbuf fields while in pool"), some
fields are already initialised and do not need to be modified by the PMD
anymore.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/mlx5: fix flow application order on stop/start
Nélio Laranjeiro [Mon, 29 May 2017 09:40:58 +0000 (11:40 +0200)]
net/mlx5: fix flow application order on stop/start

Flow rules must be applied in the same order as they have been created and
thus destroyed in the reverse order.

Fixes: 2097d0d1e2cc ("net/mlx5: support basic flow items and actions")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/ixgbe/base: update shared code version to 2017.05.16
Wei Dai [Sat, 27 May 2017 08:33:18 +0000 (16:33 +0800)]
net/ixgbe/base: update shared code version to 2017.05.16

* Remove PHY access for some 1G ports
* Disable X550EM-x 1GBASE-T led switch support

Signed-off-by: Wei Dai <wei.dai@intel.com>
7 years agonet/ixgbe/base: disable X550EM-x 1GBASE-T led switch support
Wei Dai [Sat, 27 May 2017 08:33:17 +0000 (16:33 +0800)]
net/ixgbe/base: disable X550EM-x 1GBASE-T led switch support

This patch disables X550EM_X 1Gbase-t led_[on|off] support since
the LEDs are wired to the PHY and the driver can not access the
PHY. led_[on|off]

Support is disabled by setting the function pointer to NULL.
init_led_link_act is also set to NULL.

Signed-off-by: Wei Dai <wei.dai@intel.com>
7 years agonet/ixgbe/base: remove PHY access for some 1G ports
Wei Dai [Sat, 27 May 2017 08:33:16 +0000 (16:33 +0800)]
net/ixgbe/base: remove PHY access for some 1G ports

This patch removes some some 1GBASE-T PHY access since the FW
configures the PHY. SW shall not configure or initialize link.
Accessing the PHY would require the use of MDI clause 22 which
should be avoided in high layer driver code.

Signed-off-by: Wei Dai <wei.dai@intel.com>
7 years agonet/sfc: handle already flushed Tx queue gracefully
Andrew Rybchenko [Sat, 27 May 2017 07:55:34 +0000 (08:55 +0100)]
net/sfc: handle already flushed Tx queue gracefully

Tx queue may be already flushed because of previous Tx error or
MC reboot.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agonet/sfc: add Tx queue flush failed flag for sanity
Andrew Rybchenko [Sat, 27 May 2017 07:55:33 +0000 (08:55 +0100)]
net/sfc: add Tx queue flush failed flag for sanity

Avoid usage of flushing state when Tx queue flush init failed.

Fixes: fed9aeb46c19 ("net/sfc: implement transmit path start / stop")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agonet/sfc: handle already flushed Rx queue gracefully
Andrew Rybchenko [Sat, 27 May 2017 07:55:32 +0000 (08:55 +0100)]
net/sfc: handle already flushed Rx queue gracefully

Rx queue may be already flushed because of previous Rx error or
MC reboot.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agonet/sfc/base: let caller know that queue is already flushed
Andy Moreton [Sat, 27 May 2017 07:55:31 +0000 (08:55 +0100)]
net/sfc/base: let caller know that queue is already flushed

Tx/Rx queue may be already flushed due to Tx/Rx error on the queue or
MC reboot. Caller needs to know that the queue is already flushed to
avoid waiting for flush done event.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agonet/sfc/base: fix error code usage in common code
Andy Moreton [Sat, 27 May 2017 07:55:30 +0000 (08:55 +0100)]
net/sfc/base: fix error code usage in common code

MCDI results returned in req.emr_rc have already been translated
from MC_CMD_ERR_* to errno names, so using an MC_CMD_ERR_* value
is incorrect.

Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support")
Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agonet/cxgbe: configure PCIe extended tags
Rahul Lakkireddy [Sat, 27 May 2017 03:48:00 +0000 (09:18 +0530)]
net/cxgbe: configure PCIe extended tags

Add support to configure minimum and maximum PCIe extended tag.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: remove rmb bottleneck in Rx path
Rahul Lakkireddy [Sat, 27 May 2017 03:47:59 +0000 (09:17 +0530)]
net/cxgbe: remove rmb bottleneck in Rx path

rmb before determining rsp_type is a bottleneck.
Once we determine rsp-type is FL, we can directly go ahead and read
packets based on q->stat->pidx and budget_left.

This removes bottleneck of rmb once per every RX packet.
Now, rmb exists once per RX batch.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: fix rxq default params for ports under same PF
Rahul Lakkireddy [Sat, 27 May 2017 03:47:58 +0000 (09:17 +0530)]
net/cxgbe: fix rxq default params for ports under same PF

Enabling rx queues with default interrupt parameters doesn't happen
for other ports under same PF due to FULL_INIT_DONE flag being set
by the first port.

Fix is to to allow each port to enable its own rx queues with default
parameters.

Fixes: 0462d115441d ("cxgbe: add device related operations")

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: improve latency for slow traffic
Rahul Lakkireddy [Sat, 27 May 2017 03:47:57 +0000 (09:17 +0530)]
net/cxgbe: improve latency for slow traffic

TX coalescing waits for ETH_COALESCE_PKT_NUM packets to be coalesced
across bursts before transmitting them.  For slow traffic, such as
100 PPS, this approach increases latency since packets are received
one at a time and tx coalescing has to wait for ETH_COALESCE_PKT
number of packets to arrive before transmitting.

To fix this:

- Update rx path to use status page instead and only receive packets
  when either the ingress interrupt timer threshold (5 us) or
  the ingress interrupt packet count threshold (32 packets) fires.
  (i.e. whichever happens first).

- If number of packets coalesced is <= number of packets sent
  by tx burst function, stop coalescing and transmit these packets
  immediately.

Also added compile time option to favor throughput over latency by
default.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: remove LSB interrupt support
Rahul Lakkireddy [Sat, 27 May 2017 03:46:28 +0000 (09:16 +0530)]
net/cxgbe: remove LSB interrupt support

Remove RTE_PCI_DRV_INTR_LSC from driver flags, since LSC interrupts
are currently not supported.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: fix port statistics
Rahul Lakkireddy [Sat, 27 May 2017 03:46:27 +0000 (09:16 +0530)]
net/cxgbe: fix port statistics

Do not count pause frames as part of normal TX/RX Frame/Byte counts.
Also, switch to using software counters rather than hardware for RX
stats.

Fixes: 856505d303f4 ("cxgbe: add port statistics")
Cc: stable@dpdk.org
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: add compressed error vector
Rahul Lakkireddy [Sat, 27 May 2017 03:46:26 +0000 (09:16 +0530)]
net/cxgbe: add compressed error vector

Add support for compressed error vector available in cpl_rx_pkt for
Chelsio T6.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: update Rx path for Chelsio T6
Rahul Lakkireddy [Sat, 27 May 2017 03:46:25 +0000 (09:16 +0530)]
net/cxgbe: update Rx path for Chelsio T6

Update RX path to reflect Chelsio T6 register value changes.
Update ingress pack boundary value based on maximum payload size
that can be accommodated by underlying PCI.  Update ingress pad
boundary value based on smallest memory controller bus width
possible.  Enforce alignment for free list pointer start address.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: update RXQ channel mapping for Chelsio T6
Rahul Lakkireddy [Sat, 27 May 2017 03:46:24 +0000 (09:16 +0530)]
net/cxgbe: update RXQ channel mapping for Chelsio T6

Update MPS buffer groups and TP ingress channel congestion map to
correct RXQ allocation for Chelsio T6.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: update Tx path for Chelsio T6
Rahul Lakkireddy [Sat, 27 May 2017 03:46:23 +0000 (09:16 +0530)]
net/cxgbe: update Tx path for Chelsio T6

Update TX path to reflect Chelsio T6 changes.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: update hardware info prints
Rahul Lakkireddy [Sat, 27 May 2017 03:46:22 +0000 (09:16 +0530)]
net/cxgbe: update hardware info prints

Update informational prints pertaining to underlying hardware.
Add bootstrap firmware version and expansion ROM version prints.
Move the prints to a single function.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe/base: add forward error correction support
Rahul Lakkireddy [Sat, 27 May 2017 03:46:21 +0000 (09:16 +0530)]
net/cxgbe/base: add forward error correction support

Add forward error correction (FEC) support and update link
configuration.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: update link speeds and port modules
Rahul Lakkireddy [Sat, 27 May 2017 03:46:20 +0000 (09:16 +0530)]
net/cxgbe: update link speeds and port modules

Add 25G and 100G link speeds and update supported port modules.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: grab available ports after firmware reset
Rahul Lakkireddy [Sat, 27 May 2017 03:46:19 +0000 (09:16 +0530)]
net/cxgbe: grab available ports after firmware reset

Move code to get the available ports from the firmware after it had
been reset.  This ensures that driver uses the latest info on available
ports after firmware reset.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe/base: update flash part information
Rahul Lakkireddy [Sat, 27 May 2017 03:46:18 +0000 (09:16 +0530)]
net/cxgbe/base: update flash part information

Update flash part identification and decoding to accommodate new
flash parts.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe/base: update register dump
Rahul Lakkireddy [Sat, 27 May 2017 03:46:17 +0000 (09:16 +0530)]
net/cxgbe/base: update register dump

Add Chelsio T6 registers to register dump.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/cxgbe: add support to run Chelsio T6 cards
Rahul Lakkireddy [Sat, 27 May 2017 03:46:16 +0000 (09:16 +0530)]
net/cxgbe: add support to run Chelsio T6 cards

Add code to detect and run T6 devices.  Update PCI ID Device table
with Chelsio T6 device ids and update documentation.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
7 years agonet/avp: remove redundant assignment
Ferruh Yigit [Thu, 25 May 2017 17:52:45 +0000 (18:52 +0100)]
net/avp: remove redundant assignment

dev_info->driver_name is assigned by rte_eth_dev_info_get()
and existing value overwritten, removing assignment.

Fixes: 1a85922369c4 ("net/avp: add device configuration")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
7 years agonet/tap: add Rx/Tx checksum offload support
Pascal Mazon [Mon, 22 May 2017 11:20:43 +0000 (13:20 +0200)]
net/tap: add Rx/Tx checksum offload support

This patch adds basic offloading support, widely expected in a PMD.

Verify IPv4 and UDP/TCP checksums upon packet reception, and set
ol_flags accordingly.

On Tx, set IPv4 and UDP/TCP checksums when required, considering
ol_flags.

Signed-off-by: Pascal Mazon <pascal.mazon@6wind.com>
7 years agonet/tap: fix some flow collision
Pascal Mazon [Mon, 22 May 2017 11:19:53 +0000 (13:19 +0200)]
net/tap: fix some flow collision

The following two flow rules (testpmd syntax) should not collide:
flow create 0 priority 1 ingress pattern eth / ipv4 / end actions drop / end
flow create 0 priority 1 ingress pattern eth / ipv6 / end actions drop / end

But the eth_type in the associated TC rule was set to either "ip" or
"ipv6".  For TC, they could thus not have the same priority.

Use ETH_P_ALL only in the TC message to make sure those rules can
coexist.

Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org
Signed-off-by: Pascal Mazon <pascal.mazon@6wind.com>
7 years agobus/fslmc: reduce the debug log messages
Hemant Agrawal [Fri, 26 May 2017 06:51:25 +0000 (12:21 +0530)]
bus/fslmc: reduce the debug log messages

Reducing the amount of logging and making the err statement
as a single line statements.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for firmware version get
Hemant Agrawal [Fri, 26 May 2017 06:51:24 +0000 (12:21 +0530)]
net/dpaa2: add support for firmware version get

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add support to detect SoC version
Hemant Agrawal [Fri, 26 May 2017 06:51:23 +0000 (12:21 +0530)]
bus/fslmc: add support to detect SoC version

This is required to configure the stashing destination
based on the cluster size.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: configure jumbo frames
Hemant Agrawal [Fri, 26 May 2017 06:51:22 +0000 (12:21 +0530)]
net/dpaa2: configure jumbo frames

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for flow control
Hemant Agrawal [Fri, 26 May 2017 06:51:21 +0000 (12:21 +0530)]
net/dpaa2: add support for flow control

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add link status config support
Hemant Agrawal [Fri, 26 May 2017 06:51:20 +0000 (12:21 +0530)]
net/dpaa2: add link status config support

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for VLAN strip
Hemant Agrawal [Fri, 26 May 2017 06:51:19 +0000 (12:21 +0530)]
net/dpaa2: add support for VLAN strip

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for VLAN filter and offload
Hemant Agrawal [Fri, 26 May 2017 06:51:18 +0000 (12:21 +0530)]
net/dpaa2: add support for VLAN filter and offload

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for multicast promiscuous mode
Hemant Agrawal [Fri, 26 May 2017 06:51:17 +0000 (12:21 +0530)]
net/dpaa2: add support for multicast promiscuous mode

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for MAC address filtering
Hemant Agrawal [Fri, 26 May 2017 06:51:16 +0000 (12:21 +0530)]
net/dpaa2: add support for MAC address filtering

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: update TAILQ usages in dpaa2 objects
Hemant Agrawal [Fri, 26 May 2017 06:51:15 +0000 (12:21 +0530)]
bus/fslmc: update TAILQ usages in dpaa2 objects

This patch updates the usages of malloc and TAILQ in
dpbp and dpio objects.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for tail drop on queue
Hemant Agrawal [Fri, 26 May 2017 06:51:14 +0000 (12:21 +0530)]
net/dpaa2: add support for tail drop on queue

This will help in limiting the size of queues and avoid
them growing practically infinite.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add support for congestion notification
Hemant Agrawal [Fri, 26 May 2017 06:51:13 +0000 (12:21 +0530)]
net/dpaa2: add support for congestion notification

In case of HW egress FQ is congested, skip further
transmission of frames.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: export qbman results in map file
Hemant Agrawal [Fri, 26 May 2017 06:51:12 +0000 (12:21 +0530)]
bus/fslmc: export qbman results in map file

In order to check the congestion state of Egress FQs,
this qbman function will be used by the DPAA2 Ethernet PMD.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support parallel Rx
Hemant Agrawal [Fri, 26 May 2017 06:51:11 +0000 (12:21 +0530)]
net/dpaa2: support parallel Rx

Typically when the PMD issues a Rx command to DPAA2 hardware,
the HW writes the available descriptors into the given memory.
The RX function then processes the frames and prepare them as
mbufs.

This patch adds support to issue another pull request to hardware
in another memory location, before we start processing the output
of the first request. This help in controlling the CPU cycles
wasted during the wait for the hardware to write the descriptors.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support for parallel Rx DQ requests
Hemant Agrawal [Fri, 26 May 2017 06:51:10 +0000 (12:21 +0530)]
bus/fslmc: support for parallel Rx DQ requests

DPAA2 hardware support the option to configure
multiple memories for Rx recv buffer (DPAA2-DQRR).
Each Rx request executing is called as 'DQ' request.
This patch adds routines to get information w.r.t each DQ request.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: improve the error handling in dev init
Hemant Agrawal [Fri, 26 May 2017 06:51:09 +0000 (12:21 +0530)]
net/dpaa2: improve the error handling in dev init

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: stop using software annotation
Hemant Agrawal [Fri, 26 May 2017 06:51:08 +0000 (12:21 +0530)]
net/dpaa2: stop using software annotation

The DPAA2 driver is not using the DPAA2 frame descriptor
software annotation area. This patch reduces the
PTA length to zero and adjust the RX Buffer Layout
accordingly.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: remove port level buffer layout definition
Hemant Agrawal [Fri, 26 May 2017 06:51:07 +0000 (12:21 +0530)]
net/dpaa2: remove port level buffer layout definition

This code in device init is not required, as the buffer
layout setting is also being programmed during queue configuration.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agomk: change dpaa2 machine flag to cortex-a72
Hemant Agrawal [Fri, 26 May 2017 06:51:06 +0000 (12:21 +0530)]
mk: change dpaa2 machine flag to cortex-a72

DPAA2 devices now support cortex-a72. They no longer support a57.
Also fp and simd is no more required to be stated explicitly for
standard a72 core.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/sfc: advertise that device is detachable
Andrew Rybchenko [Thu, 25 May 2017 12:03:18 +0000 (13:03 +0100)]
net/sfc: advertise that device is detachable

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
7 years agonet/liquidio: set device speed capability info
Shijith Thotton [Thu, 25 May 2017 09:24:18 +0000 (14:54 +0530)]
net/liquidio: set device speed capability info

Add subsystem device id of CN23xx cards and expose speed capability of
devices. Update liquidio feature file to mark support.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
7 years agonet/igb: fix add/delete of flex filters
Markus Theil [Mon, 22 May 2017 10:17:50 +0000 (12:17 +0200)]
net/igb: fix add/delete of flex filters

Before this patch, flex_filter->index was always zero when it was read
and used after rte_zmalloc. The corresponding code was therefore moved
into the add and delete parts of the if/else statement.

Fixes: 231d43909a31 ("igb: migrate flex filter to new API")
Cc: stable@dpdk.org
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/igb: support flex filters on i210/i211
Markus Theil [Mon, 22 May 2017 10:17:49 +0000 (12:17 +0200)]
net/igb: support flex filters on i210/i211

i210/i211 also support flex filters. Tested on i210.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/mlx5: fix completion buffer size
Shahaf Shuler [Thu, 18 May 2017 10:44:45 +0000 (13:44 +0300)]
net/mlx5: fix completion buffer size

Completion buffer size was computed wrongly, causing
completion polling to wraparound too early and miss entries.

Fixing it by using Direct Verbs to query the CQ info.

Fixes: 6218063b39a6 ("net/mlx5: refactor Rx data path")
Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agonet/af_packet: fix packet bytes counting
Chas Williams [Wed, 17 May 2017 18:03:35 +0000 (14:03 -0400)]
net/af_packet: fix packet bytes counting

On error, we also need to zero the bytes transmitted.

Fixes: f4ff17a465d2 ("net/af_packet: guard against buffer overruns in Tx path")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <ciwillia@brocade.com>
7 years agonet/af_packet: handle possible null pointer
Chas Williams [Wed, 17 May 2017 18:03:33 +0000 (14:03 -0400)]
net/af_packet: handle possible null pointer

Fixes: 1b93c2aa81b4 ("net/af_packet: add interface name to internals")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <ciwillia@brocade.com>
7 years agonet/sfc: support multi-process
Andrew Rybchenko [Thu, 18 May 2017 14:00:04 +0000 (15:00 +0100)]
net/sfc: support multi-process

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
7 years agonet/sfc: use locally stored data for logging
Andrew Rybchenko [Thu, 18 May 2017 14:00:03 +0000 (15:00 +0100)]
net/sfc: use locally stored data for logging

Required to be able to use logging in the secondary process
where Ethernet device pointer stored in sfc_adapter is invalid.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
7 years agonet/sfc: carefully cleanup on init failure and shutdown
Andrew Rybchenko [Thu, 18 May 2017 14:00:02 +0000 (15:00 +0100)]
net/sfc: carefully cleanup on init failure and shutdown

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>