On 02/03/16 04:44, Ryota Ozaki wrote:
On Tue, Feb 2, 2016 at 8:51 AM, Taylor R Campbell
<campbell+netbsd-tech-k...@mumble.net> wrote:
[snip]
In this case, it's not a priori clear to me why the caller must be in
hardintr context.  Perhaps you want to discourage callers from using
this if they're already in softint context.  But even if the caller is
in softint context, maybe it's higher-priority softint context than
softnet (e.g., I think skrll@ plans to make all USB softints run at
softserial instead of softnet), and maybe you don't want ifp->if_input
to run at >softnet priority.

I'm still debating what to do here, but it's clear to me that all USB callbacks running at splsoftnet
has issues - see

        http://gnats.netbsd.org/50491

and somewhat related

        http://gnats.netbsd.org/49065

Oh, that's a case I didn't take into account. Running if->if_input
at >softnet priority would break the assumption that we rely on.

What assumption are you making?

We may be able to change the assert to
   KASSERT(cpu_intr_p() || (cpu_softintr_p() && level != SOFTINT_NET))
though, I think we don't need to be paranoid for the case.
(And I don't know how to get level. Is there API?).

There isn't an API afaik.
   ozaki-r

Nick

Reply via email to