On 02/28/14 23:44, Florian Fainelli wrote:
2014-02-28 14:33 GMT-08:00 Arend van Spriel<[email protected]>:
On 02/28/2014 11:26 PM, Florian Fainelli wrote:
2014-02-28 14:22 GMT-08:00 Arend van Spriel<[email protected]>:
On 02/28/2014 11:15 PM, kbuild test robot wrote:
tree:
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next.git master
head: 3e3831c4fdc53aabf3a56419ef6d96a841c52435
commit: c98db0bec72ac7ef127119c1ed962d6f56802b12 [169/199] brcmfmac: Use atomic
functions for intstatus update.
config: make ARCH=ia64 allmodconfig
All error/warnings:
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c: In function
'brcmf_sdio_intr_rstatus':
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c:2469:3: error: implicit
declaration of function 'atomic_set_mask'
[-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
Hi Fengguang,
So atomic_set_mask() is not a generally available function. I thought
that if the arch does not provide it, the asm-generic implementation is
used.
Though so as well.
Also it seems the function prototype is not the same for all
archs. :-(
This does not sound like it is expected, and this might need fixing,
do you want to tackle this?
I got email m68k and ia64 failing. Some implementations are in assembly.
It has been (counting...) over 20 years since I did some baby steps in
m68k assembly and do not really feel a strong pull to that dark side.
This is supposed to be a generic function that everyone should be able
to use without knowing the underlying details. Not quite sure why
those two architectures are different, maybe we should ask Geert and
Tony about this?
I was about to when I decided to do some more digging. So taking a
closer look at include/asm-generic/atomic.h revealed this:
/*
* Generic C implementation of atomic counter operations. Usable on
* UP systems only. Do not include in machine independent code.
And further down:
#ifdef CONFIG_SMP
/* Force people to define core atomics */
# if !defined(atomic_add_return) || !defined(atomic_sub_return) || \
!defined(atomic_clear_mask) || !defined(atomic_set_mask)
# error "SMP requires a little arch-specific magic"
# endif
#endif
So in these SMP era architecture specific implementations seem required.
IA64 does not provide it (so CONFIG_SMP not supported?) and m68k has
different prototype. Apparently, the comment /* Force people to define
core atomics */ did not fly for all archs (yet) :-p.
Regards,
Arend
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/