Hi Ying,

On Fri, Oct 29, 2010 at 04:41:39PM +0800, Deng, Ying An wrote:
> Dear Samuel,
> 
> Please find the following flow after an analysis on the different behavior of 
> the netbook, which removed the pci-E wifi device when rfkill key pressed 
> down. It is different from common rfkill operation implemented on other 
> netbooks.
> 
> When RFKILL button pressed down to power off RF device...
Thanks for the detailed explanation, I appreciate.
Now that I understand the root cause of that issue, I managed to reproduce it
with my wifi dongle.
I think the real problem here is that remove_device() is calling
__connman_technology_disable_device() when the driver disable routine is
returning EINPROGRESS. This was a fix for the old oFono plugin, and with the
new one it doesn't make sense anymore.

Could you please try this patch then ?


diff --git a/src/device.c b/src/device.c
index f79e991..0e31b04 100644
--- a/src/device.c
+++ b/src/device.c
@@ -593,13 +593,9 @@ static void probe_driver(struct connman_element *element, 
gpointer user_data)
 
 static void remove_device(struct connman_device *device)
 {
-       int err;
-
        DBG("device %p", device);
 
-       err = __connman_device_disable(device);
-       if (err < 0 && err == -EINPROGRESS)
-               __connman_technology_disable_device(device);
+       __connman_device_disable(device);
 
        switch (device->mode) {
        case CONNMAN_DEVICE_MODE_UNKNOWN:

-- 
Intel Open Source Technology Centre
http://oss.intel.com/
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to