wimax: Kbuild / rfkill-build / PM fixes (v3)
Subsystems (3)
cover wimax: Kbuild / rfkill-build / PM fixes (v3)
These four patches fix build issues reported by Randy Dunlap on the linux-next tree for Jan 6 and Jan 7:
http://lkml.org/lkml/2009/1/6/340
http://lkml.org/lkml/2009/1/7/360
The issue fixed by patch #3 wasn't reported on the emails but was uncovered while discussing the fixes.
This applies to the wimax tree kept in gregkh's repository:
http://kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-04-usb/
Changes in v3
- Add patch #4, wrapping access to power-saving members of the struct usb_device in #ifdef CONFIG_PM.
Changes in v2
- fixed silly one-char typo #ifndef CONFIG_BUG vs #ifdef CONFIG_BUG reported by Ilpo Järvinen
Inaky Perez-Gonzalez (4):
wimax: fix '#ifndef CONFIG_BUG' layout to avoid warning
wimax: fix kconfig interactions with rfkill and input layers
wimax: testing for rfkill support should also test for
CONFIG_RFKILL_MODULE
i2400m/usb: wrap USB power saving in #ifdef CONFIG_PM
drivers/net/wimax/i2400m/usb.c | 6 ++++++ net/wimax/Kconfig | 14 ++++++++++++++ net/wimax/id-table.c | 8 +++++--- net/wimax/op-rfkill.c | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-)
PATCH 1/4 wimax: fix '#ifndef CONFIG_BUG' layout to avoid warning
Reported by Randy Dunlap:
Quoted 4 lines
Also, this warning needs to be fixed:
linux-next-20090106/net/wimax/id-table.c:133: warning: ISO C90 forbids mixed declarations and code
Move the return on #defined(CONFIG_BUG) below the variable declarations so it doesn't violate ISO C90.
On wimax_id_table_release() we want to do a debug check if CONFIG_BUG is enabled. However, we also want the debug code to be always compiled to ensure there is no bitrot. It will be optimized out by the compiler when CONFIG_BUG is disabled.
Added a note to the function header stating this.
--- net/wimax/id-table.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
net/wimax/id-table.c +5 -3
@@ -123,15 +123,17 @@ void wimax_id_table_rm(struct wimax_dev *wimax_dev)/* * Release the gennetlink family id / mapping table * -* On debug, verify that the table is empty upon removal. +* On debug, verify that the table is empty upon removal. We want the +* code always compiled, to ensure it doesn't bit rot. It will be +* compiled out if CONFIG_BUG is disabled. */ void wimax_id_table_release (void ) { +struct wimax_dev *wimax_dev; +#ifndef CONFIG_BUG return ;#endif -struct wimax_dev *wimax_dev; -spin_lock (&wimax_id_table_lock);list_for_each_entry (wimax_dev, &wimax_id_table, id_table_node) { printk(KERN_ERR "BUG: %s wimax_dev %p ifindex %d not cleared\n",
Signature · 1 line
1.5.6.5
Re: [PATCH 1/4] wimax: fix '#ifndef CONFIG_BUG' layout to avoid warning
From: Inaky Perez-Gonzalez <[email protected]>
Date: Wed, 7 Jan 2009 11:22:19 -0800
Quoted 10 lines
Reported by Randy Dunlap:
Quoted 4 lines
Also, this warning needs to be fixed:
linux-next-20090106/net/wimax/id-table.c:133: warning: ISO C90 forbids mixed declarations and codeMove the return on #defined(CONFIG_BUG) below the variable declarations so it doesn't violate ISO C90.
Quoted 8 lines
On
wimax_id_table_release()we want to do a debug check ifCONFIG_BUGis enabled. However, we also want the debug code to be always compiled to ensure there is no bitrot. It will be optimized out by the compiler whenCONFIG_BUGis disabled.Added a note to the function header stating this.
Signed-off-by Inaky Perez-Gonzalez <[email protected]>
Applied.
PATCH 2/4 wimax: fix kconfig interactions with rfkill and input layers
In reply to Inaky Perez-GonzalezWiMAX can work without RFKILL, but it was missing a check to make sure RFKILL is not being made a module with wimax compiled into the kernel. This caused failed builds in s390, where CONFIG_INPUT is always off.
When RFKILL is enabled, the code uses the input layer to report hardware switch changes; thus, if RFKILL is enabled, INPUT has to be too. It also needs to display some message when INPUT is disabled that explains why WiMAX is not selectable.
(issues found by Randy Dunlap in the linux-next tree).
--- net/wimax/Kconfig | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-)
net/wimax/Kconfig +14 -0
@@ -1,9 +1,23 @@ # # WiMAX LAN device configuration # +# Note the ugly 'depends on' on WIMAX: that disallows RFKILL to be a +# module if WIMAX is to be linked in. The WiMAX code is done in such a +# way that it doesn't require and explicit dependency on RFKILL in +# case an embedded system wants to rip it out. +# +# As well, enablement of the RFKILL code means we need the INPUT layer +# support to inject events coming from hw rfkill switches. That +# dependency could be killed if input.h provided appropiate means to +# work when input is disabled. + +comment "WiMAX Wireless Broadband support requires CONFIG_INPUT enabled" + depends on INPUT = n && RFKILL != n menuconfig WIMAX tristate "WiMAX Wireless Broadband support" + depends on (y && RFKILL != m) || m + depends on (INPUT && RFKILL != n) || RFKILL = n help Select to configure support for devices that provide
Signature · 1 line
1.5.6.5
Re: [PATCH 2/4] wimax: fix kconfig interactions with rfkill and input layers
From: Inaky Perez-Gonzalez <[email protected]>
Date: Wed, 7 Jan 2009 11:22:20 -0800
Quoted 5 lines
WiMAX can work without RFKILL, but it was missing a check to make sure RFKILL is not being made a module with wimax compiled into the kernel. This caused failed builds in s390, where
CONFIG_INPUTis always off.
Quoted 8 lines
When RFKILL is enabled, the code uses the input layer to report hardware switch changes; thus, if RFKILL is enabled, INPUT has to be too. It also needs to display some message when INPUT is disabled that explains why WiMAX is not selectable.
(issues found by Randy Dunlap in the linux-next tree).
Signed-off-by Inaky Perez-Gonzalez <[email protected]>
Applied.
PATCH 3/4 wimax: testing for rfkill support should also test for CONFIG_RFKILL_MODULE
In reply to Inaky Perez-GonzalezCurrent WiMAX rfkill code is missing the case where rfkill is compiled in as modules and works only when rfkill is compiled in. This is not correct. Fixed to test for CONFIG_RFKILL or CONFIG_RKILL_MODULE.
--- net/wimax/op-rfkill.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
net/wimax/op-rfkill.c +1 -1
@@ -71,7 +71,7 @@#define D_SUBMODULE op_rfkill#include "debug-levels.h" -#ifdef CONFIG_RFKILL +#if defined(CONFIG_RFKILL ) || defined(CONFIG_RFKILL_MODULE )/**
Signature · 1 line
1.5.6.5
Re: [PATCH 3/4] wimax: testing for rfkill support should also test for CONFIG_RFKILL_MODULE
From: Inaky Perez-Gonzalez <[email protected]>
Date: Wed, 7 Jan 2009 11:22:21 -0800
Quoted 5 lines
Current WiMAX rfkill code is missing the case where rfkill is compiled in as modules and works only when rfkill is compiled in. This is not correct. Fixed to test for
CONFIG_RFKILLorCONFIG_RKILL_MODULE.Signed-off-by Inaky Perez-Gonzalez <[email protected]>
Applied.
PATCH 4/4 i2400m/usb: wrap USB power saving in #ifdef CONFIG_PM
In reply to Inaky Perez-GonzalezCurrent code was assuming PM was always enabled, which is not correct. Code which accesses members in the struct usb_device that are dependant on CONFIG_PM must be protected the same.
Reported by Randy Dunlap from a build error in the linux-next tree on 07/01/2009.
--- drivers/net/wimax/i2400m/usb.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
drivers/net/wimax/i2400m/usb.c +6 -0
@@ -397,11 +397,13 @@ int i2400mu_probe(struct usb_interface *iface, i2400m->bus_fw_name =I2400MU_FW_FILE_NAME ; i2400m->bus_bm_mac_addr_impaired =0 ; +#ifdef CONFIG_PM iface->needs_remote_wakeup =1 ;/* autosuspend (15s delay) */ device_init_wakeup (dev,1 );usb_autopm_enable (i2400mu->usb_iface); usb_dev->autosuspend_delay =15 *HZ ; usb_dev->autosuspend_disabled =0 ; +#endif result =i2400m_setup (i2400m,I2400M_BRI_MAC_REINIT );if (result <0 ) {
@@ -493,7 +495,9 @@ int i2400mu_suspend(struct usb_interface *iface, pm_message_t pm_msg)int result =0 ;struct device *dev = &iface->dev;struct i2400mu *i2400mu =usb_get_intfdata (iface); +#ifdef CONFIG_PM struct usb_device *usb_dev = i2400mu->usb_dev; +#endif struct i2400m *i2400m = &i2400mu->i2400m;d_fnstart (3 , dev,"(iface %p pm_msg %u)\n" , iface, pm_msg.event);
@@ -503,11 +507,13 @@ int i2400mu_suspend(struct usb_interface *iface, pm_message_t pm_msg)atomic_dec (&i2400mu->do_autopm); result =i2400m_cmd_enter_powersave (i2400m);atomic_inc (&i2400mu->do_autopm); +#ifdef CONFIG_PM if (result <0 && usb_dev->auto_pm ==0 ) {/* System suspend, can't fail */ dev_err (dev,"failed to suspend, will reset on resume\n" ); result =0 ; } +#endif if (result <0 ) goto error_enter_powersave;i2400mu_notification_release (i2400mu);
Signature · 1 line
1.5.6.5
David Miller
maintainerRe: [PATCH 4/4] i2400m/usb: wrap USB power saving in #ifdef CONFIG_PM
From: Inaky Perez-Gonzalez <[email protected]>
Date: Wed, 7 Jan 2009 11:22:22 -0800
Quoted 8 lines
Current code was assuming PM was always enabled, which is not correct. Code which accesses members in the struct
usb_devicethat are dependant onCONFIG_PMmust be protected the same.Reported by Randy Dunlap from a build error in the linux-next tree on 07/01/2009.
Signed-off-by Inaky Perez-Gonzalez <[email protected]>
Also applied, thanks a lot.
Quoted 6 lines · Inaky Perez-Gonzalez
These four patches fix build issues reported by Randy Dunlap on the linux-next tree for Jan 6 and Jan 7:
http://lkml.org/lkml/2009/1/6/340
http://lkml.org/lkml/2009/1/7/360
Quoted 6 lines
The issue fixed by patch #3 wasn't reported on the emails but was uncovered while discussing the fixes.
This applies to the wimax tree kept in gregkh's repository:
http://kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-04-usb/
Ack. They all work for me. Thanks.
Quoted 23 lines
Changes in v3
- Add patch #4, wrapping access to power-saving members of the struct
usb_devicein #ifdefCONFIG_PM.Changes in v2
- fixed silly one-char typo #ifndef
CONFIG_BUGvs #ifdefCONFIG_BUGreported by Ilpo JärvinenInaky Perez-Gonzalez (4):
wimax: fix '#ifndefCONFIG_BUG' layout to avoid warning
wimax: fix kconfig interactions with rfkill and input layers
wimax: testing for rfkill support should also test for
CONFIG_RFKILL_MODULE
i2400m/usb: wrap USB power saving in #ifdefCONFIG_PMdrivers/net/wimax/i2400m/usb.c | 6 ++++++ net/wimax/Kconfig | 14 ++++++++++++++ net/wimax/id-table.c | 8 +++++--- net/wimax/op-rfkill.c | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-)
Signature · 1 line
~Randy