On Thu, Jan 14, 2016 at 04:24:49PM +0100, Luca Abeni wrote:Ok. So, if I understand well, the "if (hrtimer_active(timer) == 0)" check
+ if (!hrtimer_is_queued(timer)) {
+ hrtimer_start(timer, act, HRTIMER_MODE_ABS);
+ }
+
+ if (hrtimer_active(timer) == 0) {
+ printk("Problem activating inactive_timer!\n");
+ clear_running_bw(dl_se, dl_rq);
+ if (!dl_task(p)) {
+ __dl_clear_params(p);
+ }
+ } else {
+ get_task_struct(p);
Ah, I missed that one. I would suggest putting that right _before_
hrtimer_start(), because hrtimer_start() guarantees the callback will
run.