On 6.6.2017. 13:03, Martin Pieuchot wrote: > On 05/06/17(Mon) 16:52, Martin Pieuchot wrote: >> On 05/06/17(Mon) 12:12, Martin Pieuchot wrote: >>> Routing sockets are not protected by the NET_LOCK(). That's one of the >>> boundaries of the network stack. That's whhy claudio@ sent some diffs >>> to no longer require the KERNEL_LOCK() to protect them. >>> >>> But right now some rtm_* functions can be executed without >>> KERNEL_LOCK(). That's wrong. Diff below fixes that and move the >>> KERNEL_LOCK() further down in rtrequest(9) since the NET_LOCK() is >>> enough to protect the other data structures. >>> >>> The scariest bits come from default router advertisements, but I guess >>> that slaacd(8) saved us ;) >> Also change a KERNEL_ASSERT_LOCKED() into a NET_ASSERT_LOCK() in >> rt_{set,put}gwroute(). Theses can now be called without KERNEL_LOCK() >> when inserting an ARP entry. > Hrvoje Popovski found the hard way that rtrequest(RTM_RESOLVE...) still > need the KERNEL_LOCK() for malloc(9)/free(9).
Hi, with this patch i can't trigger panic as before. Thank you.