[BUG] scsi/libfc: Sleep-in-atomic bugs in libfc

From: Jia-Ju Bai
Date: Mon Oct 02 2017 - 23:09:01 EST


According to fc_disc.c, the driver may sleep under a RCU lock,
and the function call paths are:
fc_disc_done (acquire the RCU lock)
fc_rport_logoff
mutex_lock --> may sleep

fc_disc_done (acquire the RCU lock)
fc_rport_login
mutex_lock --> may sleep

fc_disc_stop_rports
fc_rport_logoff
mutex_lock --> may sleep

These bugs are found by my static analysis tool and my code review.

Thanks,
Jia-Ju Bai