2020-04-16 03:16:18

by Xu Yilun

[permalink] [raw]
Subject: [PATCH 0/2] Bug fixes for FPGA DFL

Patch #1 fixes lkp cppcheck warnings in dfl-pci.c
Patch #2 fixes bug in dfl port reset handshake

Matthew Gerlach (1):
fpga: dfl: fix bug in port reset handshake

Xu Yilun (1):
fpga: dfl: pci: reduce the scope of variable 'ret'

drivers/fpga/dfl-afu-main.c | 3 ++-
drivers/fpga/dfl-pci.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)

--
2.7.4


2020-04-16 03:16:23

by Xu Yilun

[permalink] [raw]
Subject: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

This is to fix lkp cppcheck warnings:

drivers/fpga/dfl-pci.c:230:6: warning: The scope of the variable 'ret' can be reduced. [variableScope]
int ret = 0;
^

drivers/fpga/dfl-pci.c:230:10: warning: Variable 'ret' is assigned a value that is never used. [unreadVariable]
int ret = 0;
^

Fixes: 3c2760b78f90 ("fpga: dfl: pci: fix return value of cci_pci_sriov_configure")
Reported-by: kbuild test robot <[email protected]>
Signed-off-by: Xu Yilun <[email protected]>
---
drivers/fpga/dfl-pci.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/fpga/dfl-pci.c b/drivers/fpga/dfl-pci.c
index 5387550..a78c409 100644
--- a/drivers/fpga/dfl-pci.c
+++ b/drivers/fpga/dfl-pci.c
@@ -227,7 +227,6 @@ static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
{
struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
struct dfl_fpga_cdev *cdev = drvdata->cdev;
- int ret = 0;

if (!num_vfs) {
/*
@@ -239,6 +238,8 @@ static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
dfl_fpga_cdev_config_ports_pf(cdev);

} else {
+ int ret;
+
/*
* before enable SRIOV, put released ports into VF access mode
* first of all.
--
2.7.4

2020-04-16 03:17:16

by Xu Yilun

[permalink] [raw]
Subject: [PATCH 2/2] fpga: dfl: fix bug in port reset handshake

From: Matthew Gerlach <[email protected]>

When putting the port in reset, driver must wait for the soft reset
acknowledgment bit instead of the soft reset bit.

Fixes: 47c1b19c160f (fpga: dfl: afu: add port ops support)
Signed-off-by: Matthew Gerlach <[email protected]>
Signed-off-by: Xu Yilun <[email protected]>
---
drivers/fpga/dfl-afu-main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/fpga/dfl-afu-main.c b/drivers/fpga/dfl-afu-main.c
index b0c3178..3fa2c59 100644
--- a/drivers/fpga/dfl-afu-main.c
+++ b/drivers/fpga/dfl-afu-main.c
@@ -83,7 +83,8 @@ int __afu_port_disable(struct platform_device *pdev)
* on this port and minimum soft reset pulse width has elapsed.
* Driver polls port_soft_reset_ack to determine if reset done by HW.
*/
- if (readq_poll_timeout(base + PORT_HDR_CTRL, v, v & PORT_CTRL_SFTRST,
+ if (readq_poll_timeout(base + PORT_HDR_CTRL, v,
+ v & PORT_CTRL_SFTRST_ACK,
RST_POLL_INVL, RST_POLL_TIMEOUT)) {
dev_err(&pdev->dev, "timeout, fail to reset device\n");
return -ETIMEDOUT;
--
2.7.4

2020-04-16 08:18:30

by Wu Hao

[permalink] [raw]
Subject: RE: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

> -----Original Message-----
> From: [email protected] <[email protected]>
> On Behalf Of Xu Yilun
> Sent: Thursday, April 16, 2020 11:12 AM
> To: [email protected]; [email protected]; linux-
> [email protected]
> Cc: [email protected]; [email protected]; Xu, Yilun <[email protected]>
> Subject: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'
>
> This is to fix lkp cppcheck warnings:
>
> drivers/fpga/dfl-pci.c:230:6: warning: The scope of the variable 'ret' can be
> reduced. [variableScope]
> int ret = 0;
> ^
>
> drivers/fpga/dfl-pci.c:230:10: warning: Variable 'ret' is assigned a value that
> is never used. [unreadVariable]
> int ret = 0;
> ^
>
> Fixes: 3c2760b78f90 ("fpga: dfl: pci: fix return value of
> cci_pci_sriov_configure")
> Reported-by: kbuild test robot <[email protected]>
> Signed-off-by: Xu Yilun <[email protected]>

Looks good to me.

Acked-by: Wu Hao <[email protected]>

> ---
> drivers/fpga/dfl-pci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/fpga/dfl-pci.c b/drivers/fpga/dfl-pci.c
> index 5387550..a78c409 100644
> --- a/drivers/fpga/dfl-pci.c
> +++ b/drivers/fpga/dfl-pci.c
> @@ -227,7 +227,6 @@ static int cci_pci_sriov_configure(struct pci_dev
> *pcidev, int num_vfs)
> {
> struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
> struct dfl_fpga_cdev *cdev = drvdata->cdev;
> - int ret = 0;
>
> if (!num_vfs) {
> /*
> @@ -239,6 +238,8 @@ static int cci_pci_sriov_configure(struct pci_dev
> *pcidev, int num_vfs)
> dfl_fpga_cdev_config_ports_pf(cdev);
>
> } else {
> + int ret;
> +
> /*
> * before enable SRIOV, put released ports into VF access
> mode
> * first of all.
> --
> 2.7.4

2020-04-16 09:20:20

by Wu Hao

[permalink] [raw]
Subject: RE: [PATCH 2/2] fpga: dfl: fix bug in port reset handshake

> -----Original Message-----
> From: [email protected] <[email protected]>
> On Behalf Of Xu Yilun
> Sent: Thursday, April 16, 2020 11:12 AM
> To: [email protected]; [email protected]; linux-
> [email protected]
> Cc: [email protected]; [email protected]; Matthew Gerlach
> <[email protected]>; Xu, Yilun <[email protected]>
> Subject: [PATCH 2/2] fpga: dfl: fix bug in port reset handshake
>
> From: Matthew Gerlach <[email protected]>
>
> When putting the port in reset, driver must wait for the soft reset
> acknowledgment bit instead of the soft reset bit.
>
> Fixes: 47c1b19c160f (fpga: dfl: afu: add port ops support)
> Signed-off-by: Matthew Gerlach <[email protected]>
> Signed-off-by: Xu Yilun <[email protected]>

Thanks for catching this.

Acked-by: Wu Hao <[email protected]>

> ---
> drivers/fpga/dfl-afu-main.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/fpga/dfl-afu-main.c b/drivers/fpga/dfl-afu-main.c
> index b0c3178..3fa2c59 100644
> --- a/drivers/fpga/dfl-afu-main.c
> +++ b/drivers/fpga/dfl-afu-main.c
> @@ -83,7 +83,8 @@ int __afu_port_disable(struct platform_device *pdev)
> * on this port and minimum soft reset pulse width has elapsed.
> * Driver polls port_soft_reset_ack to determine if reset done by HW.
> */
> - if (readq_poll_timeout(base + PORT_HDR_CTRL, v, v &
> PORT_CTRL_SFTRST,
> + if (readq_poll_timeout(base + PORT_HDR_CTRL, v,
> + v & PORT_CTRL_SFTRST_ACK,
> RST_POLL_INVL, RST_POLL_TIMEOUT)) {
> dev_err(&pdev->dev, "timeout, fail to reset device\n");
> return -ETIMEDOUT;
> --
> 2.7.4

2020-04-16 20:42:34

by Tom Rix

[permalink] [raw]
Subject: Re: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

Please check the scope.

On linus/master, the result of this change looks like

static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
{
??? struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
??? struct dfl_fpga_cdev *cdev = drvdata->cdev;

??? if (!num_vfs) {
??? ??? /*
??? ??? ?* disable SRIOV and then put released ports back to default
??? ??? ?* PF access mode.
??? ??? ?*/
??? ??? pci_disable_sriov(pcidev);

??? ??? dfl_fpga_cdev_config_ports_pf(cdev);

??? } else {
??? ??? int ret; <--- defined here

??? ??? /*
??? ??? ?* before enable SRIOV, put released ports into VF access mode
??? ??? ?* first of all.
??? ??? ?*/
??? ??? ret = dfl_fpga_cdev_config_ports_vf(cdev, num_vfs);
??? ??? if (ret)
??? ??? ??? return ret;

??? ??? ret = pci_enable_sriov(pcidev, num_vfs);
??? ??? if (ret)
??? ??? ??? dfl_fpga_cdev_config_ports_pf(cdev);
??? }

??? return ret;? <---- not in scope, not defined here
}

Tom

2020-04-17 02:02:34

by Xu Yilun

[permalink] [raw]
Subject: Re: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

Hi Rix:

This patch is based on linux-next. There is an preceding patch
(3c2760b78f90 "fpga: dfl: pci: fix return value of cci_pci_sriov_configure",
Also see Fixes:) in linux-next but not merged in 5.7-rc1 yet.
This patch is to fix the lkp warning brought by the previous one.

Thanks.

On Thu, Apr 16, 2020 at 09:56:47AM -0700, Tom Rix wrote:
> Please check the scope.
>
> On linus/master, the result of this change looks like
>
> static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
> {
> ??? struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
> ??? struct dfl_fpga_cdev *cdev = drvdata->cdev;
>
> ??? if (!num_vfs) {
> ??? ??? /*
> ??? ??? ?* disable SRIOV and then put released ports back to default
> ??? ??? ?* PF access mode.
> ??? ??? ?*/
> ??? ??? pci_disable_sriov(pcidev);
>
> ??? ??? dfl_fpga_cdev_config_ports_pf(cdev);
>
> ??? } else {
> ??? ??? int ret; <--- defined here
>
> ??? ??? /*
> ??? ??? ?* before enable SRIOV, put released ports into VF access mode
> ??? ??? ?* first of all.
> ??? ??? ?*/
> ??? ??? ret = dfl_fpga_cdev_config_ports_vf(cdev, num_vfs);
> ??? ??? if (ret)
> ??? ??? ??? return ret;
>
> ??? ??? ret = pci_enable_sriov(pcidev, num_vfs);
> ??? ??? if (ret)
> ??? ??? ??? dfl_fpga_cdev_config_ports_pf(cdev);
> ??? }
>
> ??? return ret;? <---- not in scope, not defined here
> }
>
> Tom

2020-04-17 03:07:13

by Wu Hao

[permalink] [raw]
Subject: RE: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

> -----Original Message-----
> From: Xu, Yilun <[email protected]>
> Sent: Friday, April 17, 2020 9:56 AM
> To: Tom Rix <[email protected]>
> Cc: Wu, Hao <[email protected]>; [email protected]; linux-
> [email protected]; [email protected]; [email protected]
> Subject: Re: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'
>
> Hi Rix:
>
> This patch is based on linux-next. There is an preceding patch
> (3c2760b78f90 "fpga: dfl: pci: fix return value of cci_pci_sriov_configure",
> Also see Fixes:) in linux-next but not merged in 5.7-rc1 yet.
> This patch is to fix the lkp warning brought by the previous one.

Yilun

Is it possible that commit id may be different for master then?

Thanks
Hao

>
> Thanks.
>
> On Thu, Apr 16, 2020 at 09:56:47AM -0700, Tom Rix wrote:
> > Please check the scope.
> >
> > On linus/master, the result of this change looks like
> >
> > static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
> > {
> > ??? struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
> > ??? struct dfl_fpga_cdev *cdev = drvdata->cdev;
> >
> > ??? if (!num_vfs) {
> > ??? ??? /*
> > ??? ??? ?* disable SRIOV and then put released ports back to default
> > ??? ??? ?* PF access mode.
> > ??? ??? ?*/
> > ??? ??? pci_disable_sriov(pcidev);
> >
> > ??? ??? dfl_fpga_cdev_config_ports_pf(cdev);
> >
> > ??? } else {
> > ??? ??? int ret; <--- defined here
> >
> > ??? ??? /*
> > ??? ??? ?* before enable SRIOV, put released ports into VF access mode
> > ??? ??? ?* first of all.
> > ??? ??? ?*/
> > ??? ??? ret = dfl_fpga_cdev_config_ports_vf(cdev, num_vfs);
> > ??? ??? if (ret)
> > ??? ??? ??? return ret;
> >
> > ??? ??? ret = pci_enable_sriov(pcidev, num_vfs);
> > ??? ??? if (ret)
> > ??? ??? ??? dfl_fpga_cdev_config_ports_pf(cdev);
> > ??? }
> >
> > ??? return ret;? <---- not in scope, not defined here
> > }
> >
> > Tom

2020-04-17 03:28:21

by Xu Yilun

[permalink] [raw]
Subject: Re: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

On Fri, Apr 17, 2020 at 11:05:16AM +0800, Wu, Hao wrote:
> > -----Original Message-----
> > From: Xu, Yilun <[email protected]>
> > Sent: Friday, April 17, 2020 9:56 AM
> > To: Tom Rix <[email protected]>
> > Cc: Wu, Hao <[email protected]>; [email protected]; linux-
> > [email protected]; [email protected]; [email protected]
> > Subject: Re: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'
> >
> > Hi Rix:
> >
> > This patch is based on linux-next. There is an preceding patch
> > (3c2760b78f90 "fpga: dfl: pci: fix return value of cci_pci_sriov_configure",
> > Also see Fixes:) in linux-next but not merged in 5.7-rc1 yet.
> > This patch is to fix the lkp warning brought by the previous one.
>
> Yilun
>
> Is it possible that commit id may be different for master then?

It is possible if the previous patch need a little change when merging
to master.

I'm not sure how to handle this then. But the previous patch is simple
and is unlikely to change.

>
> Thanks
> Hao
>
> >
> > Thanks.
> >
> > On Thu, Apr 16, 2020 at 09:56:47AM -0700, Tom Rix wrote:
> > > Please check the scope.
> > >
> > > On linus/master, the result of this change looks like
> > >
> > > static int cci_pci_sriov_configure(struct pci_dev *pcidev, int num_vfs)
> > > {
> > > struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
> > > struct dfl_fpga_cdev *cdev = drvdata->cdev;
> > >
> > > if (!num_vfs) {
> > > /*
> > > * disable SRIOV and then put released ports back to default
> > > * PF access mode.
> > > */
> > > pci_disable_sriov(pcidev);
> > >
> > > dfl_fpga_cdev_config_ports_pf(cdev);
> > >
> > > } else {
> > > int ret; <--- defined here
> > >
> > > /*
> > > * before enable SRIOV, put released ports into VF access mode
> > > * first of all.
> > > */
> > > ret = dfl_fpga_cdev_config_ports_vf(cdev, num_vfs);
> > > if (ret)
> > > return ret;
> > >
> > > ret = pci_enable_sriov(pcidev, num_vfs);
> > > if (ret)
> > > dfl_fpga_cdev_config_ports_pf(cdev);
> > > }
> > >
> > > return ret; <---- not in scope, not defined here
> > > }
> > >
> > > Tom

2020-04-17 05:59:17

by Wu Hao

[permalink] [raw]
Subject: RE: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'

> > > Subject: Re: [PATCH 1/2] fpga: dfl: pci: reduce the scope of variable 'ret'
> > >
> > > Hi Rix:
> > >
> > > This patch is based on linux-next. There is an preceding patch
> > > (3c2760b78f90 "fpga: dfl: pci: fix return value of cci_pci_sriov_configure",
> > > Also see Fixes:) in linux-next but not merged in 5.7-rc1 yet.
> > > This patch is to fix the lkp warning brought by the previous one.
> >
> > Yilun
> >
> > Is it possible that commit id may be different for master then?
>
> It is possible if the previous patch need a little change when merging
> to master.
>
> I'm not sure how to handle this then. But the previous patch is simple
> and is unlikely to change.

Maybe you can resend it once previous patch gets merged.

Hao