Hi, Samuel, I verified your patch on 0.60 stable branch, and it works well on my problematic netbook.
Best regards, DengYingAn > -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Deng, Ying An > Sent: Friday, November 05, 2010 8:19 AM > To: Samuel Ortiz > Cc: [email protected] > Subject: RE: [PATCH] Fix BMC 8074 fail to enable technology after > rfkill > > Thanks for your suggestion, I will try it after get back from sick > leave. > > Best regards, > DengYingAn > > > -----Original Message----- > > From: Samuel Ortiz [mailto:[email protected]] > > Sent: Thursday, November 04, 2010 7:23 AM > > To: Deng, Ying An > > Cc: [email protected] > > Subject: Re: [PATCH] Fix BMC 8074 fail to enable technology after > > rfkill > > > > 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 _______________________________________________ connman mailing list [email protected] http://lists.connman.net/listinfo/connman
