diff mbox

[v1,2/2] PCI: Correct PCI_STD_RESOURCE_END usage

Message ID 20170519195855.25440.29969.stgit@bhelgaas-glaptop.roam.corp.google.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Bjorn Helgaas May 19, 2017, 7:58 p.m. UTC
PCI_STD_RESOURCE_END is (confusingly) the index of the last valid BAR, not
the *number* of BARs.  To iterate through all possible BARs, we need to
include PCI_STD_RESOURCE_END.

Fixes: 9fe373f9997b ("PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size")
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
 drivers/pci/quirks.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bjorn Helgaas May 24, 2017, 9:43 p.m. UTC | #1
On Fri, May 19, 2017 at 02:58:55PM -0500, Bjorn Helgaas wrote:
> PCI_STD_RESOURCE_END is (confusingly) the index of the last valid BAR, not
> the *number* of BARs.  To iterate through all possible BARs, we need to
> include PCI_STD_RESOURCE_END.
> 
> Fixes: 9fe373f9997b ("PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size")
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

I applied both of these to pci/misc for v4.13.

> ---
>  drivers/pci/quirks.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 085fb787aa9e..16e6cd86ad71 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -304,7 +304,7 @@ static void quirk_extend_bar_to_page(struct pci_dev *dev)
>  {
>  	int i;
>  
> -	for (i = 0; i < PCI_STD_RESOURCE_END; i++) {
> +	for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
>  		struct resource *r = &dev->resource[i];
>  
>  		if (r->flags & IORESOURCE_MEM && resource_size(r) < PAGE_SIZE) {
>
diff mbox

Patch

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 085fb787aa9e..16e6cd86ad71 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -304,7 +304,7 @@  static void quirk_extend_bar_to_page(struct pci_dev *dev)
 {
 	int i;
 
-	for (i = 0; i < PCI_STD_RESOURCE_END; i++) {
+	for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
 		struct resource *r = &dev->resource[i];
 
 		if (r->flags & IORESOURCE_MEM && resource_size(r) < PAGE_SIZE) {