Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sch_api: introduce qdisc_watchdog_schedule_ns()

tbf will need to schedule watchdog in ns. No need to convert it twice.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jiri Pirko and committed by
David S. Miller
34c5d292 292f1c7f

+11 -5
+8 -2
include/net/pkt_sched.h
··· 65 65 }; 66 66 67 67 extern void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc); 68 - extern void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, 69 - psched_time_t expires); 68 + extern void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires); 69 + 70 + static inline void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, 71 + psched_time_t expires) 72 + { 73 + qdisc_watchdog_schedule_ns(wd, PSCHED_TICKS2NS(expires)); 74 + } 75 + 70 76 extern void qdisc_watchdog_cancel(struct qdisc_watchdog *wd); 71 77 72 78 extern struct Qdisc_ops pfifo_qdisc_ops;
+3 -3
net/sched/sch_api.c
··· 493 493 } 494 494 EXPORT_SYMBOL(qdisc_watchdog_init); 495 495 496 - void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, psched_time_t expires) 496 + void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires) 497 497 { 498 498 if (test_bit(__QDISC_STATE_DEACTIVATED, 499 499 &qdisc_root_sleeping(wd->qdisc)->state)) ··· 502 502 qdisc_throttled(wd->qdisc); 503 503 504 504 hrtimer_start(&wd->timer, 505 - ns_to_ktime(PSCHED_TICKS2NS(expires)), 505 + ns_to_ktime(expires), 506 506 HRTIMER_MODE_ABS); 507 507 } 508 - EXPORT_SYMBOL(qdisc_watchdog_schedule); 508 + EXPORT_SYMBOL(qdisc_watchdog_schedule_ns); 509 509 510 510 void qdisc_watchdog_cancel(struct qdisc_watchdog *wd) 511 511 {