From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Yinghai Lu <yinghai@kernel.org>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 08/16] megaraid_sas: Fix probing cards without io port
Date: Thu, 20 Oct 2016 00:49:32 +0200 [thread overview]
Message-ID: <1476917380-28311-9-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1476917380-28311-1-git-send-email-w@1wt.eu>
From: Yinghai Lu <yinghai@kernel.org>
commit e7f851684efb3377e9c93aca7fae6e76212e5680 upstream.
Found one megaraid_sas HBA probe fails,
[ 187.235190] scsi host2: Avago SAS based MegaRAID driver
[ 191.112365] megaraid_sas 0000:89:00.0: BAR 0: can't reserve [io 0x0000-0x00ff]
[ 191.120548] megaraid_sas 0000:89:00.0: IO memory region busy!
and the card has resource like,
[ 125.097714] pci 0000:89:00.0: [1000:005d] type 00 class 0x010400
[ 125.104446] pci 0000:89:00.0: reg 0x10: [io 0x0000-0x00ff]
[ 125.110686] pci 0000:89:00.0: reg 0x14: [mem 0xce400000-0xce40ffff 64bit]
[ 125.118286] pci 0000:89:00.0: reg 0x1c: [mem 0xce300000-0xce3fffff 64bit]
[ 125.125891] pci 0000:89:00.0: reg 0x30: [mem 0xce200000-0xce2fffff pref]
that does not io port resource allocated from BIOS, and kernel can not
assign one as io port shortage.
The driver is only looking for MEM, and should not fail.
It turns out megasas_init_fw() etc are using bar index as mask. index 1
is used as mask 1, so that pci_request_selected_regions() is trying to
request BAR0 instead of BAR1.
Fix all related reference.
Fixes: b6d5d8808b4c ("megaraid_sas: Use lowest memory bar for SR-IOV VF support")
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Acked-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
drivers/scsi/megaraid/megaraid_sas_base.c | 6 +++---
drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index e6dfa81..6ced6a3 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -3470,7 +3470,7 @@ static int megasas_init_fw(struct megasas_instance *instance)
/* Find first memory bar */
bar_list = pci_select_bars(instance->pdev, IORESOURCE_MEM);
instance->bar = find_first_bit(&bar_list, sizeof(unsigned long));
- if (pci_request_selected_regions(instance->pdev, instance->bar,
+ if (pci_request_selected_regions(instance->pdev, 1<<instance->bar,
"megasas: LSI")) {
printk(KERN_DEBUG "megasas: IO memory region busy!\n");
return -EBUSY;
@@ -3640,7 +3640,7 @@ fail_ready_state:
iounmap(instance->reg_set);
fail_ioremap:
- pci_release_selected_regions(instance->pdev, instance->bar);
+ pci_release_selected_regions(instance->pdev, 1<<instance->bar);
return -EINVAL;
}
@@ -3661,7 +3661,7 @@ static void megasas_release_mfi(struct megasas_instance *instance)
iounmap(instance->reg_set);
- pci_release_selected_regions(instance->pdev, instance->bar);
+ pci_release_selected_regions(instance->pdev, 1<<instance->bar);
}
/**
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index a7d5668..d478088 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -2020,7 +2020,7 @@ megasas_release_fusion(struct megasas_instance *instance)
iounmap(instance->reg_set);
- pci_release_selected_regions(instance->pdev, instance->bar);
+ pci_release_selected_regions(instance->pdev, 1<<instance->bar);
}
/**
--
2.8.0.rc2.1.gbe9624a
next prev parent reply other threads:[~2016-10-19 22:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-19 22:49 [PATCH 3.10 00/16] 3.10.104-stable review Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 01/16] Revert "powerpc/tm: Always reclaim in start_thread() for exec() class syscalls" Willy Tarreau
2016-10-20 3:07 ` Guenter Roeck
2016-10-20 6:12 ` Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 02/16] PCI: Support PCIe devices with short cfg_size Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 03/16] PCI: Add Netronome vendor and device IDs Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 04/16] PCI: Limit config space size for Netronome NFP6000 family Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 05/16] PCI: Add Netronome NFP4000 PF device ID Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 06/16] PCI: Limit config space size for Netronome NFP4000 Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 07/16] aacraid: Check size values after double-fetch from user Willy Tarreau
2016-10-19 22:49 ` Willy Tarreau [this message]
2016-10-19 22:49 ` [PATCH 3.10 09/16] crypto: nx - off by one bug in nx_of_update_msc() Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 10/16] staging: comedi: daqboard2000: bug fix board type matching code Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 11/16] ACPI / sysfs: fix error code in get_status() Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 12/16] mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 13/16] MIPS: KVM: Check for pfn noslot case Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 14/16] security: let security modules use PTRACE_MODE_* with bitmasks Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 15/16] xen-netback: ref count shared rings Willy Tarreau
2016-10-19 22:49 ` [PATCH 3.10 16/16] mm: remove gup_flags FOLL_WRITE games from __get_user_pages() Willy Tarreau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1476917380-28311-9-git-send-email-w@1wt.eu \
--to=w@1wt.eu \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=stable@vger.kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).