> So I would ack the patch with a minor change in the commit message. So 
> instead 
> of
> 
> > During the module shutdown procedure in batman_exit(), a rcu callback is
> > being scheduled (batman_exit -> hardif_remove_interfaces ->
> > hardif_remove_interfae -> call_rcu). However, when the kernel unloads
> > the module, the rcu callback might not have been executed yet, resulting
> > in a "unable to handle kernel paging request" in __rcu_process_callback
> > afterwards, causing the kernel to freeze.
> > Therefore, we should always flush all rcu callback functions scheduled
> > during the shutdown procedure.
> 
> something like
> 
> > During the module shutdown procedure in batman_exit(), a rcu callback is    
> >                                                                             
> >                                                   
> > being scheduled (batman_exit -> hardif_remove_interfaces ->                 
> >                                                                             
> >                                                   
> > hardif_remove_interfae -> call_rcu). However, when the kernel unloads       
> >                                                                             
> >                                                   
> > the module, the rcu callback might not have been executed yet, resulting    
> >                                                                             
> >                                                   
> > in a "unable to handle kernel paging request" in __rcu_process_callback     
> >                                                                             
> >                                                   
> > afterwards, causing the kernel to freeze.                                   
> >                                                                             
> >                                                   
>                                                                               
>                                                                               
>                                               
> > The synchronize_net and synchronize_rcu in mesh_free are currently          
> >                                                                             
> >                                                   
> > called before the call_rcu in hardif_remove_interface and have no real      
> >                                                                             
> >                                                   
> > effect on it.                                                               
> >                                                                             
> >                                                   
>                                                                               
>                                                                               
>                                               
> > Therefore, we should always flush all rcu callback functions scheduled      
> >                                                                             
> >                                                   
> > during the shutdown procedure using synchronize_net. The call to            
> >                                                                             
> >                                                   
> > synchronize_rcu can be omitted because synchronize_net already calls it.

Yep, sounds good :). Thanks for reviewing and the info about
synchronize_net.

Cheers, Linus

> 
> thanks,
>       Sven


Reply via email to