Message ID | 20210328144118.305074-1-zhengdejin5@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | PCI: xgene: fix a mistake about cfg address | expand |
On Sun, Mar 28, 2021 at 10:41:18PM +0800, Dejin Zheng wrote: > It has a wrong modification to the xgene driver by the commit > e2dcd20b1645a. it use devm_platform_ioremap_resource_byname() to > simplify codes and remove the res variable, But the following code > needs to use this res variable, So after this commit, the port->cfg_addr > will get a wrong address. Now, revert it. > > Fixes: e2dcd20b1645a ("PCI: controller: Convert to devm_platform_ioremap_resource_byname()") > Reported-by: dann.frazier@canonical.com > Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> Tested-by: dann frazier <dann.frazier@canonical.com> Thanks! -dann > --- > drivers/pci/controller/pci-xgene.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c > index 2afdc865253e..7f503dd4ff81 100644 > --- a/drivers/pci/controller/pci-xgene.c > +++ b/drivers/pci/controller/pci-xgene.c > @@ -354,7 +354,8 @@ static int xgene_pcie_map_reg(struct xgene_pcie_port *port, > if (IS_ERR(port->csr_base)) > return PTR_ERR(port->csr_base); > > - port->cfg_base = devm_platform_ioremap_resource_byname(pdev, "cfg"); > + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cfg"); > + port->cfg_base = devm_ioremap_resource(dev, res); > if (IS_ERR(port->cfg_base)) > return PTR_ERR(port->cfg_base); > port->cfg_addr = res->start;
On Sun, 28 Mar 2021 22:41:18 +0800, Dejin Zheng wrote: > It has a wrong modification to the xgene driver by the commit > e2dcd20b1645a. it use devm_platform_ioremap_resource_byname() to > simplify codes and remove the res variable, But the following code > needs to use this res variable, So after this commit, the port->cfg_addr > will get a wrong address. Now, revert it. Applied to pci/xgene, thanks! [1/1] PCI: xgene: Fix cfg resource mapping https://git.kernel.org/lpieralisi/pci/c/f243b619b4 Thanks, Lorenzo
On Sun, Mar 28, 2021 at 10:41:18PM +0800, Dejin Zheng wrote: > It has a wrong modification to the xgene driver by the commit > e2dcd20b1645a. it use devm_platform_ioremap_resource_byname() to > simplify codes and remove the res variable, But the following code > needs to use this res variable, So after this commit, the port->cfg_addr > will get a wrong address. Now, revert it. > > Fixes: e2dcd20b1645a ("PCI: controller: Convert to devm_platform_ioremap_resource_byname()") > Reported-by: dann.frazier@canonical.com > Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> This looks right to me, but since e2dcd20b1645a appeared in v5.9-rc1, I think it should have: Cc: stable@vger.kernel.org # v5.9+ > --- > drivers/pci/controller/pci-xgene.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c > index 2afdc865253e..7f503dd4ff81 100644 > --- a/drivers/pci/controller/pci-xgene.c > +++ b/drivers/pci/controller/pci-xgene.c > @@ -354,7 +354,8 @@ static int xgene_pcie_map_reg(struct xgene_pcie_port *port, > if (IS_ERR(port->csr_base)) > return PTR_ERR(port->csr_base); > > - port->cfg_base = devm_platform_ioremap_resource_byname(pdev, "cfg"); > + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cfg"); > + port->cfg_base = devm_ioremap_resource(dev, res); > if (IS_ERR(port->cfg_base)) > return PTR_ERR(port->cfg_base); > port->cfg_addr = res->start; > -- > 2.30.1 >
On Tue, Mar 30, 2021 at 02:19:26PM -0500, Bjorn Helgaas wrote: > On Sun, Mar 28, 2021 at 10:41:18PM +0800, Dejin Zheng wrote: > > It has a wrong modification to the xgene driver by the commit > > e2dcd20b1645a. it use devm_platform_ioremap_resource_byname() to > > simplify codes and remove the res variable, But the following code > > needs to use this res variable, So after this commit, the port->cfg_addr > > will get a wrong address. Now, revert it. > > > > Fixes: e2dcd20b1645a ("PCI: controller: Convert to devm_platform_ioremap_resource_byname()") > > Reported-by: dann.frazier@canonical.com > > Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> > > This looks right to me, but since e2dcd20b1645a appeared in v5.9-rc1, > I think it should have: > > Cc: stable@vger.kernel.org # v5.9+ Fixed and pushed out in my pci/xgene branch. Thanks, Lorenzo
diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c index 2afdc865253e..7f503dd4ff81 100644 --- a/drivers/pci/controller/pci-xgene.c +++ b/drivers/pci/controller/pci-xgene.c @@ -354,7 +354,8 @@ static int xgene_pcie_map_reg(struct xgene_pcie_port *port, if (IS_ERR(port->csr_base)) return PTR_ERR(port->csr_base); - port->cfg_base = devm_platform_ioremap_resource_byname(pdev, "cfg"); + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cfg"); + port->cfg_base = devm_ioremap_resource(dev, res); if (IS_ERR(port->cfg_base)) return PTR_ERR(port->cfg_base); port->cfg_addr = res->start;
It has a wrong modification to the xgene driver by the commit e2dcd20b1645a. it use devm_platform_ioremap_resource_byname() to simplify codes and remove the res variable, But the following code needs to use this res variable, So after this commit, the port->cfg_addr will get a wrong address. Now, revert it. Fixes: e2dcd20b1645a ("PCI: controller: Convert to devm_platform_ioremap_resource_byname()") Reported-by: dann.frazier@canonical.com Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com> --- drivers/pci/controller/pci-xgene.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)