| e73e4d18 | 03-Aug-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: wangxun: add pcie error handler
Support AER driver to handle the PCIe errors. Sometimes netdev watchdog Tx timeout happens before the AER error report when a PCIe error occurs, CPU blocking wou
net: wangxun: add pcie error handler
Support AER driver to handle the PCIe errors. Sometimes netdev watchdog Tx timeout happens before the AER error report when a PCIe error occurs, CPU blocking would be caused by MMIO during the reset process. To prevent it, check PCIe error status in .ndo_tx_timeout. The current function of ngbe is not yet fully developed, it will be completed in the future.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/20260803064334.21876-6-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| c023e976 | 03-Aug-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: wangxun: implement soft quiesce for PCIe error recovery
Function wx_soft_quiesce() provide a lightweight shutdown path during PCIe error recovery. It avoids MMIO-dependent operations in PCIe er
net: wangxun: implement soft quiesce for PCIe error recovery
Function wx_soft_quiesce() provide a lightweight shutdown path during PCIe error recovery. It avoids MMIO-dependent operations in PCIe error status.
Waiting for the service task to complete may unnecessarily delay PCIe error recovery, especially if the work item is already blocked by the hardware failure that triggered AER. So the service task is not explicitly cancelled in quiesce path. As a measure to block the service task, the checking of WX_STATE_DOWN and WX_STATE_RESETTING is added at the entry of relevant work item.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Link: https://patch.msgid.link/20260803064334.21876-5-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| c656a3b7 | 03-Aug-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: wangxun: add reinit parameter to wx->do_reset callback
To implement a simple hardware reset without tearing down the network interface state, introduce a boolean 'reinit' parameter to wx->do_re
net: wangxun: add reinit parameter to wx->do_reset callback
To implement a simple hardware reset without tearing down the network interface state, introduce a boolean 'reinit' parameter to wx->do_reset callback.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Link: https://patch.msgid.link/20260803064334.21876-4-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| e424cd46 | 10-Jul-2026 |
Mengyuan Lou <mengyuanlou@net-swift.com> |
net: libwx: add support for set_coalesce in wx_ethtool_ops_vf
Add support for set_coalesce in wx_ethtool_ops_vf, which is used to set interrupt coalescing parameters.
Update wx_write_eitr_vf() to u
net: libwx: add support for set_coalesce in wx_ethtool_ops_vf
Add support for set_coalesce in wx_ethtool_ops_vf, which is used to set interrupt coalescing parameters.
Update wx_write_eitr_vf() to use the same interrupt moderation encoding as PF devices, since PF and VF share the same register layout. And remove the now-unused WX_VXITR_MASK definition.
Signed-off-by: Mengyuan Lou <mengyuanlou@net-swift.com> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Link: https://patch.msgid.link/20260710015925.34769-3-mengyuanlou@net-swift.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| 7a333451 | 29-Apr-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: libwx: use request_irq for VF misc interrupt
Currently, request_threaded_irq() is used with a primary handler but a NULL threaded handler, while also setting the IRQF_ONESHOT flag. This specifi
net: libwx: use request_irq for VF misc interrupt
Currently, request_threaded_irq() is used with a primary handler but a NULL threaded handler, while also setting the IRQF_ONESHOT flag. This specific combination triggers a WARNING since the commit aef30c8d569c ("genirq: Warn about using IRQF_ONESHOT without a threaded handler").
WARNING: kernel/irq/manage.c:1502 at __setup_irq+0x4fa/0x760
Fix the issue by switching to request_irq(), which is the appropriate interface or a non-threaded interrupt handler, and removing the unnecessary IRQF_ONESHOT flag.
Fixes: eb4898fde1de ("net: libwx: add wangxun vf common api") Cc: stable@vger.kernel.org Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/786DDC7D5CCA6D0A+20260429083743.88961-2-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| 40637e4a | 07-Apr-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: libwx: improve flow control setting
Save the current mode of flow control, and enhance the statistics of pause frames.
The received pause frames are divided into XON and XOFF to be counted. An
net: libwx: improve flow control setting
Save the current mode of flow control, and enhance the statistics of pause frames.
The received pause frames are divided into XON and XOFF to be counted. And due to the hardware defect of SP devices, XON packets cannot be trasmitted correctly, so Tx XON pause is disabled by default for those devices.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/20260407025616.33652-10-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| 1dd9b0da | 07-Apr-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: libwx: wrap-around and reset qmprc counter
The WX_PX_MPRC registers are not clear-on-read hardware counters. The previous implementation directly read and accumulated these 32-bit values into a
net: libwx: wrap-around and reset qmprc counter
The WX_PX_MPRC registers are not clear-on-read hardware counters. The previous implementation directly read and accumulated these 32-bit values into a 64-bit software counter. Now implement a rd32_wrap() helper function to calculate the delta counter to correct the statistic.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/20260407025616.33652-9-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| dc33e52b | 07-Apr-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: wangxun: schedule hardware stats update in watchdog
Hardware statistics should be updated periodically in the watchdog to prevent 32-bit registers from overflowing. This is also required for th
net: wangxun: schedule hardware stats update in watchdog
Hardware statistics should be updated periodically in the watchdog to prevent 32-bit registers from overflowing. This is also required for the upcoming pause frame accounting logic, which relies on regular statistics sampling.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/20260407025616.33652-8-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| 58f63035 | 07-Apr-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: wangxun: reorder timer and work sync cancellations
When removing the device, timer_delete_sync(&wx->service_timer) is called in .ndo_stop() after cancel_work_sync(&wx->service_task). This may c
net: wangxun: reorder timer and work sync cancellations
When removing the device, timer_delete_sync(&wx->service_timer) is called in .ndo_stop() after cancel_work_sync(&wx->service_task). This may cause new work to be queued after device down.
Move unregister_netdev() before cancel_work_sync(), and use timer_shutdown_sync() to prevent the timer from being re-armed.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/20260407025616.33652-7-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
| b736ebed | 07-Apr-2026 |
Jiawen Wu <jiawenwu@trustnetic.com> |
net: wangxun: move ethtool_ops.set_channels into libwx
Since function ops wx->setup_tc() is set in txgbe and ngbe, ethtool_ops.set_channels can be implemented in libwx to reduce duplicated code.
Si
net: wangxun: move ethtool_ops.set_channels into libwx
Since function ops wx->setup_tc() is set in txgbe and ngbe, ethtool_ops.set_channels can be implemented in libwx to reduce duplicated code.
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Link: https://patch.msgid.link/20260407025616.33652-6-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|