Re: [PATCH] net: b43legacy: fix compile error
From: John W. Linville <hidden>
Date: 2010-11-11 17:14:59
Also in:
linux-wireless, lkml
On Thu, Nov 11, 2010 at 11:06:32AM -0600, Larry Finger wrote:
On 11/11/2010 10:35 AM, John W. Linville wrote:quoted
On Mon, Oct 25, 2010 at 10:13:06PM +0200, Arnd Hannemann wrote:quoted
Am 25.10.2010 20:59, schrieb Larry Finger:quoted
On 10/25/2010 01:44 PM, Arnd Hannemann wrote:quoted
Am 25.10.2010 20:36, schrieb Larry Finger:quoted
On 10/25/2010 01:26 PM, Arnd Hannemann wrote:quoted
Am 25.10.2010 17:32, schrieb Larry Finger:quoted
On 10/25/2010 09:41 AM, Arnd Hannemann wrote:quoted
On todays linus tree the following compile error happened to me: CC [M] drivers/net/wireless/b43legacy/xmit.o In file included from include/net/dst.h:11, from drivers/net/wireless/b43legacy/xmit.c:31: include/net/dst_ops.h:28: error: expected ':', ',', ';', '}' or '__attribute__' before '____cacheline_aligned_in_smp' include/net/dst_ops.h: In function 'dst_entries_get_fast': include/net/dst_ops.h:33: error: 'struct dst_ops' has no member named 'pcpuc_entries' include/net/dst_ops.h: In function 'dst_entries_get_slow': include/net/dst_ops.h:41: error: 'struct dst_ops' has no member named 'pcpuc_entries' include/net/dst_ops.h: In function 'dst_entries_add': include/net/dst_ops.h:49: error: 'struct dst_ops' has no member named 'pcpuc_entries' include/net/dst_ops.h: In function 'dst_entries_init': include/net/dst_ops.h:55: error: 'struct dst_ops' has no member named 'pcpuc_entries' include/net/dst_ops.h: In function 'dst_entries_destroy': include/net/dst_ops.h:60: error: 'struct dst_ops' has no member named 'pcpuc_entries' make[4]: *** [drivers/net/wireless/b43legacy/xmit.o] Error 1 make[3]: *** [drivers/net/wireless/b43legacy] Error 2 make[2]: *** [drivers/net/wireless] Error 2 make[1]: *** [drivers/net] Error 2 make: *** [drivers] Error 2 This patch fixes this issue by adding "linux/cache.h" as an include to "include/net/dst_ops.h".Strange. Compiling b43legacy from the linux-2.6.git tree (git describe is v2.6.36-4464-g229aebb) works fine on x86_64. I wonder what is different.Exactly the same git describe here. Maybe your arch includes cache.h already, in my case its a compile for ARM (shmobile).That probably makes the difference. Using Eric's fix that removes the #include <linux/dst.h> should be better. Does it work for you? There are probably a lot more of the system includes that may not be needed. If I send you a patch removing them, could you test?As it turns out my card is not supported by b43legacy, but compilation testing, sure I can test that.If it is a Broadcom card, it is likely handled by b43.Yes. It seems it should work with b43 (its an SDIO card) and it almost does...quoted
Attached is a trial removal of a number of include statements. Does it compile?Nope: NSTALL_MOD_PATH=/home/arnd/projekte/renesas-2/nfs modules CHK include/linux/version.h CHK include/generated/utsrelease.h make[1]: `include/generated/mach-types.h' is up to date. CALL scripts/checksyscalls.sh CC [M] drivers/net/wireless/b43legacy/main.o drivers/net/wireless/b43legacy/main.c: In function 'b43legacy_upload_microcode': drivers/net/wireless/b43legacy/main.c:1688: error: implicit declaration of function 'signal_pending' make[4]: *** [drivers/net/wireless/b43legacy/main.o] Error 1 make[3]: *** [drivers/net/wireless/b43legacy] Error 2 make[2]: *** [drivers/net/wireless] Error 2 make[1]: *** [drivers/net] Error 2 make: *** [drivers] Error 2Is this issue resolved? Should I be expecting a b43 patch?I don't know if a similar patch for b43 is needed. I tried to set up a cross compiler for ARM. My initial attempt failed and I did not have time to explore the situation. If anyone has links to a cross-compiler solution for x86_64 on openSUSE, please let me know.
Sorry, I mean b43legacy -- will there be a formal patch? -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready.