Re: linux-next: build failure after merge of the final tree (staging related)
From: Greg KH <hidden>
Date: 2011-06-09 19:05:17
Also in:
lkml
On Thu, Jun 09, 2011 at 05:27:45PM +1000, Stephen Rothwell wrote:
Hi Greg, After merging the final tree, today's linux-next build (powerpc allyesconfig) failed like this: drivers/staging/brcm80211/brcmsmac/ampdu.c: In function 'wlc_ampdu_dotxstatus': drivers/staging/brcm80211/brcmsmac/ampdu.c:840:17: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') drivers/staging/brcm80211/brcmsmac/ampdu.c:840:17: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') drivers/staging/brcm80211/brcmsmac/ampdu.c:848:8: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') drivers/staging/brcm80211/brcmsmac/ampdu.c:848:8: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c: In function 'wlc_bmac_update_slot_timing': drivers/staging/brcm80211/brcmsmac/bmac.c:186:3: error: invalid operands to binary ^ (have 'volatile u16 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c:186:3: error: invalid operands to binary ^ (have 'volatile u16 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c:190:3: error: invalid operands to binary ^ (have 'volatile u16 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c:190:3: error: invalid operands to binary ^ (have 'volatile u16 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c: In function 'wlc_setband_inact': drivers/staging/brcm80211/brcmsmac/bmac.c:234:2: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c:234:2: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') drivers/staging/brcm80211/brcmsmac/bmac.c: In function 'wlc_dpc': drivers/staging/brcm80211/brcmsmac/bmac.c:311:6: error: invalid operands to binary ^ (have 'volatile u32 *' and 'int') (and lots more)
Fun :(
This looks messy. It's a macro that is trying to be cute by doing:
#define R_REG(r) \
({ \
__typeof(*(r)) __osl_v; \
__asm__ __volatile__("sync"); \
__osl_v = bcmsdh_reg_read(NULL, (unsigned long)(r),\
sizeof(*(r))); \
__asm__ __volatile__("sync"); \
__osl_v; \
})
on big-endian, non-mips platforms. Which I really doubt has ever
been tested before.
Roland, Brett, any thoughts?
Should I just disable this module from being build on PPC as it doesn't
look like its ever been tested or run on that platform before.
Also in several other files in drivers/staging/brcm80211/ Also: drivers/staging/comedi/drivers.c: In function 'comedi_buf_alloc': drivers/staging/comedi/drivers.c:505:37: error: 'PAGE_KERNEL_NOCACHE' undeclared (first use in this function) In file included from drivers/staging/comedi/drivers/addi_apci_035.c:7:0: drivers/staging/comedi/drivers/addi-data/addi_common.c: In function 'i_ADDI_Attach': drivers/staging/comedi/drivers/addi-data/addi_common.c:2765:7: error: implicit declaration of function 'virt_to_bus' (Also several other occurrences of that one)
I'll fix this up, it looks just like a #include that needs to be added. thanks, greg k-h