linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] rfkill: remove user_claim stuff
@ 2009-03-27 13:14 Johannes Berg
  2009-03-27 13:39 ` Michael Buesch
  0 siblings, 1 reply; 2+ messages in thread
From: Johannes Berg @ 2009-03-27 13:14 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless@vger.kernel.org

Almost all drivers do not support user_claim, so remove it
completely and always report -EOPNOTSUPP to userspace. Since
userspace cannot really drive rfkill _anyway_ (due to the
odd restrictions imposed by the documentation) having this
code is just pointless.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
 Documentation/rfkill.txt                  |   16 ++++------
 drivers/net/wireless/ath9k/main.c         |    1 
 drivers/net/wireless/b43/rfkill.c         |    1 
 drivers/net/wireless/b43legacy/rfkill.c   |    1 
 drivers/net/wireless/iwlwifi/iwl-rfkill.c |    1 
 drivers/platform/x86/acer-wmi.c           |    1 
 drivers/platform/x86/hp-wmi.c             |    3 --
 drivers/platform/x86/toshiba_acpi.c       |    1 
 include/linux/rfkill.h                    |    6 ----
 net/rfkill/rfkill.c                       |   45 ++----------------------------
 net/wimax/op-rfkill.c                     |    1 
 11 files changed, 9 insertions(+), 68 deletions(-)

--- wireless-testing.orig/include/linux/rfkill.h	2009-03-27 14:09:02.000000000 +0100
+++ wireless-testing/include/linux/rfkill.h	2009-03-27 14:10:50.000000000 +0100
@@ -58,9 +58,6 @@ enum rfkill_state {
  * @type: Radio type which the button controls, the value stored
  *	here should be a value from enum rfkill_type.
  * @state: State of the switch, "UNBLOCKED" means radio can operate.
- * @user_claim_unsupported: Whether the hardware supports exclusive
- *	RF-kill control by userspace. Set this before registering.
- * @user_claim: Set when the switch is controlled exlusively by userspace.
  * @mutex: Guards switch state transitions.  It serializes callbacks
  *	and also protects the state.
  * @data: Pointer to the RF button drivers private data which will be
@@ -83,9 +80,6 @@ struct rfkill {
 	const char *name;
 	enum rfkill_type type;
 
-	bool user_claim_unsupported;
-	bool user_claim;
-
 	/* the mutex serializes callbacks and also protects
 	 * the state */
 	struct mutex mutex;
--- wireless-testing.orig/net/rfkill/rfkill.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/net/rfkill/rfkill.c	2009-03-27 14:10:50.000000000 +0100
@@ -200,7 +200,7 @@ static void __rfkill_switch_all(const en
 
 	rfkill_global_states[type].current_state = state;
 	list_for_each_entry(rfkill, &rfkill_list, node) {
-		if ((!rfkill->user_claim) && (rfkill->type == type)) {
+		if (rfkill->type == type) {
 			mutex_lock(&rfkill->mutex);
 			rfkill_toggle_radio(rfkill, state, 0);
 			mutex_unlock(&rfkill->mutex);
@@ -447,53 +447,14 @@ static ssize_t rfkill_claim_show(struct 
 				 struct device_attribute *attr,
 				 char *buf)
 {
-	struct rfkill *rfkill = to_rfkill(dev);
-
-	return sprintf(buf, "%d\n", rfkill->user_claim);
+	return sprintf(buf, "%d\n", 0);
 }
 
 static ssize_t rfkill_claim_store(struct device *dev,
 				  struct device_attribute *attr,
 				  const char *buf, size_t count)
 {
-	struct rfkill *rfkill = to_rfkill(dev);
-	unsigned long claim_tmp;
-	bool claim;
-	int error;
-
-	if (!capable(CAP_NET_ADMIN))
-		return -EPERM;
-
-	if (rfkill->user_claim_unsupported)
-		return -EOPNOTSUPP;
-
-	error = strict_strtoul(buf, 0, &claim_tmp);
-	if (error)
-		return error;
-	claim = !!claim_tmp;
-
-	/*
-	 * Take the global lock to make sure the kernel is not in
-	 * the middle of rfkill_switch_all
-	 */
-	error = mutex_lock_killable(&rfkill_global_mutex);
-	if (error)
-		return error;
-
-	if (rfkill->user_claim != claim) {
-		if (!claim && !rfkill_epo_lock_active) {
-			mutex_lock(&rfkill->mutex);
-			rfkill_toggle_radio(rfkill,
-					rfkill_global_states[rfkill->type].current_state,
-					0);
-			mutex_unlock(&rfkill->mutex);
-		}
-		rfkill->user_claim = claim;
-	}
-
-	mutex_unlock(&rfkill_global_mutex);
-
-	return error ? error : count;
+	return -EOPNOTSUPP;
 }
 
 static struct device_attribute rfkill_dev_attrs[] = {
--- wireless-testing.orig/Documentation/rfkill.txt	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/Documentation/rfkill.txt	2009-03-27 14:10:50.000000000 +0100
@@ -521,16 +521,12 @@ status of the system.
 Input devices may issue events that are related to rfkill.  These are the
 various KEY_* events and SW_* events supported by rfkill-input.c.
 
-******IMPORTANT******
-When rfkill-input is ACTIVE, userspace is NOT TO CHANGE THE STATE OF AN RFKILL
-SWITCH IN RESPONSE TO AN INPUT EVENT also handled by rfkill-input, unless it
-has set to true the user_claim attribute for that particular switch.  This rule
-is *absolute*; do NOT violate it.
-******IMPORTANT******
-
-Userspace must not assume it is the only source of control for rfkill switches.
-Their state CAN and WILL change due to firmware actions, direct user actions,
-and the rfkill-input EPO override for *_RFKILL_ALL.
+Userspace may not change the state of an rfkill switch in response to an
+input event, it should refrain from changing states entirely.
+
+Userspace cannot assume it is the only source of control for rfkill switches.
+Their state can change due to firmware actions, direct user actions, and the
+rfkill-input EPO override for *_RFKILL_ALL.
 
 When rfkill-input is not active, userspace must initiate a rfkill status
 change by writing to the "state" attribute in order for anything to happen.
--- wireless-testing.orig/drivers/net/wireless/ath9k/main.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/net/wireless/ath9k/main.c	2009-03-27 14:10:50.000000000 +0100
@@ -1267,7 +1267,6 @@ static int ath_init_sw_rfkill(struct ath
 	sc->rf_kill.rfkill->data = sc;
 	sc->rf_kill.rfkill->toggle_radio = ath_sw_toggle_radio;
 	sc->rf_kill.rfkill->state = RFKILL_STATE_UNBLOCKED;
-	sc->rf_kill.rfkill->user_claim_unsupported = 1;
 
 	return 0;
 }
--- wireless-testing.orig/drivers/net/wireless/b43/rfkill.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/rfkill.c	2009-03-27 14:10:50.000000000 +0100
@@ -139,7 +139,6 @@ void b43_rfkill_init(struct b43_wldev *d
 	rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
 	rfk->rfkill->data = dev;
 	rfk->rfkill->toggle_radio = b43_rfkill_soft_toggle;
-	rfk->rfkill->user_claim_unsupported = 1;
 
 	rfk->poll_dev = input_allocate_polled_device();
 	if (!rfk->poll_dev) {
--- wireless-testing.orig/drivers/net/wireless/b43legacy/rfkill.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43legacy/rfkill.c	2009-03-27 14:10:50.000000000 +0100
@@ -142,7 +142,6 @@ void b43legacy_rfkill_init(struct b43leg
 	rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
 	rfk->rfkill->data = dev;
 	rfk->rfkill->toggle_radio = b43legacy_rfkill_soft_toggle;
-	rfk->rfkill->user_claim_unsupported = 1;
 
 	rfk->poll_dev = input_allocate_polled_device();
 	if (!rfk->poll_dev) {
--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-rfkill.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-rfkill.c	2009-03-27 14:10:50.000000000 +0100
@@ -91,7 +91,6 @@ int iwl_rfkill_init(struct iwl_priv *pri
 	priv->rfkill->data = priv;
 	priv->rfkill->state = RFKILL_STATE_UNBLOCKED;
 	priv->rfkill->toggle_radio = iwl_rfkill_soft_rf_kill;
-	priv->rfkill->user_claim_unsupported = 1;
 
 	priv->rfkill->dev.class->suspend = NULL;
 	priv->rfkill->dev.class->resume = NULL;
--- wireless-testing.orig/drivers/platform/x86/acer-wmi.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/platform/x86/acer-wmi.c	2009-03-27 14:10:50.000000000 +0100
@@ -986,7 +986,6 @@ enum rfkill_type type, char *name, u32 c
 	*data = cap;
 	rfkill_dev->data = data;
 	rfkill_dev->toggle_radio = acer_rfkill_set;
-	rfkill_dev->user_claim_unsupported = 1;
 
 	err = rfkill_register(rfkill_dev);
 	if (err) {
--- wireless-testing.orig/drivers/platform/x86/hp-wmi.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/platform/x86/hp-wmi.c	2009-03-27 14:10:50.000000000 +0100
@@ -432,7 +432,6 @@ static int __init hp_wmi_bios_setup(stru
 		wifi_rfkill->name = "hp-wifi";
 		wifi_rfkill->state = hp_wmi_wifi_state();
 		wifi_rfkill->toggle_radio = hp_wmi_wifi_set;
-		wifi_rfkill->user_claim_unsupported = 1;
 		err = rfkill_register(wifi_rfkill);
 		if (err)
 			goto add_sysfs_error;
@@ -444,7 +443,6 @@ static int __init hp_wmi_bios_setup(stru
 		bluetooth_rfkill->name = "hp-bluetooth";
 		bluetooth_rfkill->state = hp_wmi_bluetooth_state();
 		bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set;
-		bluetooth_rfkill->user_claim_unsupported = 1;
 		err = rfkill_register(bluetooth_rfkill);
 		if (err)
 			goto register_bluetooth_error;
@@ -455,7 +453,6 @@ static int __init hp_wmi_bios_setup(stru
 		wwan_rfkill->name = "hp-wwan";
 		wwan_rfkill->state = hp_wmi_wwan_state();
 		wwan_rfkill->toggle_radio = hp_wmi_wwan_set;
-		wwan_rfkill->user_claim_unsupported = 1;
 		err = rfkill_register(wwan_rfkill);
 		if (err)
 			goto register_wwan_err;
--- wireless-testing.orig/drivers/platform/x86/toshiba_acpi.c	2009-03-27 14:08:21.000000000 +0100
+++ wireless-testing/drivers/platform/x86/toshiba_acpi.c	2009-03-27 14:10:50.000000000 +0100
@@ -806,7 +806,6 @@ static int __init toshiba_acpi_init(void
 
 		toshiba_acpi.rfk_dev->name = toshiba_acpi.bt_name;
 		toshiba_acpi.rfk_dev->toggle_radio = bt_rfkill_toggle_radio;
-		toshiba_acpi.rfk_dev->user_claim_unsupported = 1;
 		toshiba_acpi.rfk_dev->data = &toshiba_acpi;
 
 		if (hci_get_bt_on(&bt_on) == HCI_SUCCESS && bt_on) {
--- wireless-testing.orig/net/wimax/op-rfkill.c	2009-03-27 14:10:00.000000000 +0100
+++ wireless-testing/net/wimax/op-rfkill.c	2009-03-27 14:10:50.000000000 +0100
@@ -364,7 +364,6 @@ int wimax_rfkill_add(struct wimax_dev *w
 	rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
 	rfkill->data = wimax_dev;
 	rfkill->toggle_radio = wimax_rfkill_toggle_radio;
-	rfkill->user_claim_unsupported = 1;
 
 	/* Initialize the input device for the hw key */
 	input_dev = input_allocate_device();



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] rfkill: remove user_claim stuff
  2009-03-27 13:14 [PATCH] rfkill: remove user_claim stuff Johannes Berg
@ 2009-03-27 13:39 ` Michael Buesch
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Buesch @ 2009-03-27 13:39 UTC (permalink / raw)
  To: Johannes Berg; +Cc: John Linville, linux-wireless@vger.kernel.org

