Hi Alexander, On 18/10/13(Fri) 12:45, Alexander Bluhm wrote: > Hi, > > Ethernet drivers connected via USB might sleep when their multicast > group filter is modified. Unfortunately this happens from softclock > or softnet interrupt when IPv6 decides to unconfigure its addresses > automatically. > > An obvious solution is to use a work queue. I have put the workq > storage into struct in6_multi_mship. That requires to include > sys/workq.h before compiling this struct.
One problem with a work queue is that you cannot guarantee the interface will still be here when the task will be scheduled, so passing a pointer might not be a good idea. That is why I wanted to change the if_get() API to use unique index for each interface... But maybe there's another solution at this problem than using a workq... Martin