summaryrefslogtreecommitdiff
path: root/COPYING
diff options
context:
space:
mode:
authorManoj Kumar <manoj@linux.vnet.ibm.com>2015-12-14 21:07:23 (GMT)
committerMartin K. Petersen <martin.petersen@oracle.com>2016-01-07 01:55:01 (GMT)
commitb45cdbaf9f7f0486847c52f60747fb108724652a (patch)
treec59b83e2a7384f2f9ab2a74a8e11223a114e85a5 /COPYING
parentee91e332a6e6e9b939f60f6e1bd72fb2def5290d (diff)
downloadlinux-b45cdbaf9f7f0486847c52f60747fb108724652a.tar.xz
cxlflash: Resolve oops in wait_port_offline
If an async error interrupt is generated, and the error requires the FC link to be reset, it cannot be performed in the interrupt context. So a work element is scheduled to complete the link reset in a process context. If either an EEH event or an escalation occurs in between when the interrupt is generated and the scheduled work is started, the MMIO space may no longer be available. This will cause an oops in the worker thread. [ 606.806583] NIP kthread_data+0x28/0x40 [ 606.806633] LR wq_worker_sleeping+0x30/0x100 [ 606.806694] Call Trace: [ 606.806721] 0x50 (unreliable) [ 606.806796] wq_worker_sleeping+0x30/0x100 [ 606.806884] __schedule+0x69c/0x8a0 [ 606.806959] schedule+0x44/0xc0 [ 606.807034] do_exit+0x770/0xb90 [ 606.807109] die+0x300/0x460 [ 606.807185] bad_page_fault+0xd8/0x150 [ 606.807259] handle_page_fault+0x2c/0x30 [ 606.807338] wait_port_offline.constprop.12+0x60/0x130 [cxlflash] To prevent the problem space area from being unmapped, when there is pending work, a mapcount (using the kref mechanism) is held. The mapcount is released only when the work is completed. The last reference release is tied to the unmapping service. Signed-off-by: Manoj N. Kumar <manoj@linux.vnet.ibm.com> Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com> Reviewed-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'COPYING')
0 files changed, 0 insertions, 0 deletions