linux-mips
[Top] [All Lists]

volatile question

To: linux-mips@linux-mips.org
Subject: volatile question
From: Greg Lindahl <lindahl@keyresearch.com>
Date: Wed, 26 Feb 2003 16:53:39 -0800
Mail-followup-to: linux-mips@linux-mips.org
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4i
In the mips, mips64, and even the i386 arch, arch/kernel/smp.c has
this in smp_call_function:

        spin_lock(&call_lock);
        call_data = &data;

        /* Send a message to all other CPUs and wait for them to respond */
        for (i = 0; i < smp_num_cpus; i++)
                if (i != cpu)
                        core_send_ipi(i, SMP_CALL_FUNCTION);

call_data isn't volatile, it's a plain static *. So how can we be sure
that "call_data = &data" does anything other than change a register?

The i386 has a wb() after the assignment; we don't even have that.

greg



<Prev in Thread] Current Thread [Next in Thread>