diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-05-18 20:46:03 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-05-25 08:24:13 -0400 |
commit | 7a7a430f7498cd55820232d8e3f144161138f91a (patch) | |
tree | 891b1bf4f9df8d7a165cae1fc5707c569251673e /arch/blackfin/include/asm | |
parent | 934fe05bf0c743896b478fe3558a282911cfe621 (diff) |
Blackfin: fix addr type with bfin_write_{or,and} helpers
Since the bfin_write() func needs proper type information in order to
expand into the right bfin_writeX() variant, preserve the addr's type
when setting up the local __addr. Otherwise the helpers will detect
the variant based upon sizeof(void) which is almost never right.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/include/asm')
-rw-r--r-- | arch/blackfin/include/asm/def_LPBlackfin.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/blackfin/include/asm/def_LPBlackfin.h b/arch/blackfin/include/asm/def_LPBlackfin.h index 6bc2db60712f..823679011457 100644 --- a/arch/blackfin/include/asm/def_LPBlackfin.h +++ b/arch/blackfin/include/asm/def_LPBlackfin.h | |||
@@ -69,13 +69,13 @@ do { \ | |||
69 | 69 | ||
70 | #define bfin_write_or(addr, bits) \ | 70 | #define bfin_write_or(addr, bits) \ |
71 | do { \ | 71 | do { \ |
72 | void *__addr = (void *)(addr); \ | 72 | typeof(addr) __addr = (addr); \ |
73 | bfin_write(__addr, bfin_read(__addr) | (bits)); \ | 73 | bfin_write(__addr, bfin_read(__addr) | (bits)); \ |
74 | } while (0) | 74 | } while (0) |
75 | 75 | ||
76 | #define bfin_write_and(addr, bits) \ | 76 | #define bfin_write_and(addr, bits) \ |
77 | do { \ | 77 | do { \ |
78 | void *__addr = (void *)(addr); \ | 78 | typeof(addr) __addr = (addr); \ |
79 | bfin_write(__addr, bfin_read(__addr) & (bits)); \ | 79 | bfin_write(__addr, bfin_read(__addr) & (bits)); \ |
80 | } while (0) | 80 | } while (0) |
81 | 81 | ||