Re: [PATCH net] fix BUG: scheduling while atomic in netlink broadcast

2017-05-19 Thread Akshay Narayan
> I don't want to defend the use of yield() but it looks like there is other > problem. I believe this use of yield() should be replaced with cond_resched() even if it turns out there is an unrelated problem. > Does this module call netlink_broadcast() with __GFP_DIRECT_RECLAIM > in IRQ context?

[PATCH net] fix BUG: scheduling while atomic in netlink broadcast

2017-05-19 Thread Akshay Narayan
netlink_broadcast_filtered() calls yield() when a slow listener causes the buffer to fill. yield() is the wrong choice here, as pointed out by Commit 8e3fabfde4 (sched: Update yield() docs); in some cases, its use causes "BUG: scheduling while atomic" and, when fewer cores are available, kernel han