Linus Lüssing wrote:
hardif_remove_interfaces() removes all hard interfaces from the hardif_list before freeing and cleaning up any device. However the clean up procedures in orig_hash_del_if() (hardif_remove_interface()->hardif_disable_interface()-> orig_hash_del_if()) need the other interfaces still to be present in the hardif_list. Otherwise it won't renumber any preceding interfaces, which leads to an unhandled kernel paging request in orig_node_del_if()'s "/* copy second part */" due to wrong hard_if->if_num's.
With this commit the interface removal on module shutdown will be down in the same way as removing single interfaces from batman only: One interface will be removed and cleaned at a time.
Signed-off-by: Linus Lüssing linus.luessing@web.de
Please use --patience as requested in http://www.open-mesh.org/wiki/open-mesh/Contribute
Please show us (as part of the commit message) why the information in http://www.open-mesh.org/projects/batman-adv/repository/revisions/132b776c22... isn't valid anymore and explain why it is save to use the spin_lock only inside the loop (but it would have to protect the loop in normal situations).
Kind regards, Sven