Skip to contentSkip to conversation

rtl8188ee: fix build break due to missing rtl_hal_pwrseqcmdparsing definition

PATCH Applied Jeff Layton 3 participants 5 messages Mar 14, 2015 – Mar 20, 2015 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 rtl8188ee: fix build break due to missing rtl_hal_pwrseqcmdparsing definition

I've been getting this error when building mainline kernels using Fedora's config files:

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed

I'm not sure if this is the correct fix, but it does seem to allow the build to complete. I suspect that this was broken by commit 34ed780a6afc (rtlwifi: Fix problems with building an allyesconfig). Most of the files that removed the include of pwrseqcmd.h, added one for ../pwrseqcmd.h. The rtl8188ee driver had it removed it but didn't add the include of the file in the parent directory.

---
 drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 1 +
 1 file changed, 1 insertion(+)
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c +1 -0
index f2b9713c456e..e6fae1b5c211 100644
@@ -30,6 +30,7 @@
 #include "../cam.h"
 #include "../ps.h"
 #include "../pci.h"
+#include "../pwrseqcmd.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
Signature · 1 line
2.1.0
Acked-by on v1 1/1
#1 lore raw
Quoted 17 lines · Jeff Layton

I've been getting this error when building mainline kernels using Fedora's config files:

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed

I'm not sure if this is the correct fix, but it does seem to allow the build to complete. I suspect that this was broken by commit 34ed780a6afc (rtlwifi: Fix problems with building an allyesconfig). Most of the files that removed the include of pwrseqcmd.h, added one for ../pwrseqcmd.h. The rtl8188ee driver had it removed it but didn't add the include of the file in the parent directory.

Quoted 4 lines
---
  drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 1 +
  1 file changed, 1 insertion(+)

This fix is certainly OK. What I do not understand is why neither I nor the build testing computers see the problem. Does this show for all architectures? I have only built this driver for x86_64.

Thanks,

Larry

Quoted 14 lines
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c +1 -0
index f2b9713c456e..e6fae1b5c211 100644
@@ -30,6 +30,7 @@
  #include "../cam.h"
  #include "../ps.h"
  #include "../pci.h"
+#include "../pwrseqcmd.h"
  #include "reg.h"
  #include "def.h"
  #include "phy.h"
#2 lore raw
Quoted 34 lines · On Sat, 14 Mar 2015 11:29:00 -0500 Larry Finger <[email protected]>…
Quoted 17 lines · Jeff Layton

I've been getting this error when building mainline kernels using Fedora's config files:

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed

I'm not sure if this is the correct fix, but it does seem to allow the build to complete. I suspect that this was broken by commit 34ed780a6afc (rtlwifi: Fix problems with building an allyesconfig). Most of the files that removed the include of pwrseqcmd.h, added one for ../pwrseqcmd.h. The rtl8188ee driver had it removed it but didn't add the include of the file in the parent directory.

Quoted 4 lines
---
  drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 1 +
  1 file changed, 1 insertion(+)

This fix is certainly OK. What I do not understand is why neither I nor the build testing computers see the problem. Does this show for all architectures? I have only built this driver for x86_64.

Thanks,

Larry

Quoted 1 line
Quoted 14 lines

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c line 36

Quoted 13 lines
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c +1 -0
index f2b9713c456e..e6fae1b5c211 100644
@@ -30,6 +30,7 @@
  #include "../cam.h"
  #include "../ps.h"
  #include "../pci.h"
+#include "../pwrseqcmd.h"
  #include "reg.h"
  #include "def.h"
  #include "phy.h"

I'm a little baffled too as to why it's failing for me. At first I had assumed that it was temporary breakage, but I've been seeing this fail to build for a while now (at least a few months). I'm also building on x86_64 (Fedora 21, fwiw).

Here's a verbose build output of that file without this patch. Maybe you can spot some difference? It's possible I have something configured wrong, but everything else seems to build just fine...

