* [PATCH net-next v2] qlcnic: check pci_reset_function result
@ 2023-04-07 7:18 Denis Plotnikov
2023-04-07 9:01 ` Simon Horman
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Denis Plotnikov @ 2023-04-07 7:18 UTC (permalink / raw)
To: netdev
Cc: linux-kernel, anirban.chakraborty, sony.chacko, GR-Linux-NIC-Dev,
helgaas, simon.horman, manishc, shshaikh, den-plotnikov
Static code analyzer complains to unchecked return value.
The result of pci_reset_function() is unchecked.
Despite, the issue is on the FLR supported code path and in that
case reset can be done with pcie_flr(), the patch uses less invasive
approach by adding the result check of pci_reset_function().
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 7e2cf4feba05 ("qlcnic: change driver hardware interface mechanism")
Signed-off-by: Denis Plotnikov <den-plotnikov@yandex-team.ru>
---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
index 87f76bac2e463..eb827b86ecae8 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
@@ -628,7 +628,13 @@ int qlcnic_fw_create_ctx(struct qlcnic_adapter *dev)
int i, err, ring;
if (dev->flags & QLCNIC_NEED_FLR) {
- pci_reset_function(dev->pdev);
+ err = pci_reset_function(dev->pdev);
+ if (err) {
+ dev_err(&dev->pdev->dev,
+ "Adapter reset failed (%d). Please reboot\n",
+ err);
+ return err;
+ }
dev->flags &= ~QLCNIC_NEED_FLR;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH net-next v2] qlcnic: check pci_reset_function result 2023-04-07 7:18 [PATCH net-next v2] qlcnic: check pci_reset_function result Denis Plotnikov @ 2023-04-07 9:01 ` Simon Horman 2023-04-07 15:31 ` Bjorn Helgaas 2023-04-11 11:24 ` Paolo Abeni 2023-04-12 7:40 ` patchwork-bot+netdevbpf 2 siblings, 1 reply; 6+ messages in thread From: Simon Horman @ 2023-04-07 9:01 UTC (permalink / raw) To: Denis Plotnikov Cc: netdev, linux-kernel, anirban.chakraborty, sony.chacko, GR-Linux-NIC-Dev, helgaas, manishc, shshaikh On Fri, Apr 07, 2023 at 10:18:49AM +0300, Denis Plotnikov wrote: > Static code analyzer complains to unchecked return value. > The result of pci_reset_function() is unchecked. > Despite, the issue is on the FLR supported code path and in that > case reset can be done with pcie_flr(), the patch uses less invasive > approach by adding the result check of pci_reset_function(). > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: 7e2cf4feba05 ("qlcnic: change driver hardware interface mechanism") > Signed-off-by: Denis Plotnikov <den-plotnikov@yandex-team.ru> Thanks Denis, With reference to, Link: https://lore.kernel.org/all/20230405193708.GA3632282@bhelgaas/ I think this is the best approach in lieu of feedback from those with knowledge of the hardware / testing on the hardware. Reviewed-by: Simon Horman <simon.horman@corigine.com> > --- > drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c > index 87f76bac2e463..eb827b86ecae8 100644 > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c > @@ -628,7 +628,13 @@ int qlcnic_fw_create_ctx(struct qlcnic_adapter *dev) > int i, err, ring; > > if (dev->flags & QLCNIC_NEED_FLR) { > - pci_reset_function(dev->pdev); > + err = pci_reset_function(dev->pdev); > + if (err) { > + dev_err(&dev->pdev->dev, > + "Adapter reset failed (%d). Please reboot\n", > + err); > + return err; > + } > dev->flags &= ~QLCNIC_NEED_FLR; > } > > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next v2] qlcnic: check pci_reset_function result 2023-04-07 9:01 ` Simon Horman @ 2023-04-07 15:31 ` Bjorn Helgaas 0 siblings, 0 replies; 6+ messages in thread From: Bjorn Helgaas @ 2023-04-07 15:31 UTC (permalink / raw) To: Simon Horman Cc: Denis Plotnikov, netdev, linux-kernel, anirban.chakraborty, sony.chacko, GR-Linux-NIC-Dev, manishc, shshaikh On Fri, Apr 07, 2023 at 11:01:14AM +0200, Simon Horman wrote: > On Fri, Apr 07, 2023 at 10:18:49AM +0300, Denis Plotnikov wrote: > > Static code analyzer complains to unchecked return value. > > The result of pci_reset_function() is unchecked. > > Despite, the issue is on the FLR supported code path and in that > > case reset can be done with pcie_flr(), the patch uses less invasive > > approach by adding the result check of pci_reset_function(). Text could possibly be smoothed out a bit, e.g.: Static code analyzer complains that the result of pci_reset_function() is unchecked. Check it and return error if it fails because the driver relies on the device being reset. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > > > Fixes: 7e2cf4feba05 ("qlcnic: change driver hardware interface mechanism") > > Signed-off-by: Denis Plotnikov <den-plotnikov@yandex-team.ru> > > Thanks Denis, > > With reference to, > > Link: https://lore.kernel.org/all/20230405193708.GA3632282@bhelgaas/ > > I think this is the best approach in lieu of feedback from those > with knowledge of the hardware / testing on the hardware. Agreed, looks good to me, too. It doesn't look like there's much activity in this driver (except wider-scale cleanups, etc), so I doubt anybody could be confident that relying pcie_flr() would be safe. Seem a *little* weird that this reset is done in .ndo_open() instead of once at probe-time, but that's a much bigger question and not worth worrying about. Reviewed-by: Bjorn Helgaas <bhelgaas@google.com> > Reviewed-by: Simon Horman <simon.horman@corigine.com> > > > --- > > drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c > > index 87f76bac2e463..eb827b86ecae8 100644 > > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c > > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c > > @@ -628,7 +628,13 @@ int qlcnic_fw_create_ctx(struct qlcnic_adapter *dev) > > int i, err, ring; > > > > if (dev->flags & QLCNIC_NEED_FLR) { > > - pci_reset_function(dev->pdev); > > + err = pci_reset_function(dev->pdev); > > + if (err) { > > + dev_err(&dev->pdev->dev, > > + "Adapter reset failed (%d). Please reboot\n", > > + err); > > + return err; > > + } > > dev->flags &= ~QLCNIC_NEED_FLR; > > } > > > > -- > > 2.25.1 > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next v2] qlcnic: check pci_reset_function result 2023-04-07 7:18 [PATCH net-next v2] qlcnic: check pci_reset_function result Denis Plotnikov 2023-04-07 9:01 ` Simon Horman @ 2023-04-11 11:24 ` Paolo Abeni 2023-04-11 11:31 ` Simon Horman 2023-04-12 7:40 ` patchwork-bot+netdevbpf 2 siblings, 1 reply; 6+ messages in thread From: Paolo Abeni @ 2023-04-11 11:24 UTC (permalink / raw) To: Denis Plotnikov, netdev Cc: linux-kernel, anirban.chakraborty, sony.chacko, GR-Linux-NIC-Dev, helgaas, simon.horman, manishc, shshaikh On Fri, 2023-04-07 at 10:18 +0300, Denis Plotnikov wrote: > Static code analyzer complains to unchecked return value. > The result of pci_reset_function() is unchecked. > Despite, the issue is on the FLR supported code path and in that > case reset can be done with pcie_flr(), the patch uses less invasive > approach by adding the result check of pci_reset_function(). > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: 7e2cf4feba05 ("qlcnic: change driver hardware interface mechanism") > Signed-off-by: Denis Plotnikov <den-plotnikov@yandex-team.ru> Any special reason to target the net-next tree? This looks like a -net candidate to me? Thanks! Paolo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next v2] qlcnic: check pci_reset_function result 2023-04-11 11:24 ` Paolo Abeni @ 2023-04-11 11:31 ` Simon Horman 0 siblings, 0 replies; 6+ messages in thread From: Simon Horman @ 2023-04-11 11:31 UTC (permalink / raw) To: Paolo Abeni Cc: Denis Plotnikov, netdev, linux-kernel, anirban.chakraborty, sony.chacko, GR-Linux-NIC-Dev, helgaas, manishc, shshaikh On Tue, Apr 11, 2023 at 01:24:33PM +0200, Paolo Abeni wrote: > On Fri, 2023-04-07 at 10:18 +0300, Denis Plotnikov wrote: > > Static code analyzer complains to unchecked return value. > > The result of pci_reset_function() is unchecked. > > Despite, the issue is on the FLR supported code path and in that > > case reset can be done with pcie_flr(), the patch uses less invasive > > approach by adding the result check of pci_reset_function(). > > > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > > > Fixes: 7e2cf4feba05 ("qlcnic: change driver hardware interface mechanism") > > Signed-off-by: Denis Plotnikov <den-plotnikov@yandex-team.ru> > > Any special reason to target the net-next tree? This looks like a -net > candidate to me? FWIIW, net would be fine by me. Sorry for not noticing this during earlier review. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next v2] qlcnic: check pci_reset_function result 2023-04-07 7:18 [PATCH net-next v2] qlcnic: check pci_reset_function result Denis Plotnikov 2023-04-07 9:01 ` Simon Horman 2023-04-11 11:24 ` Paolo Abeni @ 2023-04-12 7:40 ` patchwork-bot+netdevbpf 2 siblings, 0 replies; 6+ messages in thread From: patchwork-bot+netdevbpf @ 2023-04-12 7:40 UTC (permalink / raw) To: Denis Plotnikov Cc: netdev, linux-kernel, anirban.chakraborty, sony.chacko, GR-Linux-NIC-Dev, helgaas, simon.horman, manishc, shshaikh Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Fri, 7 Apr 2023 10:18:49 +0300 you wrote: > Static code analyzer complains to unchecked return value. > The result of pci_reset_function() is unchecked. > Despite, the issue is on the FLR supported code path and in that > case reset can be done with pcie_flr(), the patch uses less invasive > approach by adding the result check of pci_reset_function(). > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > [...] Here is the summary with links: - [net-next,v2] qlcnic: check pci_reset_function result https://git.kernel.org/netdev/net/c/7573099e10ca You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-04-12 7:40 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-07 7:18 [PATCH net-next v2] qlcnic: check pci_reset_function result Denis Plotnikov 2023-04-07 9:01 ` Simon Horman 2023-04-07 15:31 ` Bjorn Helgaas 2023-04-11 11:24 ` Paolo Abeni 2023-04-11 11:31 ` Simon Horman 2023-04-12 7:40 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).