Messages in this thread | | | Date | Wed, 13 Aug 2008 14:32:06 -0700 | From | Arjan van de Ven <> | Subject | Re: [PATCH](retry 2) Re: invalidate caches before going into suspend |
| |
On Wed, 13 Aug 2008 13:47:05 -0500 "Langsdorf, Mark" <mark.langsdorf@amd.com> wrote:
> > Mark Langsdorf <mark.langsdorf@amd.com> wrote: > > > + /* mask all interrupts, flush any and all caches, and > > > halt */ > > > + if (cpu_has_clflush) > > > + wbinvd_halt(); > > > + else > > > + while (1) > > > + halt(); > > > } > > > > I like the asm version .. but this code makes me blink. > > when you HAVE clflush you do wbinvd. > > yeah I know it's correct but... it reads wonky ;) > > It's the most convenient symbol to test against. I > suppose I should add a comment explaining it. > > > also.. can we move that check into the wbinvd_halt() itself, so that > > the callers don't need to care what is used to select it ? > > irqflags.h doesn't guarantee the presence of boot_cpu_data, > so I wasn't able to make that check cleanly. I could move > the macro definition to process_??.c if that would better. >
it makes sense; it's hardly a hotpath, and making it simple to use correctly is generally best ;)
| |