Re: ND6 and splsoftnet()

2016-12-23 Thread Alexander Bluhm
On Thu, Dec 22, 2016 at 02:03:51PM +0100, Alexander Bluhm wrote: > Fine. But let's do the other changes. Move timer initialisation > to nd6_init() and call timeout_set() only once during init. Then > I don't have to think about wether it is MP safe. updated diff, parts have been commited ok?

Re: ND6 and splsoftnet()

2016-12-22 Thread Alexander Bluhm
On Wed, Dec 21, 2016 at 07:51:03PM +0100, Martin Pieuchot wrote: > > This diff replaces the nd6_timer timeout and task with a timeout > > proc. > > Can we wait until the experiment is complete? Until then I'd like > to keep timeout_set_proc() only for timeout converted because they > need the

Re: ND6 and splsoftnet()

2016-12-21 Thread Martin Pieuchot
On 21/12/16(Wed) 18:22, Alexander Bluhm wrote: > On Wed, Dec 21, 2016 at 05:21:53PM +0100, Alexander Bluhm wrote: > > > @@ -430,15 +430,16 @@ nd6_llinfo_timer(void *arg) > > > void > > > nd6_timer_work(void *null) > > > { > > > - int s; > > > struct nd_defrouter *dr, *ndr; > > > struct

Re: ND6 and splsoftnet()

2016-12-21 Thread Alexander Bluhm
On Wed, Dec 21, 2016 at 05:21:53PM +0100, Alexander Bluhm wrote: > > @@ -430,15 +430,16 @@ nd6_llinfo_timer(void *arg) > > void > > nd6_timer_work(void *null) > > { > > - int s; > > struct nd_defrouter *dr, *ndr; > > struct nd_prefix *pr, *npr; > > struct in6_ifaddr *ia6, *nia6; >

Re: ND6 and splsoftnet()

2016-12-21 Thread Alexander Bluhm
On Wed, Dec 21, 2016 at 01:52:45PM +0100, Martin Pieuchot wrote: > ok? OK bluhm@, but comments inline > @@ -430,15 +430,16 @@ nd6_llinfo_timer(void *arg) > void > nd6_timer_work(void *null) > { > - int s; > struct nd_defrouter *dr, *ndr; > struct nd_prefix *pr, *npr; >

ND6 and splsoftnet()

2016-12-21 Thread Martin Pieuchot
This diff get rids of all splsoftet() in nd6 code. I converted timers to the NET_LOCK() even if ip6_output() doesn't assert for it for the moment. That's simply the way to go. Also because these functions iterates on global data structures that will need the NET_LOCK() or a rewrite. ok?