Re: [PATCH] net/cls_cgroup: Fix task_get_classid() during qdisc run
From: Sebastian Andrzej Siewior
Date: Tue Aug 19 2025 - 09:30:57 EST
On 2025-08-19 14:42:07 [+0200], Daniel Borkmann wrote:
> > --- a/include/net/cls_cgroup.h
> > +++ b/include/net/cls_cgroup.h
> > @@ -63,7 +63,7 @@ static inline u32 task_get_classid(const struct sk_buff *skb)
> > * calls by looking at the number of nested bh disable calls because
> > * softirqs always disables bh.
> > */
> > - if (in_serving_softirq()) {
> > + if (in_softirq()) {
> > struct sock *sk = skb_to_full_sk(skb);
> > /* If there is an sock_cgroup_classid we'll use that. */
…
> Looking at in_softirq(), the comment says "the following macros are deprecated and
> should not be used in new code", see commit 15115830c887 ("preempt: Cleanup the
> macro maze a bit"). Maybe Sebastian or Paul has input on whether in_softirq() is
> still supposed to be used.
it listed in the deprecated section so I would tend to suggest
softirq_count(). But then in_softirq() kind of describes what is done
while the other two (in_irq, in_interrupt) were ambiguous and people
often mixed them up.
Let me poke someone and then we maybe commit to clean up so leave the
limbo state.
> Thanks,
> Daniel
Sebastian