Message ID | 1559740026-29276-1-git-send-email-bmeng.cn@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [U-Boot] pci: Avoid assigning PCI resources that are below 0x1000 | expand |
On 05.06.19 15:07, Bin Meng wrote: > commit b7598a43f2b4 ("[PATCH] Avoid assigning PCI resources from > zero address") only moved the bus lower address to 0x1000 if the > given bus start address is zero. The comment said 0x1000 is a > reasonable starting value, hence we'd better apply the same > adjustment when the given bus start address is below 0x1000. > > Signed-off-by: Bin Meng <bmeng.cn@gmail.com> > --- > > drivers/pci/pci_auto_common.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/pci_auto_common.c b/drivers/pci/pci_auto_common.c > index 1837873..3ff42f2 100644 > --- a/drivers/pci/pci_auto_common.c > +++ b/drivers/pci/pci_auto_common.c > @@ -21,9 +21,12 @@ void pciauto_region_init(struct pci_region *res) > /* > * Avoid allocating PCI resources from address 0 -- this is illegal > * according to PCI 2.1 and moreover, this is known to cause Linux IDE > - * drivers to fail. Use a reasonable starting value of 0x1000 instead. > + * drivers to fail. Use a reasonable starting value of 0x1000 instead > + * if the bus start address is below 0x1000. > */ > - res->bus_lower = res->bus_start ? res->bus_start : 0x1000; > + if (res->bus_start < 0x1000) > + res->bus_start = 0x1000; > + res->bus_lower = res->bus_start; > } > > void pciauto_region_align(struct pci_region *res, pci_size_t size) > Reviewed-by: Stefan Roese <sr@denx.de> Thanks, Stefan
Hi Stefan, On Wed, Jun 5, 2019 at 9:53 PM Stefan Roese <sr@denx.de> wrote: > > On 05.06.19 15:07, Bin Meng wrote: > > commit b7598a43f2b4 ("[PATCH] Avoid assigning PCI resources from > > zero address") only moved the bus lower address to 0x1000 if the > > given bus start address is zero. The comment said 0x1000 is a > > reasonable starting value, hence we'd better apply the same > > adjustment when the given bus start address is below 0x1000. > > > > Signed-off-by: Bin Meng <bmeng.cn@gmail.com> > > --- > > > > drivers/pci/pci_auto_common.c | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/pci/pci_auto_common.c b/drivers/pci/pci_auto_common.c > > index 1837873..3ff42f2 100644 > > --- a/drivers/pci/pci_auto_common.c > > +++ b/drivers/pci/pci_auto_common.c > > @@ -21,9 +21,12 @@ void pciauto_region_init(struct pci_region *res) > > /* > > * Avoid allocating PCI resources from address 0 -- this is illegal > > * according to PCI 2.1 and moreover, this is known to cause Linux IDE > > - * drivers to fail. Use a reasonable starting value of 0x1000 instead. > > + * drivers to fail. Use a reasonable starting value of 0x1000 instead > > + * if the bus start address is below 0x1000. > > */ > > - res->bus_lower = res->bus_start ? res->bus_start : 0x1000; > > + if (res->bus_start < 0x1000) > > + res->bus_start = 0x1000; > > + res->bus_lower = res->bus_start; > > } > > > > void pciauto_region_align(struct pci_region *res, pci_size_t size) > > > > Reviewed-by: Stefan Roese <sr@denx.de> > Thanks for the review. I just re-considered it a little bit, and thought that we should not change res->bus_start here, as the original logic did not change too. I will send a v2. Regards, Bin
Hi Bin, On 05.06.19 16:10, Bin Meng wrote: > Hi Stefan, > > On Wed, Jun 5, 2019 at 9:53 PM Stefan Roese <sr@denx.de> wrote: >> >> On 05.06.19 15:07, Bin Meng wrote: >>> commit b7598a43f2b4 ("[PATCH] Avoid assigning PCI resources from >>> zero address") only moved the bus lower address to 0x1000 if the >>> given bus start address is zero. The comment said 0x1000 is a >>> reasonable starting value, hence we'd better apply the same >>> adjustment when the given bus start address is below 0x1000. >>> >>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com> >>> --- >>> >>> drivers/pci/pci_auto_common.c | 7 +++++-- >>> 1 file changed, 5 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/pci/pci_auto_common.c b/drivers/pci/pci_auto_common.c >>> index 1837873..3ff42f2 100644 >>> --- a/drivers/pci/pci_auto_common.c >>> +++ b/drivers/pci/pci_auto_common.c >>> @@ -21,9 +21,12 @@ void pciauto_region_init(struct pci_region *res) >>> /* >>> * Avoid allocating PCI resources from address 0 -- this is illegal >>> * according to PCI 2.1 and moreover, this is known to cause Linux IDE >>> - * drivers to fail. Use a reasonable starting value of 0x1000 instead. >>> + * drivers to fail. Use a reasonable starting value of 0x1000 instead >>> + * if the bus start address is below 0x1000. >>> */ >>> - res->bus_lower = res->bus_start ? res->bus_start : 0x1000; >>> + if (res->bus_start < 0x1000) >>> + res->bus_start = 0x1000; >>> + res->bus_lower = res->bus_start; >>> } >>> >>> void pciauto_region_align(struct pci_region *res, pci_size_t size) >>> >> >> Reviewed-by: Stefan Roese <sr@denx.de> >> > > Thanks for the review. I just re-considered it a little bit, and > thought that we should not change res->bus_start here, as the original > logic did not change too. I will send a v2. Even better. I was a bit reluctant when I saw this change, but trusted you to have thought it through. ;) BTW: Where did you spot a problem with the current implementation? What issue did hit you exactly? Thanks, Stefan
diff --git a/drivers/pci/pci_auto_common.c b/drivers/pci/pci_auto_common.c index 1837873..3ff42f2 100644 --- a/drivers/pci/pci_auto_common.c +++ b/drivers/pci/pci_auto_common.c @@ -21,9 +21,12 @@ void pciauto_region_init(struct pci_region *res) /* * Avoid allocating PCI resources from address 0 -- this is illegal * according to PCI 2.1 and moreover, this is known to cause Linux IDE - * drivers to fail. Use a reasonable starting value of 0x1000 instead. + * drivers to fail. Use a reasonable starting value of 0x1000 instead + * if the bus start address is below 0x1000. */ - res->bus_lower = res->bus_start ? res->bus_start : 0x1000; + if (res->bus_start < 0x1000) + res->bus_start = 0x1000; + res->bus_lower = res->bus_start; } void pciauto_region_align(struct pci_region *res, pci_size_t size)
commit b7598a43f2b4 ("[PATCH] Avoid assigning PCI resources from zero address") only moved the bus lower address to 0x1000 if the given bus start address is zero. The comment said 0x1000 is a reasonable starting value, hence we'd better apply the same adjustment when the given bus start address is below 0x1000. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> --- drivers/pci/pci_auto_common.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)