patch-5.15.79-rt54.patch
[platform/kernel/linux-rpi.git] / net / sched / sch_atm.c
index 70fe1c5..816fd0d 100644 (file)
@@ -52,7 +52,7 @@ struct atm_flow_data {
        struct atm_qdisc_data   *parent;        /* parent qdisc */
        struct socket           *sock;          /* for closing */
        int                     ref;            /* reference count */
-       struct gnet_stats_basic_packed  bstats;
+       struct gnet_stats_basic_sync    bstats;
        struct gnet_stats_queue qstats;
        struct list_head        list;
        struct atm_flow_data    *excess;        /* flow for excess traffic;
@@ -548,6 +548,7 @@ static int atm_tc_init(struct Qdisc *sch, struct nlattr *opt,
        pr_debug("atm_tc_init(sch %p,[qdisc %p],opt %p)\n", sch, p, opt);
        INIT_LIST_HEAD(&p->flows);
        INIT_LIST_HEAD(&p->link.list);
+       gnet_stats_basic_sync_init(&p->link.bstats);
        list_add(&p->link.list, &p->flows);
        p->link.q = qdisc_create_dflt(sch->dev_queue,
                                      &pfifo_qdisc_ops, sch->handle, extack);
@@ -651,8 +652,7 @@ atm_tc_dump_class_stats(struct Qdisc *sch, unsigned long arg,
 {
        struct atm_flow_data *flow = (struct atm_flow_data *)arg;
 
-       if (gnet_stats_copy_basic(qdisc_root_sleeping_running(sch),
-                                 d, NULL, &flow->bstats) < 0 ||
+       if (gnet_stats_copy_basic(d, NULL, &flow->bstats, true) < 0 ||
            gnet_stats_copy_queue(d, NULL, &flow->qstats, flow->q->q.qlen) < 0)
                return -1;