projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1a67a57
)
sh: Fix cached/uncaced address calculation in 29bit mode
author
Nobuhiro Iwamatsu
<
[email protected]
>
Fri, 4 Nov 2011 13:13:50 +0000
(22:13 +0900)
committer
Paul Mundt
<
[email protected]
>
Fri, 4 Nov 2011 13:13:50 +0000
(22:13 +0900)
In the case of 29bit mode, CAC/UNCAC_ADDR does not return a right address.
This revises this problem by using P1SEGADDR and P2SEGADDR in 29bit mode.
Reported-by: Yutaro Ebihara <
[email protected]
>
Signed-off-by: Nobuhiro Iwamatsu <
[email protected]
>
Tested-by: Kuninori Morimoto <
[email protected]
>
Tested-by: Simon Horman <
[email protected]
>
Cc:
[email protected]
Signed-off-by: Paul Mundt <
[email protected]
>
arch/sh/include/asm/page.h
patch
|
blob
|
history
diff --git
a/arch/sh/include/asm/page.h
b/arch/sh/include/asm/page.h
index 0dca9a5c6be6f91b9a800b2f9bcca7fcf1f6e1fe..15d970328f717c929d25287a09b14af181e23d9c 100644
(file)
--- a/
arch/sh/include/asm/page.h
+++ b/
arch/sh/include/asm/page.h
@@
-151,8
+151,13
@@
typedef struct page *pgtable_t;
#endif /* !__ASSEMBLY__ */
#ifdef CONFIG_UNCACHED_MAPPING
+#if defined(CONFIG_29BIT)
+#define UNCAC_ADDR(addr) P2SEGADDR(addr)
+#define CAC_ADDR(addr) P1SEGADDR(addr)
+#else
#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + uncached_start)
#define CAC_ADDR(addr) ((addr) - uncached_start + PAGE_OFFSET)
+#endif
#else
#define UNCAC_ADDR(addr) ((addr))
#define CAC_ADDR(addr) ((addr))