Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1476857
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 3.14 24/35] megaraid_sas: Fix probing cards without io port |
| Date | 2016-09-05 19:50 +0200 |
| Message-ID | <se6bT-6U4-1@gated-at.bofh.it> (permalink) |
| References | <se5fP-6h4-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
3.14-stable review patch. If anyone has any objections, please let me know.
------------------
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/megaraid/megaraid_sas_base.c | 6 +++---
drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -3624,7 +3624,7 @@ static int megasas_init_fw(struct megasa
/* 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;
@@ -3858,7 +3858,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;
}
@@ -3879,7 +3879,7 @@ static void megasas_release_mfi(struct m
iounmap(instance->reg_set);
- pci_release_selected_regions(instance->pdev, instance->bar);
+ pci_release_selected_regions(instance->pdev, 1<<instance->bar);
}
/**
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -2175,7 +2175,7 @@ megasas_release_fusion(struct megasas_in
iounmap(instance->reg_set);
- pci_release_selected_regions(instance->pdev, instance->bar);
+ pci_release_selected_regions(instance->pdev, 1<<instance->bar);
}
/**
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 3.14 00/35] 3.14.78-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 35/35] ACPI / sysfs: fix error code in get_status() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 18/35] xhci: Make sure xhci handles USB_SPEED_SUPER_PLUS devices. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 03/35] parisc: Fix order of EREFUSED define in errno.h Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 27/35] Input: tegra-kbc - fix inverted reset logic Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 15/35] USB: serial: option: add support for Telit LE920A4 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 22/35] aacraid: Check size values after double-fetch from user Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 25/35] gpio: Fix OF build problem on UM Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 02/35] arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 16/35] USB: serial: ftdi_sio: add device ID for WICED USB UART dev board Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 18:50 +0200 [PATCH 3.14 24/35] megaraid_sas: Fix probing cards without io port Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 30/35] crypto: nx - off by one bug in nx_of_update_msc() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 23/35] cdc-acm: fix wrong pipe type on rx interrupt xfers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 31/35] USB: fix typo in wMaxPacketSize validation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 06/35] PCI: Limit config space size for Netronome NFP6000 family Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 28/35] Input: i8042 - break load dependency between atkbd/psmouse and i8042 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 08/35] PCI: Limit config space size for Netronome NFP4000 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 12/35] usb: xhci: Fix panic if disconnect Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 29/35] Input: i8042 - set up shared ps2_cmd_mutex for AUX ports Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 21/35] mac80211: fix purging multicast PS buffer queue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 33/35] USB: serial: mos7840: fix non-atomic allocation in write path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 14/35] USB: serial: option: add D-Link DWM-156/A3 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 26/35] fs/seq_file: fix out-of-bounds read Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 20/35] s390/dasd: fix hanging device after clear subchannel Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 [PATCH 3.14 32/35] USB: serial: mos7720: fix non-atomic allocation in write path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-09-05 19:50 +0200 Re: [PATCH 3.14 00/35] 3.14.78-stable review Guenter Roeck <linux@roeck-us.net> - 2016-09-06 19:10 +0200 Re: [PATCH 3.14 00/35] 3.14.78-stable review Shuah Khan <shuah.kh@samsung.com> - 2016-09-06 20:10 +0200
csiph-web