#
39a03b40 |
| 01-Apr-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix double free in port start failure
During port start when bnxt_start_nic() fails, it tries to free "intr_handle->intr_vec" but the variable is not set to NULL after that. If port start
net/bnxt: fix double free in port start failure
During port start when bnxt_start_nic() fails, it tries to free "intr_handle->intr_vec" but the variable is not set to NULL after that. If port start fails, driver invokes bnxt_dev_stop() which will lead to a double free of "intr_handle->intr_vec".
Fix it by removing the call to free "intr_handle->intr_vec" in the bnxt_start_nic() failure path as it is anyway doing in bnxt_dev_stop().
Fixes: 9d276b439aaf ("net/bnxt: fix error handling in device start") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
058ac0dd |
| 29-Mar-2021 |
Thomas Monjalon <thomas@monjalon.net> |
drivers/net: remove useless autoneg capability
The flag ETH_LINK_SPEED_AUTONEG is 0, so it cannot be used in a capability bitmap.
Having 0 in speed capability means all speeds are accepted.
Signed
drivers/net: remove useless autoneg capability
The flag ETH_LINK_SPEED_AUTONEG is 0, so it cannot be used in a capability bitmap.
Having 0 in speed capability means all speeds are accepted.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
fb7ad441 |
| 21-Mar-2021 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: replace callback getting filter operations
Since rte_flow is the only API for filtering operations, the legacy driver interface filter_ctrl was too much complicated for the simple task of ge
ethdev: replace callback getting filter operations
Since rte_flow is the only API for filtering operations, the legacy driver interface filter_ctrl was too much complicated for the simple task of getting the struct rte_flow_ops.
The filter type RTE_ETH_FILTER_GENERIC and the filter operarion RTE_ETH_FILTER_GET are removed. The new driver callback flow_ops_get replaces filter_ctrl.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Rosen Xu <rosen.xu@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
4f1d8fdc |
| 20-Mar-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix memory allocation for command response
Driver re-allocates memory for the command response buffer when the installed firmware version is newer (and has a larger max response length) th
net/bnxt: fix memory allocation for command response
Driver re-allocates memory for the command response buffer when the installed firmware version is newer (and has a larger max response length) than the version of HWRM that was used to build the PMD.
This change helps to avoid the re-allocation by allocating the memory for the command response buffer with PAGE_SIZE.
Coverity issue: 366256, 366204, 366180 Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
show more ...
|
#
29ce7059 |
| 17-Mar-2021 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: check kvargs parsing
Check return value of rte_kvargs_process()
Coverity issue: 357765 Fixes: ba404aacc5cf ("net/bnxt: set maximum flow count") Fixes: 02a95625fe9c ("net/bnxt: add flow st
net/bnxt: check kvargs parsing
Check return value of rte_kvargs_process()
Coverity issue: 357765 Fixes: ba404aacc5cf ("net/bnxt: set maximum flow count") Fixes: 02a95625fe9c ("net/bnxt: add flow stats in extended stats") Fixes: 7b0940653720 ("net/bnxt: support host memory based TruFlow") Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
show more ...
|
#
ab15dd5a |
| 18-Mar-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix timesync when PTP is not supported
Fixed to return error when PTP support is not supported on the port. Also, removed an unnecessary check inside bnxt_get_rx_ts().
Fixes: b11cceb83a34
net/bnxt: fix timesync when PTP is not supported
Fixed to return error when PTP support is not supported on the port. Also, removed an unnecessary check inside bnxt_get_rx_ts().
Fixes: b11cceb83a34 ("net/bnxt: support timesync") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
586d9da3 |
| 18-Mar-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix link state operations
VFs does not have the privilege to change link configuration. But the driver silently returns success to these ethdev callbacks without actually issuing the HWRM
net/bnxt: fix link state operations
VFs does not have the privilege to change link configuration. But the driver silently returns success to these ethdev callbacks without actually issuing the HWRM command to bring the link up/down.
Fixes: 5c206086feaa ("net/bnxt: add link state operations") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
670ab553 |
| 16-Mar-2021 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: fix RSS context cleanup
The PMD is allocating an extra RSS context with each port start. But it is freeing only one RSS context during port stop. So at some point we run out of RSS context
net/bnxt: fix RSS context cleanup
The PMD is allocating an extra RSS context with each port start. But it is freeing only one RSS context during port stop. So at some point we run out of RSS contexts when we do multiple port stop/start sequences. bnxt_hwrm_vnic_ctx_alloc() is called by bnxt_setup_one_vnic(), but bnxt_hwrm_vnic_ctx_free() is not called in the corresponding bnxt_free_one_vnic().
Fix this by calling bnxt_hwrm_vnic_ctx_free() in bnxt_free_one_vnic().
Fixes: 7fe5668d2ea3 ("net/bnxt: support VLAN filter and strip") Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
fcf95379 |
| 16-Mar-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix PCI write check
CID 363716 (#1 of 1): Unchecked return value (CHECKED_RETURN) check_return: Calling rte_pci_write_config without checking return value (as is done elsewhere 46 out of 4
net/bnxt: fix PCI write check
CID 363716 (#1 of 1): Unchecked return value (CHECKED_RETURN) check_return: Calling rte_pci_write_config without checking return value (as is done elsewhere 46 out of 49 times).
Coverity issue: 363716 Fixes: be14720def9c ("net/bnxt: support FW reset") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
aa764bae |
| 16-Mar-2021 |
Somnath Kotur <somnath.kotur@broadcom.com> |
net/bnxt: fix Tx timestamp init
Fix to read the sequence ID register to get Tx timestamp. Reading the sequence ID register is necessary for the HW FIFO to advance and thereby get the correct value o
net/bnxt: fix Tx timestamp init
Fix to read the sequence ID register to get Tx timestamp. Reading the sequence ID register is necessary for the HW FIFO to advance and thereby get the correct value of the timestamp on Tx side. This patch fixes that.
Fixes: b11cceb83a34 ("net/bnxt: support timesync") Cc: stable@dpdk.org
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Lance Richardson <lance.richardson@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
d6541676 |
| 11-Mar-2021 |
Xueming Li <xuemingl@nvidia.com> |
ethdev: introduce representor type
To support more representor type, this patch introduces representor type enum. The enum is subject to be extended to support new representor in patches upcoming.
ethdev: introduce representor type
To support more representor type, this patch introduces representor type enum. The enum is subject to be extended to support new representor in patches upcoming.
For each devarg structure, only one type supported.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
show more ...
|
#
71f5872d |
| 12-Mar-2021 |
Somnath Kotur <somnath.kotur@broadcom.com> |
net/bnxt: fix Rx and Tx timestamps
timesync adjust and write_time APIs needed to account for the Rx and Tx timestamp counters as well. Fix it since it was not done earlier.
Fixes: b11cceb83a34 ("ne
net/bnxt: fix Rx and Tx timestamps
timesync adjust and write_time APIs needed to account for the Rx and Tx timestamp counters as well. Fix it since it was not done earlier.
Fixes: b11cceb83a34 ("net/bnxt: support timesync") Cc: stable@dpdk.org
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
527b1008 |
| 06-Mar-2021 |
Lance Richardson <lance.richardson@broadcom.com> |
net/bnxt: optimize Tx completion handling
Avoid copying mbuf pointers to separate array for bulk mbuf free when handling transmit completions for vector mode transmit.
Signed-off-by: Lance Richards
net/bnxt: optimize Tx completion handling
Avoid copying mbuf pointers to separate array for bulk mbuf free when handling transmit completions for vector mode transmit.
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
01406837 |
| 04-Mar-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix VF info allocation
1. Renamed bnxt_hwrm_alloc_vf_info()/bnxt_hwrm_free_vf_info to bnxt_alloc_vf_info()/bnxt_free_vf_info as it does not issue any HWRM command to fw. 2. Fix missi
net/bnxt: fix VF info allocation
1. Renamed bnxt_hwrm_alloc_vf_info()/bnxt_hwrm_free_vf_info to bnxt_alloc_vf_info()/bnxt_free_vf_info as it does not issue any HWRM command to fw. 2. Fix missing unlock when memory allocation fails.
Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
25fefa2b |
| 02-Mar-2021 |
Lance Richardson <lance.richardson@broadcom.com> |
net/bnxt: fix Rx descriptor status
Fix a number of issues in the bnxt receive descriptor status function, including: - Provide status of receive descriptor instead of completion descriptor.
net/bnxt: fix Rx descriptor status
Fix a number of issues in the bnxt receive descriptor status function, including: - Provide status of receive descriptor instead of completion descriptor. - Remove invalid comparison of raw ring index with masked ring index. - Correct misinterpretation of offset parameter as ring index. - Correct misuse of completion ring index for mbuf ring (the two rings have different sizes).
Fixes: 0fe613bb87b2 ("net/bnxt: support Rx descriptor status") Cc: stable@dpdk.org
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com> Reviewed-by: Andy Gospodarek <gospo@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
53f98141 |
| 24-Feb-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix PTP support for Thor
On Thor, Rx timestamp is present in the Rx completion record. Only 32 bits of the timestamp is present in the completion. The driver needs to periodically poll the
net/bnxt: fix PTP support for Thor
On Thor, Rx timestamp is present in the Rx completion record. Only 32 bits of the timestamp is present in the completion. The driver needs to periodically poll the current 48 bit free running timer using the HWRM_PORT_TS_QUERY command. It can combine the upper 16 bits from the HWRM response with the lower 32 bits in the Rx completion to produce the 48 bit timestamp for the Rx packet.
This patch adds an alarm thread to periodically poll the current 48 bit free running timer using the HWRM_PORT_TS_QUERY command. This avoids issuing the hwrm command from the Rx handler. This patch also handles the timer roll over condition.
Fixes: 6cbd89f9f3d8 ("net/bnxt: support PTP for Thor") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Lance Richardson <lance.richardson@broadcom.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
6a4f7139 |
| 24-Feb-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix FW readiness check during recovery
Moved fw readiness check to a new routine bnxt_check_fw_ready().
During error recovery, driver needs to wait for fw readiness. For that, it uses bnx
net/bnxt: fix FW readiness check during recovery
Moved fw readiness check to a new routine bnxt_check_fw_ready().
During error recovery, driver needs to wait for fw readiness. For that, it uses bnxt_hwrm_ver_get() function now and that function does parsing of the VER_GET response as well.
Added a new lightweight function bnxt_hwrm_poll_ver_get() for polling the firmware readiness which issues VER_GET and checks for success without processing the command response.
Fixes: df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
94131e4a |
| 24-Feb-2021 |
Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
net/bnxt: fix firmware fatal error handling
During some fatal firmware error conditions, the PCI config space register 0x2e which normally contains the subsystem ID will become 0xffff. This register
net/bnxt: fix firmware fatal error handling
During some fatal firmware error conditions, the PCI config space register 0x2e which normally contains the subsystem ID will become 0xffff. This register will revert back to the normal value after the chip has completed core reset. If we detect this condition, we can poll this config register immediately for the value to revert. Because we use config read cycles to poll this register, there is no possibility of Master Abort if we happen to read it during core reset. This speeds up recovery significantly as we don't have to wait for the conservative min_time before polling to see if the firmware has come out of reset. As soon as this register changes value we can proceed to re-initialize the device.
Fixes: df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW") Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
40a643b0 |
| 24-Feb-2021 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: update to new version of backing store
Update HWRM headers to version 1.10.2.15 which updates the backing store API for additional TQM rings. Add support for 9th TQM ring using latest fir
net/bnxt: update to new version of backing store
Update HWRM headers to version 1.10.2.15 which updates the backing store API for additional TQM rings. Add support for 9th TQM ring using latest firmware interface. Also make sure that we set only necessary bits in the enables field in backing store request.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
9f13e888 |
| 18-Feb-2021 |
Lance Richardson <lance.richardson@broadcom.com> |
net/bnxt: fix Rx queue count
bnxt_rx_queue_count_op() incorrectly returns the number of filled but unprocessed completion queue entries instead of the number of filled but unprocessed received packe
net/bnxt: fix Rx queue count
bnxt_rx_queue_count_op() incorrectly returns the number of filled but unprocessed completion queue entries instead of the number of filled but unprocessed received packet completions. Fix by properly accounting for the number of completion ring entries used by the various received packet completion types.
Fixes: 34c0ba839bae ("net/bnxt: fix Rx queue count") Cc: stable@dpdk.org
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
8e18a019 |
| 29-Jan-2021 |
Lance Richardson <lance.richardson@broadcom.com> |
net/bnxt: fix Rx completion ring size calculation
The size of the receive completion ring should be recalculated when MTU is increased to a size that requires scattered receive or when LRO is enable
net/bnxt: fix Rx completion ring size calculation
The size of the receive completion ring should be recalculated when MTU is increased to a size that requires scattered receive or when LRO is enabled. Move logic for this calculation from the ring configuration path to the device start path. - Made size calculation dependent only on scattered_rx status. - Moved calculation of scattered_rx up in the initialization sequence. - Made LRO offload status part of scattered_rx calculation.
When the completion ring size is too small, completion overflows can occur causing the ring to be disabled in hardware.
Fixes: 04067844a3e9 ("net/bnxt: reduce CQ queue size without aggregation ring") Cc: stable@dpdk.org
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
2addc463 |
| 27-Jan-2021 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: update copyright year
Update copyright year in various files.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by
net/bnxt: update copyright year
Update copyright year in various files.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
show more ...
|
#
7db2f5ed |
| 14-Jan-2021 |
Somnath Kotur <somnath.kotur@broadcom.com> |
net/bnxt: fix lock handling in stop and close
err_recovery_lock needs to be released before returning in stop and close_op if FW_RESET flag is set.
Fixes: 6f5f3b99821e ("net/bnxt: check chip reset
net/bnxt: fix lock handling in stop and close
err_recovery_lock needs to be released before returning in stop and close_op if FW_RESET flag is set.
Fixes: 6f5f3b99821e ("net/bnxt: check chip reset in stop and close")
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
3127f992 |
| 14-Jan-2021 |
Somnath Kotur <somnath.kotur@broadcom.com> |
net/bnxt: refactor init/uninit
Move all the individual driver fields allocation routines to one routine - bnxt_drv_init(). This houses all such routines where memory needs to be allocated once durin
net/bnxt: refactor init/uninit
Move all the individual driver fields allocation routines to one routine - bnxt_drv_init(). This houses all such routines where memory needs to be allocated once during the driver's lifetime and does not need to be torn down during error recovery.
Rename some function names in accordance with their functionality. bnxt_init_board() is doing nothing more than mapping the PCI bars, so rename it as such.
Given that there is a bnxt_shutdown_nic that is called in dev_stop_op, rename it's counterpart - bnxt_init_chip() that is called in dev_start_op, to bnxt_start_nic. Also helps avoid confusion with some of the other bnxt_init_xxx routines. Rename bnxt_init_fw() to bnxt_get_config() as that is what that routine is doing mostly functionality wise.
Cc: stable@dpdk.org
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Steven Webster <steven.webster@windriver.com>
show more ...
|