From 98ff86e37d1d1c3ebcaa124dfa9a900eb0e1fa77 Mon Sep 17 00:00:00 2001 From: Roland Vossen Date: Mon, 8 Aug 2011 15:58:22 +0200 Subject: [PATCH] staging: brcm80211: fixed build issue for big endian platforms Driver now builds for big endian mips platform, possibly also for other big endian platforms. A change was made to the R_REG and W_REG macro's. These macro's perform an xor (^) operation for endianess swap purposes. Gcc complained because an xor operation is not allowed on a pointer type. Fixed this by casting the pointer to an unsigned long. Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Greg Kroah-Hartman --- drivers/staging/brcm80211/brcmsmac/dma.h | 1 + drivers/staging/brcm80211/brcmsmac/types.h | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/staging/brcm80211/brcmsmac/dma.h b/drivers/staging/brcm80211/brcmsmac/dma.h index 3ff109fa3e7..334f2eb3036 100644 --- a/drivers/staging/brcm80211/brcmsmac/dma.h +++ b/drivers/staging/brcm80211/brcmsmac/dma.h @@ -17,6 +17,7 @@ #ifndef _BRCM_DMA_H_ #define _BRCM_DMA_H_ +#include #include "types.h" /* forward structure declarations */ /* DMA structure: diff --git a/drivers/staging/brcm80211/brcmsmac/types.h b/drivers/staging/brcm80211/brcmsmac/types.h index e0880a01fab..ab97718ea47 100644 --- a/drivers/staging/brcm80211/brcmsmac/types.h +++ b/drivers/staging/brcm80211/brcmsmac/types.h @@ -305,11 +305,11 @@ do { \ switch (sizeof(*(r))) { \ case sizeof(u8): \ __osl_v = \ - readb((u8 *)((r)^3)); \ + readb((u8 *)((unsigned long)(r)^3)); \ break; \ case sizeof(u16): \ __osl_v = \ - readw((u16 *)((r)^2)); \ + readw((u16 *)((unsigned long)(r)^2)); \ break; \ case sizeof(u32): \ __osl_v = readl((u32 *)(r)); \ @@ -322,10 +322,10 @@ do { \ switch (sizeof(*(r))) { \ case sizeof(u8): \ writeb((u8)(v), \ - (u8 *)((r)^3)); break; \ + (u8 *)((unsigned long)(r)^3)); break; \ case sizeof(u16): \ writew((u16)(v), \ - (u16 *)((r)^2)); break; \ + (u16 *)((unsigned long)(r)^2)); break; \ case sizeof(u32): \ writel((u32)(v), \ (u32 *)(r)); break; \ -- 2.46.0