| 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> |
|---|---|---|
| ||
| Previous by Date: | Re: Change -mcpu option for VR41xx, Maciej W. Rozycki |
|---|---|
| Next by Date: | Re: Change -mcpu option for VR41xx, Yoichi Yuasa |
| Previous by Thread: | problematic big endian ramdisk..., Yogish Patil |
| Next by Thread: | Re: volatile question, Kevin D. Kissell |
| Indexes: | [Date] [Thread] [Top] [All Lists] |