lkml.org 
[lkml]   [2011]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: brcm80211 build busted on big-endian
On Tue, Jun 21, 2011 at 07:36:41PM -0700, David Miller wrote:
>
> It tries to do "xor" operations on pointers because of how the
> R_REG() and W_REG() macros are defined.
>
> ====================
> #define R_REG(r) (\
> SELECT_BUS_READ( \
> ({ \
> __typeof(*(r)) __osl_v; \
> switch (sizeof(*(r))) { \
> case sizeof(u8): \
> __osl_v = \
> readb((volatile u8*)((r)^3)); \
> break; \
> case sizeof(u16): \
> __osl_v = \
> readw((volatile u16*)((r)^2)); \
> break; \
> case sizeof(u32): \
> __osl_v = readl((volatile u32*)(r)); \
> break; \
> } \
> __osl_v; \
> }), \
> OSL_READ_REG(r)) \
> )
> ====================
>
> This driver is a crap fest of volatile pointers and not-compile-tested
> code.

For big endian, I agree, which is why I thought I fixed this up so it
wouldn't build on other arches than MIPS for the moment.

Is this blowing up in -next or in Linus's tree right now?

thanks,

greg k-h


\
 
 \ /
  Last update: 2011-06-22 17:43    [W:1.538 / U:2.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site