net/sched/sch_hfsc.c: anchor virtual curve at proper vt in hfsc_change_fsc()
authorMichal Soltys <soltys@ziu.info>
Thu, 30 Jun 2016 00:26:48 +0000 (02:26 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Jul 2016 09:03:43 +0000 (05:03 -0400)
cl->cl_vt alone is relative only to the current backlog period, while
the curve operates on cumulative virtual time. This patch adds missing
cl->cl_vtoff.

Signed-off-by: Michal Soltys <soltys@ziu.info>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_hfsc.c

index 4eef857bac4da0ba984edf15b37e682b10fe0160..dff92ea772fe34ad8bac9ca3a4d579868776665d 100644 (file)
@@ -940,7 +940,7 @@ static void
 hfsc_change_fsc(struct hfsc_class *cl, struct tc_service_curve *fsc)
 {
        sc2isc(fsc, &cl->cl_fsc);
-       rtsc_init(&cl->cl_virtual, &cl->cl_fsc, cl->cl_vt, cl->cl_total);
+       rtsc_init(&cl->cl_virtual, &cl->cl_fsc, cl->cl_vtoff + cl->cl_vt, cl->cl_total);
        cl->cl_flags |= HFSC_FSC;
 }