[jlayton@tlielax linux]$ make M=drivers/net/wireless/rtlwifi/rtl8188ee -j4 V=1
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
mkdir -p drivers/net/wireless/rtlwifi/rtl8188ee/.tmp_versions ; rm -f drivers/net/wireless/rtlwifi/rtl8188ee/.tmp_versions/*
make -f ./scripts/Makefile.build obj=drivers/net/wireless/rtlwifi/rtl8188ee
gcc -Wp,-MD,drivers/net/wireless/rtlwifi/rtl8188ee/.hw.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -m64 -mno-80387 -mno-fp-ret-in-387 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -Idrivers/net/wireless/rtlwifi -D__CHECK_ENDIAN__ -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hw)" -D"KBUILD_MODNAME=KBUILD_STR(rtl8188ee)" -c -o drivers/net/wireless/rtlwifi/rtl8188ee/hw.o drivers/net/wireless/rtlwifi/rtl8188ee/hw.c
(cat /dev/null; echo kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko;) > drivers/net/wireless/rtlwifi/rtl8188ee/modules.order
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed
make[1]: *** [drivers/net/wireless/rtlwifi/rtl8188ee/hw.o] Error 1
Makefile:1390: recipe for target '_module_drivers/net/wireless/rtlwifi/rtl8188ee' failed
make: *** [_module_drivers/net/wireless/rtlwifi/rtl8188ee] Error 2

Signature · 1 line
Jeff Layton <[email protected]>
#3 lore raw
Quoted 61 lines · Jeff Layton
Quoted 34 lines · On Sat, 14 Mar 2015 11:29:00 -0500 Larry Finger <[email protected]>…
Quoted 17 lines · Jeff Layton

I've been getting this error when building mainline kernels using Fedora's config files:

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed

I'm not sure if this is the correct fix, but it does seem to allow the build to complete. I suspect that this was broken by commit 34ed780a6afc (rtlwifi: Fix problems with building an allyesconfig). Most of the files that removed the include of pwrseqcmd.h, added one for ../pwrseqcmd.h. The rtl8188ee driver had it removed it but didn't add the include of the file in the parent directory.

Quoted 4 lines
---
   drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 1 +
   1 file changed, 1 insertion(+)

This fix is certainly OK. What I do not understand is why neither I nor the build testing computers see the problem. Does this show for all architectures? I have only built this driver for x86_64.

Thanks,

Larry

Quoted 1 line
Quoted 14 lines

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c line 36

Quoted 13 lines
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c +1 -0
index f2b9713c456e..e6fae1b5c211 100644
@@ -30,6 +30,7 @@
   #include "../cam.h"
   #include "../ps.h"
   #include "../pci.h"
+#include "../pwrseqcmd.h"
   #include "reg.h"
   #include "def.h"
   #include "phy.h"

I'm a little baffled too as to why it's failing for me. At first I had assumed that it was temporary breakage, but I've been seeing this fail to build for a while now (at least a few months). I'm also building on x86_64 (Fedora 21, fwiw).

Here's a verbose build output of that file without this patch. Maybe you can spot some difference? It's possible I have something configured wrong, but everything else seems to build just fine...

Quoted 11 lines

[jlayton@tlielax linux]$ make M=drivers/net/wireless/rtlwifi/rtl8188ee -j4 V=1
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
mkdir -p drivers/net/wireless/rtlwifi/rtl8188ee/.tmp_versions ; rm -f drivers/net/wireless/rtlwifi/rtl8188ee/.tmp_versions/*
make -f ./scripts/Makefile.build obj=drivers/net/wireless/rtlwifi/rtl8188ee
gcc -Wp,-MD,drivers/net/wireless/rtlwifi/rtl8188ee/.hw.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -m64 -mno-80387 -mno-fp-ret-in-387 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0

-Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -Idrivers/net/wireless/rtlwifi -D__CHECK_ENDIAN__ -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hw)" -D"KBUILD_MODNAME=KBUILD_STR(rtl8188ee)" -c -o drivers/net/wireless/rtlwifi/rtl8188ee/hw.o drivers/net/wireless/rtlwifi/rtl8188ee/hw.c

Quoted 10 lines

(cat /dev/null; echo kernel/drivers/net/wireless/rtlwifi/rtl8188ee/rtl8188ee.ko;) > drivers/net/wireless/rtlwifi/rtl8188ee/modules.order
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed
make[1]: *** [drivers/net/wireless/rtlwifi/rtl8188ee/hw.o] Error 1
Makefile:1390: recipe for target '_module_drivers/net/wireless/rtlwifi/rtl8188ee' failed
make: *** [_module_drivers/net/wireless/rtlwifi/rtl8188ee] Error 2

I compiled that file using the same command. The only difference in the gcc line is your system uses "-fstack-protector-strong", and mine uses "-fno-stack-protector". I think that is caused by a different setting for CONFIG_CC_STACKPROTECTOR, and is not significant.

I do not see anything that you have wrong. Certainly, the patch is needed.

Larry

Applied
#4 lore raw

Re: rtl8188ee: fix build break due to missing rtl_hal_pwrseqcmdparsingdefinition

In reply to Jeff Layton
Quoted 18 lines

I've been getting this error when building mainline kernels using Fedora's config files:

drivers/net/wireless/rtlwifi/rtl8188ee/hw.c: In function ‘_rtl88ee_init_mac’:
drivers/net/wireless/rtlwifi/rtl8188ee/hw.c:853:2: error: implicit declaration of function ‘rtl_hal_pwrseqcmdparsing’ [-Werror=implicit-function-declaration]
if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK,
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target 'drivers/net/wireless/rtlwifi/rtl8188ee/hw.o' failed

I'm not sure if this is the correct fix, but it does seem to allow the build to complete. I suspect that this was broken by commit 34ed780a6afc (rtlwifi: Fix problems with building an allyesconfig). Most of the files that removed the include of pwrseqcmd.h, added one for ../pwrseqcmd.h. The rtl8188ee driver had it removed it but didn't add the include of the file in the parent directory.

Quoted 2 lines

Thanks, applied to wireless-drivers-next.git.

Kalle Valo