lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 27 Jan 2021 06:27:17 +0000
From:   "Z.q. Hou" <zhiqiang.hou@....com>
To:     Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
CC:     "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
        "lorenzo.pieralisi@....com" <lorenzo.pieralisi@....com>,
        "robh@...nel.org" <robh@...nel.org>,
        "bhelgaas@...gle.com" <bhelgaas@...gle.com>,
        "gustavo.pimentel@...opsys.com" <gustavo.pimentel@...opsys.com>,
        "jingoohan1@...il.com" <jingoohan1@...il.com>,
        "jaswinder.singh@...aro.org" <jaswinder.singh@...aro.org>,
        "masami.hiramatsu@...aro.org" <masami.hiramatsu@...aro.org>
Subject: RE: [PATCH] PCI: dwc: Move forward the iATU detection process

Hi,

Yes, they are fix the same issue.
Rob and other contributors sent so many patches to refine the drivers and make the code brief and more readable, so I don't think we should just focus on the fixes of this issue. I don't think it is a good choice that your patch move some of the software perspective initializations into hardware ones.

Thanks
Zhiqiang

> -----Original Message-----
> From: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
> Sent: 2021年1月26日 13:26
> To: Z.q. Hou <zhiqiang.hou@....com>
> Cc: linux-kernel@...r.kernel.org; linux-pci@...r.kernel.org;
> lorenzo.pieralisi@....com; robh@...nel.org; bhelgaas@...gle.com;
> gustavo.pimentel@...opsys.com; jingoohan1@...il.com;
> jaswinder.singh@...aro.org; masami.hiramatsu@...aro.org
> Subject: Re: [PATCH] PCI: dwc: Move forward the iATU detection process
> 
> Hi,
> 
> This looks to me the same fix as my posted patch[1].
> Is this more effective than mine?
> 
> Thank you,
> 
> [1]
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
> .spinics.net%2Flists%2Flinux-pci%2Fmsg103889.html&amp;data=04%7C01%
> 7CZhiqiang.Hou%40nxp.com%7Cd9fa58aac4774c9dd61b08d8c1bad128%7C
> 686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637472355412202563
> %7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL
> CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=Mt3B4jQ1Q1fu%2
> FAz9s4Y4eieHv7nYorvvT2pKlqFLE9k%3D&amp;reserved=0
> 
> On 2021/01/25 13:48, Zhiqiang Hou wrote:
> > From: Hou Zhiqiang <Zhiqiang.Hou@....com>
> >
> > In the dw_pcie_ep_init(), it depends on the detected iATU region
> > numbers to allocate the in/outbound window management bit map.
> > It fails after the commit 281f1f99cf3a ("PCI: dwc: Detect number of
> > iATU windows").
> >
> > So this patch move the iATU region detection into a new function, move
> > forward the detection to the very beginning of functions
> > dw_pcie_host_init() and dw_pcie_ep_init(). And also remove it from the
> > dw_pcie_setup(), since it's more like a software perspective
> > initialization step than hardware setup.
> >
> > Fixes: 281f1f99cf3a ("PCI: dwc: Detect number of iATU windows")
> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@....com>
> > ---
> >   drivers/pci/controller/dwc/pcie-designware-ep.c   |  2 ++
> >   drivers/pci/controller/dwc/pcie-designware-host.c |  2 ++
> >   drivers/pci/controller/dwc/pcie-designware.c      | 11 ++++++++---
> >   drivers/pci/controller/dwc/pcie-designware.h      |  1 +
> >   4 files changed, 13 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c
> > b/drivers/pci/controller/dwc/pcie-designware-ep.c
> > index bcd1cd9ba8c8..fcf935bf6f5e 100644
> > --- a/drivers/pci/controller/dwc/pcie-designware-ep.c
> > +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
> > @@ -707,6 +707,8 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep)
> >   		}
> >   	}
> >
> > +	dw_pcie_iatu_detect(pci);
> > +
> >   	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
> "addr_space");
> >   	if (!res)
> >   		return -EINVAL;
> > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c
> > b/drivers/pci/controller/dwc/pcie-designware-host.c
> > index 8a84c005f32b..8eae817c138d 100644
> > --- a/drivers/pci/controller/dwc/pcie-designware-host.c
> > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
> > @@ -316,6 +316,8 @@ int dw_pcie_host_init(struct pcie_port *pp)
> >   			return PTR_ERR(pci->dbi_base);
> >   	}
> >
> > +	dw_pcie_iatu_detect(pci);
> > +
> >   	bridge = devm_pci_alloc_host_bridge(dev, 0);
> >   	if (!bridge)
> >   		return -ENOMEM;
> > diff --git a/drivers/pci/controller/dwc/pcie-designware.c
> > b/drivers/pci/controller/dwc/pcie-designware.c
> > index 5b72a5448d2e..5b9bf02d918b 100644
> > --- a/drivers/pci/controller/dwc/pcie-designware.c
> > +++ b/drivers/pci/controller/dwc/pcie-designware.c
> > @@ -654,11 +654,9 @@ static void dw_pcie_iatu_detect_regions(struct
> dw_pcie *pci)
> >   	pci->num_ob_windows = ob;
> >   }
> >
> > -void dw_pcie_setup(struct dw_pcie *pci)
> > +void dw_pcie_iatu_detect(struct dw_pcie *pci)
> >   {
> > -	u32 val;
> >   	struct device *dev = pci->dev;
> > -	struct device_node *np = dev->of_node;
> >   	struct platform_device *pdev = to_platform_device(dev);
> >
> >   	if (pci->version >= 0x480A || (!pci->version && @@ -687,6 +685,13
> > @@ void dw_pcie_setup(struct dw_pcie *pci)
> >
> >   	dev_info(pci->dev, "Detected iATU regions: %u outbound, %u
> inbound",
> >   		 pci->num_ob_windows, pci->num_ib_windows);
> > +}
> > +
> > +void dw_pcie_setup(struct dw_pcie *pci) {
> > +	u32 val;
> > +	struct device *dev = pci->dev;
> > +	struct device_node *np = dev->of_node;
> >
> >   	if (pci->link_gen > 0)
> >   		dw_pcie_link_set_max_speed(pci, pci->link_gen); diff --git
> > a/drivers/pci/controller/dwc/pcie-designware.h
> > b/drivers/pci/controller/dwc/pcie-designware.h
> > index 5d979953800d..867369d4c4f7 100644
> > --- a/drivers/pci/controller/dwc/pcie-designware.h
> > +++ b/drivers/pci/controller/dwc/pcie-designware.h
> > @@ -305,6 +305,7 @@ int dw_pcie_prog_inbound_atu(struct dw_pcie
> *pci, u8 func_no, int index,
> >   void dw_pcie_disable_atu(struct dw_pcie *pci, int index,
> >   			 enum dw_pcie_region_type type);
> >   void dw_pcie_setup(struct dw_pcie *pci);
> > +void dw_pcie_iatu_detect(struct dw_pcie *pci);
> >
> >   static inline void dw_pcie_writel_dbi(struct dw_pcie *pci, u32 reg, u32
> val)
> >   {
> >
> 
> ---
> Best Regards
> Kunihiko Hayashi

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