BCC: lkp(a)intel.com CC: kbuild-all(a)lists.01.org In-Reply-To: <20220930223042.351022-1-vinicius.gomes@intel.com> References: <20220930223042.351022-1-vinicius.gomes@intel.com> TO: Vinicius Costa Gomes TO: netdev(a)vger.kernel.org CC: Vinicius Costa Gomes CC: vladimir.oltean(a)nxp.com CC: yannick.vignon(a)nxp.com CC: jhs(a)mojatatu.com CC: xiyou.wangcong(a)gmail.com CC: kuba(a)kernel.org CC: Muhammad Husaini Zulkifli Hi Vinicius, I love your patch! Perhaps something to improve: [auto build test WARNING on net/master] url: https://github.com/intel-lab-lkp/linux/commits/Vinicius-Costa-Gomes/net-sched-taprio-Fix-crash-when-adding-child-qdisc/20221001-063146 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 0bafedc536499a533dd7a94c9c980d53f3ca2afc :::::: branch date: 17 hours ago :::::: commit date: 17 hours ago config: s390-randconfig-m031-20220925 compiler: s390-linux-gcc (GCC) 12.1.0 If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Reported-by: Dan Carpenter smatch warnings: net/sched/sch_taprio.c:1802 taprio_graft() warn: variable dereferenced before check 'new' (see line 1800) vim +/new +1802 net/sched/sch_taprio.c 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1779 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1780 static int taprio_graft(struct Qdisc *sch, unsigned long cl, 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1781 struct Qdisc *new, struct Qdisc **old, 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1782 struct netlink_ext_ack *extack) 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1783 { 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1784 struct taprio_sched *q = qdisc_priv(sch); 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1785 struct net_device *dev = qdisc_dev(sch); 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1786 struct netdev_queue *dev_queue = taprio_queue_get(sch, cl); 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1787 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1788 if (!dev_queue) 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1789 return -EINVAL; 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1790 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1791 if (dev->flags & IFF_UP) 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1792 dev_deactivate(dev); 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1793 13511704f8d759 Yannick Vignon 2021-05-11 1794 if (FULL_OFFLOAD_IS_ENABLED(q->flags)) { 13511704f8d759 Yannick Vignon 2021-05-11 1795 *old = dev_graft_qdisc(dev_queue, new); 13511704f8d759 Yannick Vignon 2021-05-11 1796 } else { 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1797 *old = q->qdiscs[cl - 1]; 13511704f8d759 Yannick Vignon 2021-05-11 1798 } 9446a10d946e00 Vinicius Costa Gomes 2022-09-30 1799 q->qdiscs[cl - 1] = new; 9446a10d946e00 Vinicius Costa Gomes 2022-09-30 @1800 qdisc_refcount_inc(new); 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1801 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 @1802 if (new) 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1803 new->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1804 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1805 if (dev->flags & IFF_UP) 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1806 dev_activate(dev); 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1807 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1808 return 0; 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1809 } 5a781ccbd19e46 Vinicius Costa Gomes 2018-09-28 1810 -- 0-DAY CI Kernel Test Service https://01.org/lkp