From: Mark Brown Date: Wed, 21 Jan 2015 22:27:49 +0000 (+0000) Subject: Merge remote-tracking branch 'lsk/v3.10/topic/hrtimer' into linux-linaro-lsk X-Git-Tag: firefly_0821_release~3680^2~34^2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=709d22822886bfb105a1c498c14ab6647d0f1284;p=firefly-linux-kernel-4.4.55.git Merge remote-tracking branch 'lsk/v3.10/topic/hrtimer' into linux-linaro-lsk Conflicts: kernel/time/clockevents.c kernel/time/tick-broadcast.c kernel/time/tick-common.c kernel/time/tick-internal.h --- 709d22822886bfb105a1c498c14ab6647d0f1284 diff --cc include/linux/clockchips.h index ae1193bcf074,a4520e27f8bd..3abe1e9a1bde --- a/include/linux/clockchips.h +++ b/include/linux/clockchips.h @@@ -82,9 -86,9 +87,10 @@@ enum clock_event_mode * @name: ptr to clock event name * @rating: variable to rate clock event devices * @irq: IRQ number (only for non CPU local devices) + * @bound_on: Bound on CPU * @cpumask: cpumask to indicate for which CPUs this device works * @list: list head for the management code + * @owner: module reference */ struct clock_event_device { void (*event_handler)(struct clock_event_device *); @@@ -112,9 -116,9 +118,10 @@@ const char *name; int rating; int irq; + int bound_on; const struct cpumask *cpumask; struct list_head list; + struct module *owner; } ____cacheline_aligned; /* diff --cc kernel/time/tick-broadcast.c index 19ee339a1d0d,5d732da73009..16f4830a5498 --- a/kernel/time/tick-broadcast.c +++ b/kernel/time/tick-broadcast.c @@@ -841,13 -808,13 +889,15 @@@ void tick_shutdown_broadcast_oneshot(un raw_spin_lock_irqsave(&tick_broadcast_lock, flags); /* - * Clear the broadcast mask flag for the dead cpu, but do not - * stop the broadcast device! + * Clear the broadcast masks for the dead cpu, but do not stop + * the broadcast device! */ cpumask_clear_cpu(cpu, tick_broadcast_oneshot_mask); + cpumask_clear_cpu(cpu, tick_broadcast_pending_mask); + cpumask_clear_cpu(cpu, tick_broadcast_force_mask); + broadcast_move_bc(cpu); + raw_spin_unlock_irqrestore(&tick_broadcast_lock, flags); }