Re: [patch] timer/hrtimer: take per cpu locks in sane order

Andrew Morton
2007-03-02T19:46:05Z

On Fri, 2 Mar 2007 20:08:36 +0100
Heiko Carstens <heiko.carstens@de.ibm.com> wrote:

> +/*
> + * double_hrtimer_lock/unlock are used to ensure that on cpu hotplug the
> + * per cpu timer locks are always taken in the same order.
> + */
> +static void double_hrtimer_lock(struct hrtimer_cpu_base *base1,
> + struct hrtimer_cpu_base *base2, int ind)
> + __acquires(base1->lock)
> + __acquires(base2->lock)
> +{
>
> ...
>
> +/*
> + * double_timer_lock/unlock are used to ensure that on cpu hotplug the
> + * per cpu timer locks are always taken in the same order.
> + */
> +static void __devinit double_timer_lock(tvec_base_t *base1,
> + tvec_base_t *base2, int ind)
> + __acquires(base1->lock)
> + __acquires(base2->lock)

hm. Can we not just pass in the spinlock_t*'s and use a common function?

void double_spin_lock(spinlock_t *l1, spinlock_t *l2, int ind);

that way it has nothing to do with timers and can potentially be used
elsewhere in the kernel, too.

(what does "ind" mean?)