Re: [PATCH 4/4] cxlflash: Cancel scheduled workers before stopping AFU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Jan 6, 2017, at 8:05 AM, Uma Krishnan <ukrishn@xxxxxxxxxxxxxxxxxx> wrote:
> 
> When processing an AFU asynchronous interrupt, if the action results in an
> operation that requires off level processing (a link reset for example),
> the worker thread is scheduled. In the meantime a reset event (i.e.: EEH)
> could unmap the AFU to recover. This results in an Oops when the worker
> thread tries to access the AFU mapping.
> 
> [c000000f17e03b90] d000000007cd5978 cxlflash_worker_thread+0x268/0x550
> [c000000f17e03c40] c00000000011883c process_one_work+0x1dc/0x680
> [c000000f17e03ce0] c000000000118e80 worker_thread+0x1a0/0x520
> [c000000f17e03d80] c000000000126174 kthread+0xf4/0x100
> [c000000f17e03e30] c00000000000a47c ret_from_kernel_thread+0x5c/0xe0
> 
> In an effort to avoid this, a mapcount was introduced in
> commit b45cdbaf9f7f ("cxlflash: Resolve oops in wait_port_offline")
> but due to the race condition described above, this solution is incomplete.
> 
> In order to fully resolve this problem and to simplify things, this commit
> removes the mapcount solution. Instead, the scheduled worker thread is
> cancelled after interrupts have been disabled and prior to the mapping
> being freed.
> 
> Fixes: b45cdbaf9f7f ("cxlflash: Resolve oops in wait_port_offline")
> Signed-off-by: Uma Krishnan <ukrishn@xxxxxxxxxxxxxxxxxx>

Looks good.

Acked-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux