projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
544714d
)
PCI: Prevent VPD access for QLogic ISP2722
author
Ethan Zhao
<ethan.zhao@oracle.com>
Mon, 27 Feb 2017 08:08:44 +0000
(17:08 +0900)
committer
Bjorn Helgaas
<bhelgaas@google.com>
Tue, 7 Mar 2017 20:16:57 +0000
(14:16 -0600)
QLogic ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter has the VPD
access issue too, while read the common pci-sysfs access interface shown as
/sys/devices/pci0000:00/0000:00:03.2/0000:0b:00.0/vpd
with simple 'cat' could cause system hang and panic:
Kernel panic - not syncing: An NMI occurred. Depending on your system the reason for the NMI is logged in any one of the following resources:
1. Integrated Management Log (IML)
2. OA Syslog
3. OA Forward Progress Log
4. iLO Event Log
CPU: 0 PID: 15070 Comm: udevadm Not tainted 4.1.12
Hardware name: HP ProLiant DL380 Gen9/ProLiant DL380 Gen9, BIOS P89 12/27/2015
0000000000000086
000000007f0cdf51
ffff880c4fa05d58
ffffffff817193de
ffffffffa00b42d8
0000000000000075
ffff880c4fa05dd8
ffffffff81714072
0000000000000008
ffff880c4fa05de8
ffff880c4fa05d88
000000007f0cdf51
Call Trace:
<NMI> [<
ffffffff817193de
>] dump_stack+0x63/0x81
[<
ffffffff81714072
>] panic+0xd0/0x20e
[<
ffffffffa00b390d
>] hpwdt_pretimeout+0xdd/0xe0 [hpwdt]
[<
ffffffff81021fc9
>] ? sched_clock+0x9/0x10
[<
ffffffff8101c101
>] nmi_handle+0x91/0x170
[<
ffffffff8101c10c
>] ? nmi_handle+0x9c/0x170
[<
ffffffff8101c5fe
>] io_check_error+0x1e/0xa0
[<
ffffffff8101c719
>] default_do_nmi+0x99/0x140
[<
ffffffff8101c8b4
>] do_nmi+0xf4/0x170
[<
ffffffff817232c5
>] end_repeat_nmi+0x1a/0x1e
[<
ffffffff815d724b
>] ? pci_conf1_read+0xeb/0x120
[<
ffffffff815d724b
>] ? pci_conf1_read+0xeb/0x120
[<
ffffffff815d724b
>] ? pci_conf1_read+0xeb/0x120
<<EOE>> [<
ffffffff815db4b3
>] raw_pci_read+0x23/0x40
[<
ffffffff815db4fc
>] pci_read+0x2c/0x30
[<
ffffffff8136f612
>] pci_user_read_config_word+0x72/0x110
[<
ffffffff8136f746
>] pci_vpd_pci22_wait+0x96/0x130
[<
ffffffff8136ff9b
>] pci_vpd_pci22_read+0xdb/0x1a0
[<
ffffffff8136ea30
>] pci_read_vpd+0x20/0x30
[<
ffffffff8137d590
>] read_vpd_attr+0x30/0x40
[<
ffffffff8128e037
>] sysfs_kf_bin_read+0x47/0x70
[<
ffffffff8128d24e
>] kernfs_fop_read+0xae/0x180
[<
ffffffff8120dd97
>] __vfs_read+0x37/0x100
[<
ffffffff812ba7e4
>] ? security_file_permission+0x84/0xa0
[<
ffffffff8120e366
>] ? rw_verify_area+0x56/0xe0
[<
ffffffff8120e476
>] vfs_read+0x86/0x140
[<
ffffffff8120f3f5
>] SyS_read+0x55/0xd0
[<
ffffffff81720f2e
>] system_call_fastpath+0x12/0x71
Shutting down cpus with NMI
Kernel Offset: disabled
drm_kms_helper: panic occurred, switching back to text console
So blacklist the access to its VPD.
Signed-off-by: Ethan Zhao <ethan.zhao@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: stable@vger.kernel.org # v4.6+
drivers/pci/quirks.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/pci/quirks.c
b/drivers/pci/quirks.c
index f754453fe754e985361cb49cee0bddf54d752443..673683660b5c70567d7c49cd091c5c8ecf088655 100644
(file)
--- a/
drivers/pci/quirks.c
+++ b/
drivers/pci/quirks.c
@@
-2174,6
+2174,7
@@
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005d, quirk_blacklist_vpd);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005f, quirk_blacklist_vpd);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, PCI_ANY_ID,
quirk_blacklist_vpd);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_QLOGIC, 0x2261, quirk_blacklist_vpd);
/*
* For Broadcom 5706, 5708, 5709 rev. A nics, any read beyond the