On Friday 27 March 2009 14:14:31 Johannes Berg wrote:
> Almost all drivers do not support user_claim, so remove it
> completely and always report -EOPNOTSUPP to userspace. Since
> userspace cannot really drive rfkill _anyway_ (due to the
> odd restrictions imposed by the documentation) having this
> code is just pointless.
> 
> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>

I think it's a good idea to remove this code.
What about scheduling a removal of the "claim" sysfs file? Does anybody use it?

> ---
>  Documentation/rfkill.txt                  |   16 ++++------
>  drivers/net/wireless/ath9k/main.c         |    1 
>  drivers/net/wireless/b43/rfkill.c         |    1 
>  drivers/net/wireless/b43legacy/rfkill.c   |    1 
>  drivers/net/wireless/iwlwifi/iwl-rfkill.c |    1 
>  drivers/platform/x86/acer-wmi.c           |    1 
>  drivers/platform/x86/hp-wmi.c             |    3 --
>  drivers/platform/x86/toshiba_acpi.c       |    1 
>  include/linux/rfkill.h                    |    6 ----
>  net/rfkill/rfkill.c                       |   45 ++----------------------------
>  net/wimax/op-rfkill.c                     |    1 
>  11 files changed, 9 insertions(+), 68 deletions(-)
> 
> --- wireless-testing.orig/include/linux/rfkill.h	2009-03-27 14:09:02.000000000 +0100
> +++ wireless-testing/include/linux/rfkill.h	2009-03-27 14:10:50.000000000 +0100
> @@ -58,9 +58,6 @@ enum rfkill_state {
>   * @type: Radio type which the button controls, the value stored
>   *	here should be a value from enum rfkill_type.
>   * @state: State of the switch, "UNBLOCKED" means radio can operate.
> - * @user_claim_unsupported: Whether the hardware supports exclusive
> - *	RF-kill control by userspace. Set this before registering.
> - * @user_claim: Set when the switch is controlled exlusively by userspace.
>   * @mutex: Guards switch state transitions.  It serializes callbacks
>   *	and also protects the state.
>   * @data: Pointer to the RF button drivers private data which will be
> @@ -83,9 +80,6 @@ struct rfkill {
>  	const char *name;
>  	enum rfkill_type type;
>  
> -	bool user_claim_unsupported;
> -	bool user_claim;
> -
>  	/* the mutex serializes callbacks and also protects
>  	 * the state */
>  	struct mutex mutex;
> --- wireless-testing.orig/net/rfkill/rfkill.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/net/rfkill/rfkill.c	2009-03-27 14:10:50.000000000 +0100
> @@ -200,7 +200,7 @@ static void __rfkill_switch_all(const en
>  
>  	rfkill_global_states[type].current_state = state;
>  	list_for_each_entry(rfkill, &rfkill_list, node) {
> -		if ((!rfkill->user_claim) && (rfkill->type == type)) {
> +		if (rfkill->type == type) {
>  			mutex_lock(&rfkill->mutex);
>  			rfkill_toggle_radio(rfkill, state, 0);
>  			mutex_unlock(&rfkill->mutex);
> @@ -447,53 +447,14 @@ static ssize_t rfkill_claim_show(struct 
>  				 struct device_attribute *attr,
>  				 char *buf)
>  {
> -	struct rfkill *rfkill = to_rfkill(dev);
> -
> -	return sprintf(buf, "%d\n", rfkill->user_claim);
> +	return sprintf(buf, "%d\n", 0);
>  }
>  
>  static ssize_t rfkill_claim_store(struct device *dev,
>  				  struct device_attribute *attr,
>  				  const char *buf, size_t count)
>  {
> -	struct rfkill *rfkill = to_rfkill(dev);
> -	unsigned long claim_tmp;
> -	bool claim;
> -	int error;
> -
> -	if (!capable(CAP_NET_ADMIN))
> -		return -EPERM;
> -
> -	if (rfkill->user_claim_unsupported)
> -		return -EOPNOTSUPP;
> -
> -	error = strict_strtoul(buf, 0, &claim_tmp);
> -	if (error)
> -		return error;
> -	claim = !!claim_tmp;
> -
> -	/*
> -	 * Take the global lock to make sure the kernel is not in
> -	 * the middle of rfkill_switch_all
> -	 */
> -	error = mutex_lock_killable(&rfkill_global_mutex);
> -	if (error)
> -		return error;
> -
> -	if (rfkill->user_claim != claim) {
> -		if (!claim && !rfkill_epo_lock_active) {
> -			mutex_lock(&rfkill->mutex);
> -			rfkill_toggle_radio(rfkill,
> -					rfkill_global_states[rfkill->type].current_state,
> -					0);
> -			mutex_unlock(&rfkill->mutex);
> -		}
> -		rfkill->user_claim = claim;
> -	}
> -
> -	mutex_unlock(&rfkill_global_mutex);
> -
> -	return error ? error : count;
> +	return -EOPNOTSUPP;
>  }
>  
>  static struct device_attribute rfkill_dev_attrs[] = {
> --- wireless-testing.orig/Documentation/rfkill.txt	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/Documentation/rfkill.txt	2009-03-27 14:10:50.000000000 +0100
> @@ -521,16 +521,12 @@ status of the system.
>  Input devices may issue events that are related to rfkill.  These are the
>  various KEY_* events and SW_* events supported by rfkill-input.c.
>  
> -******IMPORTANT******
> -When rfkill-input is ACTIVE, userspace is NOT TO CHANGE THE STATE OF AN RFKILL
> -SWITCH IN RESPONSE TO AN INPUT EVENT also handled by rfkill-input, unless it
> -has set to true the user_claim attribute for that particular switch.  This rule
> -is *absolute*; do NOT violate it.
> -******IMPORTANT******
> -
> -Userspace must not assume it is the only source of control for rfkill switches.
> -Their state CAN and WILL change due to firmware actions, direct user actions,
> -and the rfkill-input EPO override for *_RFKILL_ALL.
> +Userspace may not change the state of an rfkill switch in response to an
> +input event, it should refrain from changing states entirely.
> +
> +Userspace cannot assume it is the only source of control for rfkill switches.
> +Their state can change due to firmware actions, direct user actions, and the
> +rfkill-input EPO override for *_RFKILL_ALL.
>  
>  When rfkill-input is not active, userspace must initiate a rfkill status
>  change by writing to the "state" attribute in order for anything to happen.
> --- wireless-testing.orig/drivers/net/wireless/ath9k/main.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/ath9k/main.c	2009-03-27 14:10:50.000000000 +0100
> @@ -1267,7 +1267,6 @@ static int ath_init_sw_rfkill(struct ath
>  	sc->rf_kill.rfkill->data = sc;
>  	sc->rf_kill.rfkill->toggle_radio = ath_sw_toggle_radio;
>  	sc->rf_kill.rfkill->state = RFKILL_STATE_UNBLOCKED;
> -	sc->rf_kill.rfkill->user_claim_unsupported = 1;
>  
>  	return 0;
>  }
> --- wireless-testing.orig/drivers/net/wireless/b43/rfkill.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/b43/rfkill.c	2009-03-27 14:10:50.000000000 +0100
> @@ -139,7 +139,6 @@ void b43_rfkill_init(struct b43_wldev *d
>  	rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
>  	rfk->rfkill->data = dev;
>  	rfk->rfkill->toggle_radio = b43_rfkill_soft_toggle;
> -	rfk->rfkill->user_claim_unsupported = 1;
>  
>  	rfk->poll_dev = input_allocate_polled_device();
>  	if (!rfk->poll_dev) {
> --- wireless-testing.orig/drivers/net/wireless/b43legacy/rfkill.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/b43legacy/rfkill.c	2009-03-27 14:10:50.000000000 +0100
> @@ -142,7 +142,6 @@ void b43legacy_rfkill_init(struct b43leg
>  	rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
>  	rfk->rfkill->data = dev;
>  	rfk->rfkill->toggle_radio = b43legacy_rfkill_soft_toggle;
> -	rfk->rfkill->user_claim_unsupported = 1;
>  
>  	rfk->poll_dev = input_allocate_polled_device();
>  	if (!rfk->poll_dev) {
> --- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-rfkill.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-rfkill.c	2009-03-27 14:10:50.000000000 +0100
> @@ -91,7 +91,6 @@ int iwl_rfkill_init(struct iwl_priv *pri
>  	priv->rfkill->data = priv;
>  	priv->rfkill->state = RFKILL_STATE_UNBLOCKED;
>  	priv->rfkill->toggle_radio = iwl_rfkill_soft_rf_kill;
> -	priv->rfkill->user_claim_unsupported = 1;
>  
>  	priv->rfkill->dev.class->suspend = NULL;
>  	priv->rfkill->dev.class->resume = NULL;
> --- wireless-testing.orig/drivers/platform/x86/acer-wmi.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/platform/x86/acer-wmi.c	2009-03-27 14:10:50.000000000 +0100
> @@ -986,7 +986,6 @@ enum rfkill_type type, char *name, u32 c
>  	*data = cap;
>  	rfkill_dev->data = data;
>  	rfkill_dev->toggle_radio = acer_rfkill_set;
> -	rfkill_dev->user_claim_unsupported = 1;
>  
>  	err = rfkill_register(rfkill_dev);
>  	if (err) {
> --- wireless-testing.orig/drivers/platform/x86/hp-wmi.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/platform/x86/hp-wmi.c	2009-03-27 14:10:50.000000000 +0100
> @@ -432,7 +432,6 @@ static int __init hp_wmi_bios_setup(stru
>  		wifi_rfkill->name = "hp-wifi";
>  		wifi_rfkill->state = hp_wmi_wifi_state();
>  		wifi_rfkill->toggle_radio = hp_wmi_wifi_set;
> -		wifi_rfkill->user_claim_unsupported = 1;
>  		err = rfkill_register(wifi_rfkill);
>  		if (err)
>  			goto add_sysfs_error;
> @@ -444,7 +443,6 @@ static int __init hp_wmi_bios_setup(stru
>  		bluetooth_rfkill->name = "hp-bluetooth";
>  		bluetooth_rfkill->state = hp_wmi_bluetooth_state();
>  		bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set;
> -		bluetooth_rfkill->user_claim_unsupported = 1;
>  		err = rfkill_register(bluetooth_rfkill);
>  		if (err)
>  			goto register_bluetooth_error;
> @@ -455,7 +453,6 @@ static int __init hp_wmi_bios_setup(stru
>  		wwan_rfkill->name = "hp-wwan";
>  		wwan_rfkill->state = hp_wmi_wwan_state();
>  		wwan_rfkill->toggle_radio = hp_wmi_wwan_set;
> -		wwan_rfkill->user_claim_unsupported = 1;
>  		err = rfkill_register(wwan_rfkill);
>  		if (err)
>  			goto register_wwan_err;
> --- wireless-testing.orig/drivers/platform/x86/toshiba_acpi.c	2009-03-27 14:08:21.000000000 +0100
> +++ wireless-testing/drivers/platform/x86/toshiba_acpi.c	2009-03-27 14:10:50.000000000 +0100
> @@ -806,7 +806,6 @@ static int __init toshiba_acpi_init(void
>  
>  		toshiba_acpi.rfk_dev->name = toshiba_acpi.bt_name;
>  		toshiba_acpi.rfk_dev->toggle_radio = bt_rfkill_toggle_radio;
> -		toshiba_acpi.rfk_dev->user_claim_unsupported = 1;
>  		toshiba_acpi.rfk_dev->data = &toshiba_acpi;
>  
>  		if (hci_get_bt_on(&bt_on) == HCI_SUCCESS && bt_on) {
> --- wireless-testing.orig/net/wimax/op-rfkill.c	2009-03-27 14:10:00.000000000 +0100
> +++ wireless-testing/net/wimax/op-rfkill.c	2009-03-27 14:10:50.000000000 +0100
> @@ -364,7 +364,6 @@ int wimax_rfkill_add(struct wimax_dev *w
>  	rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
>  	rfkill->data = wimax_dev;
>  	rfkill->toggle_radio = wimax_rfkill_toggle_radio;
> -	rfkill->user_claim_unsupported = 1;
>  
>  	/* Initialize the input device for the hw key */
>  	input_dev = input_allocate_device();
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 



-- 
Greetings, Michael.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-03-27 13:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-27 13:14 [PATCH] rfkill: remove user_claim stuff Johannes Berg
2009-03-27 13:39 ` Michael Buesch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).