Subject: Re: [PATCH net 1/1 v3] net: sched: Disallow replacing of child qdisc from one parent to another

From: Jakub Kicinski <[email-masked]>
Date: Wed, 15 Jan 2025 17:33:35 -0800

On Wed, 15 Jan 2025 15:39:43 -0500 Jamal Hadi Salim wrote:
> > diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
> > index 300430b8c4d2..fac9c946a4c7 100644
> > --- a/net/sched/sch_api.c
> > +++ b/net/sched/sch_api.c
> > @@ -1664,6 +1664,10 @@ static int tc_modify_qdisc(struct sk_buff *skb, struct nlmsghdr *n,
> >                                 q = qdisc_lookup(dev, tcm->tcm_handle);
> >                                 if (!q)
> >                                         goto create_n_graft;
> > +                               if (q->parent != tcm->tcm_parent) {
> > +                                       NL_SET_ERR_MSG(extack, "Cannot move an existing qdisc to a different parent");
> > +                                       return -EINVAL;
> > +                               }  
> 
> Yes, this should work as well - doesnt have to save the leaf_q, so more optimal.
> Please send the patch.

I'm gonna keep your commit and just post a v4, hope that's okay.