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

Reply via email to