On 02/14/2017 09:44 PM, Raghava Aditya Renukunta wrote: > When the command thread performs a periodic time sync and the firmware is > going through an assert during that time, the command thread waits for the > response that would never arrive. The SCSI Mid layer's error handler would > eventually reset the controller, but the eh_handler just issues a > "thread stop" to the command thread which is stuck on a semaphore and the > eh_thread would in turn goes to sleep waiting for the command_thread to > respond to the stop which never happens. > > Fixed by allowing SIGTERM for the command thread, and during the eh_reset > call, sends termination signal to the command thread. As a follow-up, the > eh_reset handler would take care of the controller reset. > > Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@xxxxxxxxxxxxx> > Reviewed-by: David Carroll <David.Carroll@xxxxxxxxxxxxx> > --- This look a bit scary. Can't the kthread be converted to a workqueue so we could call cancel_work_sync()? -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850