]> git.baikalelectronics.ru Git - kernel.git/commit
net/sched: sch_taprio: reset child qdiscs before freeing them
authorDavide Caratti <dcaratti@redhat.com>
Wed, 16 Dec 2020 18:33:29 +0000 (19:33 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 17 Dec 2020 18:57:57 +0000 (10:57 -0800)
commita4bb555902929eed5b76ce1d2953d46eb73bc501
tree36c649188f6e2d3945fce7398242af258c47db0e
parentad403f14baca2f6b500cb6ab3432611e7c2fa552
net/sched: sch_taprio: reset child qdiscs before freeing them

syzkaller shows that packets can still be dequeued while taprio_destroy()
is running. Let sch_taprio use the reset() function to cancel the advance
timer and drop all skbs from the child qdiscs.

Fixes: 6e8a93ac1aec ("tc: Add support for configuring the taprio scheduler")
Link: https://syzkaller.appspot.com/bug?id=f362872379bf8f0017fb667c1ab158f2d1e764ae
Reported-by: syzbot+8971da381fb5a31f542d@syzkaller.appspotmail.com
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Link: https://lore.kernel.org/r/63b6d79b0e830ebb0283e020db4df3cdfdfb2b94.1608142843.git.dcaratti@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/sch_taprio.c