Re: in_atomic() & spin_lock / spin_unlock in different functions

From: Manfred Spraul (manfred@colorfullife.com)
Date: Sun Oct 13 2002 - 14:21:02 EST


> What is it that in_atomic counts? Obviously spinlocks and
> get_cpu/put_cpu. Anything else?
>

preempt_disable(), local_irq_disable(), local_bh_disable().

> I'm doing spin_lock_irqsave() then in another function
> spin_unlock_irqrestore. Is that okay? If no, can it cause "scheduling
> in atomic"?

It's not okay, but shouldn't cause scheduling in atomic messages.

The problem is sparc: the 'unsigned long flags' parameter used by
_irqsave and _irqrestore contains the stack frame, which means that you
cannot pass it between functions.

--
	Manfred

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:46 EST