On Tue, 16 Aug 2016, Jiri Kosina wrote: > From: Jiri Kosina <jkos...@suse.cz> > > qdisc_match_from_root() is now iterating over per-netdevice qdisc > hashtable instead of going through a linked-list of qdiscs (independently > on the actual underlying netdev), which used to be the case before the > switch to hashtable for qdiscs. > > For singleton qdiscs, there is no underlying netdev associated though, and > therefore dumping a singleton qdisc will panic, as qdisc_dev(root) will > always be NULL. [ ... snip ... ] > @@ -1456,6 +1459,10 @@ static int tc_dump_qdisc_root(struct Qdisc *root, > struct sk_buff *skb, > goto done; > q_idx++; > } > + > + if (!qdisc_dev(root)) > + goto done; > +
Ok, this will cause default singleton-only devices being missed in the dump. I am now working on creating a automation that'd test as many use cases as possible; will send up a new patch once I have all the known corner cases covered (including the ingress / clsact dump duplication). Please drop this one for now, I'll send up an accumulated followup fixes asap. Thanks, -- Jiri Kosina SUSE Labs