On Tue, Feb 9, 2016 at 1:34 AM, Taylor R Campbell <campbell+netbsd-tech-k...@mumble.net> wrote: > Date: Mon, 8 Feb 2016 15:01:18 +0900 > From: Ryota Ozaki <ozak...@netbsd.org> > > After that, two more issues have been found by him, and I've fixed them: > http://www.netbsd.org/~ozaki-r/softint-if_input-percpuq6.diff > http://www.netbsd.org/~ozaki-r/softint-if_input-percpuq6-diff.diff > > (For the record, the issues were spurious reinitialization of > ifp->if_percpuq in if_iwm and if_rtwn causing a memory leak, and a > needless whitespace change in if_otus -- all residual from earlier > drafts.)
Allocating ifp->if_percpuq in if_iwm and if_rtwn is correct because if_initialize/if_register don't allocate it. > > Are there any ieee80211 drivers that already do anything in softint? > At a cursory glance, I don't see any. So the conditional is probably > not necessary No, not yet (except USB drivers). I can remove the conditional (but we have to keep in mind to change there when we change ieee80211 and/or individual Wifi drivers). Patches updated: http://www.netbsd.org/~ozaki-r/softint-if_input-percpuq7.diff http://www.netbsd.org/~ozaki-r/softint-if_input-percpuq7-diff.diff > -- and this is an argument for (in a future change) > exposing the callback for if_percpuq so that ieee80211 can do > if_perpcuq_dequeue/ieee80211_input, not if_percpuq_dequeue/if_input, > in a loop. I'm worried we would have to make rxintr of Wifi drivers softint in order to run all bpf hooks in softint because bpf hooks exit before ieee80211_input. If we can move them into ieee80211_input, we don't need such big changes though, I'm not sure yet if we can. ozaki-r