On 07/31/2018 07:56 PM, Chris Leech wrote: > The libfc and libfcoe modules look to have issues with mutexs being used > under rcu_read_lock, which triggers "Illegal context switch in RCU read > side critical section" warnings under debug kernels. > > I started looking at fc_disc.c where rport discovery code appears to > take a mutex for each rport in fc_rport_login/fc_rport_logoff while > being called under rcu_read_lock from fc_disc_done. > > With the rdata->kref held, I know rcu_read_unlock can be safely called > before login fc_rport_login/logoff. But I don't know if it's safe to > then recall rcu_read_lock and simply continue on with the > list_for_each_entry_rcu or not. > > And as I start looking into this one case, I also get the same class of > problem popping up in at least libfcoe:fcoe_ctrl.c from > fcoe_ctrl_timer_work as well :( > This should've been fixed by my patch series "libfc/fcoe: disc_mutex fixes". Can you check if this series is applied in your tree? Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)