• Greg Edwards's avatar
    mpt3sas: Fix resume on WarpDrive flash cards · ce7c6c9e
    Greg Edwards authored
    mpt3sas crashes on resume after suspend with WarpDrive flash cards.  The
    reply_post_host_index array is not set back up after the resume, and we
    deference a stale pointer in _base_interrupt().
    
    [   47.309711] BUG: unable to handle kernel paging request at ffffc90001f8006c
    [   47.318289] IP: [<ffffffffc00863ef>] _base_interrupt+0x49f/0xa30 [mpt3sas]
    [   47.326749] PGD 41ccaa067 PUD 41ccab067 PMD 3466c067 PTE 0
    [   47.333848] Oops: 0002 [#1] SMP
    ...
    [   47.452708] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.7.0 #6
    [   47.460506] Hardware name: Dell Inc. OptiPlex 990/06D7TR, BIOS A18 09/24/2013
    [   47.469629] task: ffffffff81c0d500 ti: ffffffff81c00000 task.ti: ffffffff81c00000
    [   47.479112] RIP: 0010:[<ffffffffc00863ef>]  [<ffffffffc00863ef>] _base_interrupt+0x49f/0xa30 [mpt3sas]
    [   47.490466] RSP: 0018:ffff88041d203e30  EFLAGS: 00010002
    [   47.497801] RAX: 0000000000000001 RBX: ffff880033f4c000 RCX: 0000000000000001
    [   47.506973] RDX: ffffc90001f8006c RSI: 0000000000000082 RDI: 0000000000000082
    [   47.516141] RBP: ffff88041d203eb0 R08: ffff8804118e2820 R09: 0000000000000001
    [   47.525300] R10: 0000000000000001 R11: 00000000100c0000 R12: 0000000000000000
    [   47.534457] R13: ffff880412c487e0 R14: ffff88041a8987d8 R15: 0000000000000001
    [   47.543632] FS:  0000000000000000(0000) GS:ffff88041d200000(0000) knlGS:0000000000000000
    [   47.553796] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   47.561632] CR2: ffffc90001f8006c CR3: 0000000001c06000 CR4: 00000000000406f0
    [   47.570883] Stack:
    [   47.575015]  000000001d211228 ffff88041d2100c0 ffff8800c47d8130 0000000000000100
    [   47.584625]  ffff8804100c0000 100c000000000000 ffff88041a8992a0 ffff88041a8987f8
    [   47.594230]  ffff88041d203e00 ffffffff81111e55 000000000000038c ffff880414ad4280
    [   47.603862] Call Trace:
    [   47.608474]  <IRQ>
    [   47.610413]  [<ffffffff81111e55>] ? call_timer_fn+0x35/0x120
    [   47.620539]  [<ffffffff81100a1f>] handle_irq_event_percpu+0x7f/0x1c0
    [   47.629061]  [<ffffffff81100b8c>] handle_irq_event+0x2c/0x50
    [   47.636859]  [<ffffffff81103fff>] handle_edge_irq+0x6f/0x130
    [   47.644654]  [<ffffffff8102fbf3>] handle_irq+0x73/0x120
    [   47.652011]  [<ffffffff810c6ada>] ? atomic_notifier_call_chain+0x1a/0x20
    [   47.660854]  [<ffffffff817e374b>] do_IRQ+0x4b/0xd0
    [   47.667777]  [<ffffffff817e160c>] common_interrupt+0x8c/0x8c
    [   47.675635]  <EOI>
    
    Move the reply_post_host_index array setup into
    mpt3sas_base_map_resources(), which is also in the resume path.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarGreg Edwards <gedwards@fireweed.org>
    Acked-by: default avatarChaitra P B <chaitra.basappa@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    ce7c6c9e
Name
Last commit
Last update
..
accessibility Loading commit data...
acpi Loading commit data...
amba Loading commit data...
android Loading commit data...
ata Loading commit data...
atm Loading commit data...
auxdisplay Loading commit data...
base Loading commit data...
bcma Loading commit data...
block Loading commit data...
bluetooth Loading commit data...
bus Loading commit data...
cdrom Loading commit data...
char Loading commit data...
clk Loading commit data...
clocksource Loading commit data...
connector Loading commit data...
cpufreq Loading commit data...
cpuidle Loading commit data...
crypto Loading commit data...
dax Loading commit data...
dca Loading commit data...
devfreq Loading commit data...
dio Loading commit data...
dma Loading commit data...
dma-buf Loading commit data...
edac Loading commit data...
eisa Loading commit data...
extcon Loading commit data...
firewire Loading commit data...
firmware Loading commit data...
fmc Loading commit data...
fpga Loading commit data...
gpio Loading commit data...
gpu Loading commit data...
hid Loading commit data...
hsi Loading commit data...
hv Loading commit data...
hwmon Loading commit data...
hwspinlock Loading commit data...
hwtracing Loading commit data...
i2c Loading commit data...
ide Loading commit data...
idle Loading commit data...
iio Loading commit data...
infiniband Loading commit data...
input Loading commit data...
iommu Loading commit data...
ipack Loading commit data...
irqchip Loading commit data...
isdn Loading commit data...
leds Loading commit data...
lguest Loading commit data...
lightnvm Loading commit data...
macintosh Loading commit data...
mailbox Loading commit data...
mcb Loading commit data...
md Loading commit data...
media Loading commit data...
memory Loading commit data...
memstick Loading commit data...
message Loading commit data...
mfd Loading commit data...
misc Loading commit data...
mmc Loading commit data...
mtd Loading commit data...
net Loading commit data...
nfc Loading commit data...
ntb Loading commit data...
nubus Loading commit data...
nvdimm Loading commit data...
nvme Loading commit data...
nvmem Loading commit data...
of Loading commit data...
oprofile Loading commit data...
parisc Loading commit data...
parport Loading commit data...
pci Loading commit data...
pcmcia Loading commit data...
perf Loading commit data...
phy Loading commit data...
pinctrl Loading commit data...
platform Loading commit data...
pnp Loading commit data...
power Loading commit data...
powercap Loading commit data...
pps Loading commit data...
ps3 Loading commit data...
ptp Loading commit data...
pwm Loading commit data...
rapidio Loading commit data...
ras Loading commit data...
regulator Loading commit data...
remoteproc Loading commit data...
reset Loading commit data...
rpmsg Loading commit data...
rtc Loading commit data...
s390 Loading commit data...
sbus Loading commit data...
scsi Loading commit data...
sfi Loading commit data...
sh Loading commit data...
sn Loading commit data...
soc Loading commit data...
spi Loading commit data...
spmi Loading commit data...
ssb Loading commit data...
staging Loading commit data...
target Loading commit data...
tc Loading commit data...
thermal Loading commit data...
thunderbolt Loading commit data...
tty Loading commit data...
uio Loading commit data...
usb Loading commit data...
uwb Loading commit data...
vfio Loading commit data...
vhost Loading commit data...
video Loading commit data...
virt Loading commit data...
virtio Loading commit data...
vlynq Loading commit data...
vme Loading commit data...
w1 Loading commit data...
watchdog Loading commit data...
xen Loading commit data...
zorro Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...