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: stable@xxxxxxxxxxxxxxx > > Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@xxxxxxxxxxxxx> Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> -- 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 -- 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