On Mon, Apr 25, 2016 at 11:31:57PM -0700, Raghava Aditya Renukunta wrote: > Typically under error conditions, it is possible for aac_command_thread() > to miss the wakeup from kthread_stop() and go back to sleep, causing it > to hang aac_shutdown. > > In the observed scenario, the adapter is not functioning correctly and so > aac_fib_send() never completes (or time-outs depending on how it was > called). Shortly after aac_command_thread() starts it performs > aac_fib_send(SendHostTime) which hangs. When aac_probe_one > /aac_get_adapter_info send time outs, kthread_stop is called which breaks > the command thread out of it's hang. > > The code will still go back to sleep in schedule_timeout() without > checking kthread_should_stop() so it causes aac_probe_one to hang until > the schedule_timeout() which is 30 minutes. > > Fixed by: Adding another kthread_should_stop() before schedule_timeout() > Cc: sta...@vger.kernel.org > > Signed-off-by: Raghava Aditya Renukunta > <raghavaaditya.renuku...@microsemi.com>
Reviewed-by: Johannes Thumshirn <jthumsh...@suse.de> -- Johannes Thumshirn Storage jthumsh...@suse.de +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 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html