forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PARISC] Untangle <asm/processor.h> header include mess
asm/processor.h on parisc wants spinlocks for cpuinfo, but linux/spinlock_types.h needs lockdep, and lockdep wants prefetch. This leads to a horrible circular dependancy, because <asm/processor.h> is including something which depends on things which are not defined until the end of the file. Kludge around this by moving prefetch related code into <asm/prefetch.h> and including it before <linux/spinlock_types.h>, however this is just a temporary solution until this mess can be cleaned up. Signed-off-by: Kyle McMartin <[email protected]>
- Loading branch information
Kyle McMartin
authored and
Matthew Wilcox
committed
Oct 4, 2006
1 parent
78b656b
commit 4068d93
Showing
2 changed files
with
38 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/* | ||
* include/asm-parisc/prefetch.h | ||
* | ||
* PA 2.0 defines data prefetch instructions on page 6-11 of the Kane book. | ||
* In addition, many implementations do hardware prefetching of both | ||
* instructions and data. | ||
* | ||
* PA7300LC (page 14-4 of the ERS) also implements prefetching by a load | ||
* to gr0 but not in a way that Linux can use. If the load would cause an | ||
* interruption (eg due to prefetching 0), it is suppressed on PA2.0 | ||
* processors, but not on 7300LC. | ||
* | ||
*/ | ||
|
||
#ifndef __ASM_PARISC_PREFETCH_H | ||
#define __ASM_PARISC_PREFETCH_H | ||
|
||
#ifndef __ASSEMBLY__ | ||
#ifdef CONFIG_PREFETCH | ||
|
||
#define ARCH_HAS_PREFETCH | ||
extern inline void prefetch(const void *addr) | ||
{ | ||
__asm__("ldw 0(%0), %%r0" : : "r" (addr)); | ||
} | ||
|
||
#define ARCH_HAS_PREFETCHW | ||
extern inline void prefetchw(const void *addr) | ||
{ | ||
__asm__("ldd 0(%0), %%r0" : : "r" (addr)); | ||
} | ||
|
||
#endif /* CONFIG_PREFETCH */ | ||
#endif /* __ASSEMBLY__ */ | ||
|
||
#endif /* __ASM_PARISC_PROCESSOR_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters