* [PATCH] staging: wilc1000: fix check of kthread_run() return value @ 2016-03-09 23:13 Vladimir Zapolskiy 2016-03-09 23:27 ` Julian Calaby 0 siblings, 1 reply; 8+ messages in thread From: Vladimir Zapolskiy @ 2016-03-09 23:13 UTC (permalink / raw) To: Glen Lee, Greg Kroah-Hartman Cc: Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel The kthread_run() function returns either a valid task_struct or ERR_PTR() value, check for NULL is invalid. The change fixes potential oops, e.g. in OOM situation. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> --- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index 54fe9d7..5077c30 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, "K_TXQ_TASK"); - if (!wilc->txq_thread) { + if (IS_ERR(wilc->txq_thread)) { PRINT_ER("couldn't create TXQ thread\n"); wilc->close = 0; - return -ENOBUFS; + return PTR_ERR(wilc->txq_thread); } down(&wilc->txq_thread_started); -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-09 23:13 [PATCH] staging: wilc1000: fix check of kthread_run() return value Vladimir Zapolskiy @ 2016-03-09 23:27 ` Julian Calaby 2016-03-09 23:30 ` Vladimir Zapolskiy 0 siblings, 1 reply; 8+ messages in thread From: Julian Calaby @ 2016-03-09 23:27 UTC (permalink / raw) To: Vladimir Zapolskiy Cc: Glen Lee, Greg Kroah-Hartman, Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel@driverdev.osuosl.org Hi Vladimir, On Thu, Mar 10, 2016 at 10:13 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: > The kthread_run() function returns either a valid task_struct or > ERR_PTR() value, check for NULL is invalid. The change fixes potential > oops, e.g. in OOM situation. > > Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> > --- > drivers/staging/wilc1000/linux_wlan.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c > index 54fe9d7..5077c30 100644 > --- a/drivers/staging/wilc1000/linux_wlan.c > +++ b/drivers/staging/wilc1000/linux_wlan.c > @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) > PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); > wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, > "K_TXQ_TASK"); > - if (!wilc->txq_thread) { > + if (IS_ERR(wilc->txq_thread)) { > PRINT_ER("couldn't create TXQ thread\n"); > wilc->close = 0; > - return -ENOBUFS; > + return PTR_ERR(wilc->txq_thread); Are you sure changing the error returned is correct? Do all the callers of wlan_initialize_threads() handle the full range of errors from kthread_run()? Thanks, -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-09 23:27 ` Julian Calaby @ 2016-03-09 23:30 ` Vladimir Zapolskiy 2016-03-09 23:42 ` Julian Calaby 0 siblings, 1 reply; 8+ messages in thread From: Vladimir Zapolskiy @ 2016-03-09 23:30 UTC (permalink / raw) To: Julian Calaby Cc: Glen Lee, Greg Kroah-Hartman, Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel@driverdev.osuosl.org Hi Julian, On 10.03.2016 01:27, Julian Calaby wrote: > Hi Vladimir, > > On Thu, Mar 10, 2016 at 10:13 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >> The kthread_run() function returns either a valid task_struct or >> ERR_PTR() value, check for NULL is invalid. The change fixes potential >> oops, e.g. in OOM situation. >> >> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >> --- >> drivers/staging/wilc1000/linux_wlan.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c >> index 54fe9d7..5077c30 100644 >> --- a/drivers/staging/wilc1000/linux_wlan.c >> +++ b/drivers/staging/wilc1000/linux_wlan.c >> @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) >> PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); >> wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, >> "K_TXQ_TASK"); >> - if (!wilc->txq_thread) { >> + if (IS_ERR(wilc->txq_thread)) { >> PRINT_ER("couldn't create TXQ thread\n"); >> wilc->close = 0; >> - return -ENOBUFS; >> + return PTR_ERR(wilc->txq_thread); > > Are you sure changing the error returned is correct? Do all the > callers of wlan_initialize_threads() handle the full range of errors > from kthread_run()? Have you checked the driver? This function is called once on initialization, the check on the upper layer has "if (ret < 0) goto exit_badly;" form. -- With best wishes, Vladimir ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-09 23:30 ` Vladimir Zapolskiy @ 2016-03-09 23:42 ` Julian Calaby 2016-03-10 0:02 ` Vladimir Zapolskiy 0 siblings, 1 reply; 8+ messages in thread From: Julian Calaby @ 2016-03-09 23:42 UTC (permalink / raw) To: Vladimir Zapolskiy Cc: Glen Lee, Greg Kroah-Hartman, Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel@driverdev.osuosl.org Hi Vladimir, On Thu, Mar 10, 2016 at 10:30 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: > Hi Julian, > > On 10.03.2016 01:27, Julian Calaby wrote: >> Hi Vladimir, >> >> On Thu, Mar 10, 2016 at 10:13 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >>> The kthread_run() function returns either a valid task_struct or >>> ERR_PTR() value, check for NULL is invalid. The change fixes potential >>> oops, e.g. in OOM situation. >>> >>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >>> --- >>> drivers/staging/wilc1000/linux_wlan.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c >>> index 54fe9d7..5077c30 100644 >>> --- a/drivers/staging/wilc1000/linux_wlan.c >>> +++ b/drivers/staging/wilc1000/linux_wlan.c >>> @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) >>> PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); >>> wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, >>> "K_TXQ_TASK"); >>> - if (!wilc->txq_thread) { >>> + if (IS_ERR(wilc->txq_thread)) { >>> PRINT_ER("couldn't create TXQ thread\n"); >>> wilc->close = 0; >>> - return -ENOBUFS; >>> + return PTR_ERR(wilc->txq_thread); >> >> Are you sure changing the error returned is correct? Do all the >> callers of wlan_initialize_threads() handle the full range of errors >> from kthread_run()? > > Have you checked the driver? I'm making sure you have. It's possible that there's a good reason why this returns -ENOBUFS I want to know that you've at least considered that possibility. > This function is called once on initialization, the check on the upper layer > has "if (ret < 0) goto exit_badly;" form. And practically everything in the chain up to net_device_ops uses the same error handling scheme so it's probably fine. You should also document this change in the commit message. Thanks, -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-09 23:42 ` Julian Calaby @ 2016-03-10 0:02 ` Vladimir Zapolskiy 2016-03-10 0:24 ` Julian Calaby 0 siblings, 1 reply; 8+ messages in thread From: Vladimir Zapolskiy @ 2016-03-10 0:02 UTC (permalink / raw) To: Julian Calaby Cc: Glen Lee, Greg Kroah-Hartman, Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel@driverdev.osuosl.org Hi Julian, On 10.03.2016 01:42, Julian Calaby wrote: > Hi Vladimir, > > On Thu, Mar 10, 2016 at 10:30 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >> Hi Julian, >> >> On 10.03.2016 01:27, Julian Calaby wrote: >>> Hi Vladimir, >>> >>> On Thu, Mar 10, 2016 at 10:13 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >>>> The kthread_run() function returns either a valid task_struct or >>>> ERR_PTR() value, check for NULL is invalid. The change fixes potential >>>> oops, e.g. in OOM situation. >>>> >>>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >>>> --- >>>> drivers/staging/wilc1000/linux_wlan.c | 4 ++-- >>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c >>>> index 54fe9d7..5077c30 100644 >>>> --- a/drivers/staging/wilc1000/linux_wlan.c >>>> +++ b/drivers/staging/wilc1000/linux_wlan.c >>>> @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) >>>> PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); >>>> wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, >>>> "K_TXQ_TASK"); >>>> - if (!wilc->txq_thread) { >>>> + if (IS_ERR(wilc->txq_thread)) { >>>> PRINT_ER("couldn't create TXQ thread\n"); >>>> wilc->close = 0; >>>> - return -ENOBUFS; >>>> + return PTR_ERR(wilc->txq_thread); >>> >>> Are you sure changing the error returned is correct? Do all the >>> callers of wlan_initialize_threads() handle the full range of errors >>> from kthread_run()? >> >> Have you checked the driver? > > I'm making sure you have. It's possible that there's a good reason why > this returns -ENOBUFS I want to know that you've at least considered > that possibility. You have my confirmation, I've checked the call stack before publishing this fix. >> This function is called once on initialization, the check on the upper layer >> has "if (ret < 0) goto exit_badly;" form. > > And practically everything in the chain up to net_device_ops uses the > same error handling scheme so it's probably fine. dev_open() __dev_open() wilc_mac_open() wilc1000_wlan_init() wlan_initialize_threads() Oh, why kernel threads within a driver are init'ed/destroyed on each device up/down state transition? > You should also document this change in the commit message. The change is documented in the commit message, take a look. But I didn't add "I swear it does not break anything" ;) -- With best wishes, Vladimir ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-10 0:02 ` Vladimir Zapolskiy @ 2016-03-10 0:24 ` Julian Calaby 2016-03-10 0:36 ` Vladimir Zapolskiy 0 siblings, 1 reply; 8+ messages in thread From: Julian Calaby @ 2016-03-10 0:24 UTC (permalink / raw) To: Vladimir Zapolskiy Cc: Glen Lee, Greg Kroah-Hartman, Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel@driverdev.osuosl.org Hi Vladimir, On Thu, Mar 10, 2016 at 11:02 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: > Hi Julian, > > On 10.03.2016 01:42, Julian Calaby wrote: >> Hi Vladimir, >> >> On Thu, Mar 10, 2016 at 10:30 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >>> Hi Julian, >>> >>> On 10.03.2016 01:27, Julian Calaby wrote: >>>> Hi Vladimir, >>>> >>>> On Thu, Mar 10, 2016 at 10:13 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >>>>> The kthread_run() function returns either a valid task_struct or >>>>> ERR_PTR() value, check for NULL is invalid. The change fixes potential >>>>> oops, e.g. in OOM situation. >>>>> >>>>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >>>>> --- >>>>> drivers/staging/wilc1000/linux_wlan.c | 4 ++-- >>>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c >>>>> index 54fe9d7..5077c30 100644 >>>>> --- a/drivers/staging/wilc1000/linux_wlan.c >>>>> +++ b/drivers/staging/wilc1000/linux_wlan.c >>>>> @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) >>>>> PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); >>>>> wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, >>>>> "K_TXQ_TASK"); >>>>> - if (!wilc->txq_thread) { >>>>> + if (IS_ERR(wilc->txq_thread)) { >>>>> PRINT_ER("couldn't create TXQ thread\n"); >>>>> wilc->close = 0; >>>>> - return -ENOBUFS; >>>>> + return PTR_ERR(wilc->txq_thread); >>>> >>>> Are you sure changing the error returned is correct? Do all the >>>> callers of wlan_initialize_threads() handle the full range of errors >>>> from kthread_run()? >>> >>> Have you checked the driver? >> >> I'm making sure you have. It's possible that there's a good reason why >> this returns -ENOBUFS I want to know that you've at least considered >> that possibility. > > You have my confirmation, I've checked the call stack before publishing > this fix. Awesome. >>> This function is called once on initialization, the check on the upper layer >>> has "if (ret < 0) goto exit_badly;" form. >> >> And practically everything in the chain up to net_device_ops uses the >> same error handling scheme so it's probably fine. > > dev_open() > __dev_open() > wilc_mac_open() > wilc1000_wlan_init() > wlan_initialize_threads() > > Oh, why kernel threads within a driver are init'ed/destroyed on > each device up/down state transition? You'll have to ask the driver developers. I believe this was a cross platform driver that is currently being Linux-ised, so I'm guessing this is some artefact of that. >> You should also document this change in the commit message. > > The change is documented in the commit message, take a look. But I didn't > add "I swear it does not break anything" ;) You 1. corrected the test in the if statement 2. changed the return value from -ENOBUFS in your patch, however you only documented the first part. I would have expected a commit message along the lines of: ---->8---- The kthread_run() function returns either a valid task_struct or ERR_PTR() value, so the check for NULL is invalid. Also return the error from kthread_run() instead of -ENOBUFS. ----8<---- Thanks, -- Julian Calaby Email: julian.calaby@gmail.com Profile: http://www.google.com/profiles/julian.calaby/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-10 0:24 ` Julian Calaby @ 2016-03-10 0:36 ` Vladimir Zapolskiy 2016-03-10 6:49 ` Kim, Leo 0 siblings, 1 reply; 8+ messages in thread From: Vladimir Zapolskiy @ 2016-03-10 0:36 UTC (permalink / raw) To: Julian Calaby Cc: Glen Lee, Greg Kroah-Hartman, Johnny Kim, Austin Shin, Chris Park, Tony Cho, Leo Kim, linux-wireless, devel@driverdev.osuosl.org Hi Julian, On 10.03.2016 02:24, Julian Calaby wrote: > Hi Vladimir, > > On Thu, Mar 10, 2016 at 11:02 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >> Hi Julian, >> >> On 10.03.2016 01:42, Julian Calaby wrote: >>> Hi Vladimir, >>> >>> On Thu, Mar 10, 2016 at 10:30 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >>>> Hi Julian, >>>> >>>> On 10.03.2016 01:27, Julian Calaby wrote: >>>>> Hi Vladimir, >>>>> >>>>> On Thu, Mar 10, 2016 at 10:13 AM, Vladimir Zapolskiy <vz@mleia.com> wrote: >>>>>> The kthread_run() function returns either a valid task_struct or >>>>>> ERR_PTR() value, check for NULL is invalid. The change fixes potential >>>>>> oops, e.g. in OOM situation. >>>>>> >>>>>> Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> >>>>>> --- >>>>>> drivers/staging/wilc1000/linux_wlan.c | 4 ++-- >>>>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>>>> >>>>>> diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c >>>>>> index 54fe9d7..5077c30 100644 >>>>>> --- a/drivers/staging/wilc1000/linux_wlan.c >>>>>> +++ b/drivers/staging/wilc1000/linux_wlan.c >>>>>> @@ -849,10 +849,10 @@ static int wlan_initialize_threads(struct net_device *dev) >>>>>> PRINT_D(INIT_DBG, "Creating kthread for transmission\n"); >>>>>> wilc->txq_thread = kthread_run(linux_wlan_txq_task, (void *)dev, >>>>>> "K_TXQ_TASK"); >>>>>> - if (!wilc->txq_thread) { >>>>>> + if (IS_ERR(wilc->txq_thread)) { >>>>>> PRINT_ER("couldn't create TXQ thread\n"); >>>>>> wilc->close = 0; >>>>>> - return -ENOBUFS; >>>>>> + return PTR_ERR(wilc->txq_thread); >>>>> >>>>> Are you sure changing the error returned is correct? Do all the >>>>> callers of wlan_initialize_threads() handle the full range of errors >>>>> from kthread_run()? >>>> >>>> Have you checked the driver? >>> >>> I'm making sure you have. It's possible that there's a good reason why >>> this returns -ENOBUFS I want to know that you've at least considered >>> that possibility. >> >> You have my confirmation, I've checked the call stack before publishing >> this fix. > > Awesome. > >>>> This function is called once on initialization, the check on the upper layer >>>> has "if (ret < 0) goto exit_badly;" form. >>> >>> And practically everything in the chain up to net_device_ops uses the >>> same error handling scheme so it's probably fine. >> >> dev_open() >> __dev_open() >> wilc_mac_open() >> wilc1000_wlan_init() >> wlan_initialize_threads() >> >> Oh, why kernel threads within a driver are init'ed/destroyed on >> each device up/down state transition? > > You'll have to ask the driver developers. I believe this was a cross > platform driver that is currently being Linux-ised, so I'm guessing > this is some artefact of that. > >>> You should also document this change in the commit message. >> >> The change is documented in the commit message, take a look. But I didn't >> add "I swear it does not break anything" ;) > > You > 1. corrected the test in the if statement > 2. changed the return value from -ENOBUFS > in your patch, however you only documented the first part. Agree, it makes sense. > I would have expected a commit message along the lines of: > > ---->8---- > > The kthread_run() function returns either a valid task_struct or > ERR_PTR() value, so the check for NULL is invalid. > > Also return the error from kthread_run() instead of -ENOBUFS. > > ----8<---- > Before publishing v2 let see if driver maintainers have something else to add, or may be it is better to preserve -ENOBUFS, or may be they are so kind to update the commit message on patch application. Julian, thanks for review. -- With best wishes, Vladimir ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH] staging: wilc1000: fix check of kthread_run() return value 2016-03-10 0:36 ` Vladimir Zapolskiy @ 2016-03-10 6:49 ` Kim, Leo 0 siblings, 0 replies; 8+ messages in thread From: Kim, Leo @ 2016-03-10 6:49 UTC (permalink / raw) To: Vladimir Zapolskiy, Julian Calaby Cc: Lee, Glen, Greg Kroah-Hartman, Kim, Johnny, Shin, Austin, Park, Chris, Cho, Tony, linux-wireless, devel@driverdev.osuosl.org SGkgVmxhZGltaXIgJiBKdWxpYW4NCg0KVGhlIGRyaXZlciBpcyBzdGlsbCBtb3ZpbmcgdG8gdGhl IExpbnV4IGRyaXZlciBhbmQgYWxzbyBpdHMgYmVpbmcgY2hhbmdlZC4NCllvdXIgcGF0Y2ggaXMg ZXZlcnl0aGluZydzIG9rLg0KSSBhbHNvIGFncmVlIHRvIEp1bGlhbiByZXZpZXcuDQoNCsKgVGhh bmtzLCBCUg0KwqBMZW8NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFZsYWRp bWlyIFphcG9sc2tpeSBbbWFpbHRvOnZ6QG1sZWlhLmNvbV0gDQpTZW50OiBUaHVyc2RheSwgTWFy Y2ggMTAsIDIwMTYgOTozNiBBTQ0KVG86IEp1bGlhbiBDYWxhYnkgPGp1bGlhbi5jYWxhYnlAZ21h aWwuY29tPg0KQ2M6IExlZSwgR2xlbiA8R2xlbi5MZWVAYXRtZWwuY29tPjsgR3JlZyBLcm9haC1I YXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz47IEtpbSwgSm9obm55IDxqb2hubnku a2ltQGF0bWVsLmNvbT47IFNoaW4sIEF1c3RpbiA8QXVzdGluLlNoaW5AYXRtZWwuY29tPjsgUGFy aywgQ2hyaXMgPENocmlzLlBhcmtAYXRtZWwuY29tPjsgQ2hvLCBUb255IDxUb255LkNob0BhdG1l bC5jb20+OyBLaW0sIExlbyA8TGVvLktpbUBhdG1lbC5jb20+OyBsaW51eC13aXJlbGVzcyA8bGlu dXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnPjsgZGV2ZWxAZHJpdmVyZGV2Lm9zdW9zbC5vcmcN ClN1YmplY3Q6IFJlOiBbUEFUQ0hdIHN0YWdpbmc6IHdpbGMxMDAwOiBmaXggY2hlY2sgb2Yga3Ro cmVhZF9ydW4oKSByZXR1cm4gdmFsdWUNCg0KSGkgSnVsaWFuLA0KDQpPbiAxMC4wMy4yMDE2IDAy OjI0LCBKdWxpYW4gQ2FsYWJ5IHdyb3RlOg0KPiBIaSBWbGFkaW1pciwNCj4gDQo+IE9uIFRodSwg TWFyIDEwLCAyMDE2IGF0IDExOjAyIEFNLCBWbGFkaW1pciBaYXBvbHNraXkgPHZ6QG1sZWlhLmNv bT4gd3JvdGU6DQo+PiBIaSBKdWxpYW4sDQo+Pg0KPj4gT24gMTAuMDMuMjAxNiAwMTo0MiwgSnVs aWFuIENhbGFieSB3cm90ZToNCj4+PiBIaSBWbGFkaW1pciwNCj4+Pg0KPj4+IE9uIFRodSwgTWFy IDEwLCAyMDE2IGF0IDEwOjMwIEFNLCBWbGFkaW1pciBaYXBvbHNraXkgPHZ6QG1sZWlhLmNvbT4g d3JvdGU6DQo+Pj4+IEhpIEp1bGlhbiwNCj4+Pj4NCj4+Pj4gT24gMTAuMDMuMjAxNiAwMToyNywg SnVsaWFuIENhbGFieSB3cm90ZToNCj4+Pj4+IEhpIFZsYWRpbWlyLA0KPj4+Pj4NCj4+Pj4+IE9u IFRodSwgTWFyIDEwLCAyMDE2IGF0IDEwOjEzIEFNLCBWbGFkaW1pciBaYXBvbHNraXkgPHZ6QG1s ZWlhLmNvbT4gd3JvdGU6DQo+Pj4+Pj4gVGhlIGt0aHJlYWRfcnVuKCkgZnVuY3Rpb24gcmV0dXJu cyBlaXRoZXIgYSB2YWxpZCB0YXNrX3N0cnVjdCBvcg0KPj4+Pj4+IEVSUl9QVFIoKSB2YWx1ZSwg Y2hlY2sgZm9yIE5VTEwgaXMgaW52YWxpZC4gVGhlIGNoYW5nZSBmaXhlcyANCj4+Pj4+PiBwb3Rl bnRpYWwgb29wcywgZS5nLiBpbiBPT00gc2l0dWF0aW9uLg0KPj4+Pj4+DQo+Pj4+Pj4gU2lnbmVk LW9mZi1ieTogVmxhZGltaXIgWmFwb2xza2l5IDx2ekBtbGVpYS5jb20+DQo+Pj4+Pj4gLS0tDQo+ Pj4+Pj4gIGRyaXZlcnMvc3RhZ2luZy93aWxjMTAwMC9saW51eF93bGFuLmMgfCA0ICsrLS0NCj4+ Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+ Pj4+Pg0KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2lsYzEwMDAvbGludXhf d2xhbi5jIA0KPj4+Pj4+IGIvZHJpdmVycy9zdGFnaW5nL3dpbGMxMDAwL2xpbnV4X3dsYW4uYw0K Pj4+Pj4+IGluZGV4IDU0ZmU5ZDcuLjUwNzdjMzAgMTAwNjQ0DQo+Pj4+Pj4gLS0tIGEvZHJpdmVy cy9zdGFnaW5nL3dpbGMxMDAwL2xpbnV4X3dsYW4uYw0KPj4+Pj4+ICsrKyBiL2RyaXZlcnMvc3Rh Z2luZy93aWxjMTAwMC9saW51eF93bGFuLmMNCj4+Pj4+PiBAQCAtODQ5LDEwICs4NDksMTAgQEAg c3RhdGljIGludCB3bGFuX2luaXRpYWxpemVfdGhyZWFkcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQ0KPj4+Pj4+ICAgICAgICAgUFJJTlRfRChJTklUX0RCRywgIkNyZWF0aW5nIGt0aHJlYWQgZm9y IHRyYW5zbWlzc2lvblxuIik7DQo+Pj4+Pj4gICAgICAgICB3aWxjLT50eHFfdGhyZWFkID0ga3Ro cmVhZF9ydW4obGludXhfd2xhbl90eHFfdGFzaywgKHZvaWQgKilkZXYsDQo+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLX1RYUV9UQVNLIik7DQo+Pj4+Pj4gLSAg ICAgICBpZiAoIXdpbGMtPnR4cV90aHJlYWQpIHsNCj4+Pj4+PiArICAgICAgIGlmIChJU19FUlIo d2lsYy0+dHhxX3RocmVhZCkpIHsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgUFJJTlRfRVIoImNv dWxkbid0IGNyZWF0ZSBUWFEgdGhyZWFkXG4iKTsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgd2ls Yy0+Y2xvc2UgPSAwOw0KPj4+Pj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVOT0JVRlM7DQo+ Pj4+Pj4gKyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHdpbGMtPnR4cV90aHJlYWQpOw0K Pj4+Pj4NCj4+Pj4+IEFyZSB5b3Ugc3VyZSBjaGFuZ2luZyB0aGUgZXJyb3IgcmV0dXJuZWQgaXMg Y29ycmVjdD8gRG8gYWxsIHRoZSANCj4+Pj4+IGNhbGxlcnMgb2Ygd2xhbl9pbml0aWFsaXplX3Ro cmVhZHMoKSBoYW5kbGUgdGhlIGZ1bGwgcmFuZ2Ugb2YgDQo+Pj4+PiBlcnJvcnMgZnJvbSBrdGhy ZWFkX3J1bigpPw0KPj4+Pg0KPj4+PiBIYXZlIHlvdSBjaGVja2VkIHRoZSBkcml2ZXI/DQo+Pj4N Cj4+PiBJJ20gbWFraW5nIHN1cmUgeW91IGhhdmUuIEl0J3MgcG9zc2libGUgdGhhdCB0aGVyZSdz IGEgZ29vZCByZWFzb24gDQo+Pj4gd2h5IHRoaXMgcmV0dXJucyAtRU5PQlVGUyBJIHdhbnQgdG8g a25vdyB0aGF0IHlvdSd2ZSBhdCBsZWFzdCANCj4+PiBjb25zaWRlcmVkIHRoYXQgcG9zc2liaWxp dHkuDQo+Pg0KPj4gWW91IGhhdmUgbXkgY29uZmlybWF0aW9uLCBJJ3ZlIGNoZWNrZWQgdGhlIGNh bGwgc3RhY2sgYmVmb3JlIA0KPj4gcHVibGlzaGluZyB0aGlzIGZpeC4NCj4gDQo+IEF3ZXNvbWUu DQo+IA0KPj4+PiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbmNlIG9uIGluaXRpYWxpemF0aW9u LCB0aGUgY2hlY2sgb24gdGhlIA0KPj4+PiB1cHBlciBsYXllciBoYXMgImlmIChyZXQgPCAwKSBn b3RvIGV4aXRfYmFkbHk7IiBmb3JtLg0KPj4+DQo+Pj4gQW5kIHByYWN0aWNhbGx5IGV2ZXJ5dGhp bmcgaW4gdGhlIGNoYWluIHVwIHRvIG5ldF9kZXZpY2Vfb3BzIHVzZXMgDQo+Pj4gdGhlIHNhbWUg ZXJyb3IgaGFuZGxpbmcgc2NoZW1lIHNvIGl0J3MgcHJvYmFibHkgZmluZS4NCj4+DQo+PiBkZXZf b3BlbigpDQo+PiAgIF9fZGV2X29wZW4oKQ0KPj4gICAgIHdpbGNfbWFjX29wZW4oKQ0KPj4gICAg ICAgd2lsYzEwMDBfd2xhbl9pbml0KCkNCj4+ICAgICAgICAgd2xhbl9pbml0aWFsaXplX3RocmVh ZHMoKQ0KPj4NCj4+IE9oLCB3aHkga2VybmVsIHRocmVhZHMgd2l0aGluIGEgZHJpdmVyIGFyZSBp bml0J2VkL2Rlc3Ryb3llZCBvbiBlYWNoIA0KPj4gZGV2aWNlIHVwL2Rvd24gc3RhdGUgdHJhbnNp dGlvbj8NCj4gDQo+IFlvdSdsbCBoYXZlIHRvIGFzayB0aGUgZHJpdmVyIGRldmVsb3BlcnMuIEkg YmVsaWV2ZSB0aGlzIHdhcyBhIGNyb3NzIA0KPiBwbGF0Zm9ybSBkcml2ZXIgdGhhdCBpcyBjdXJy ZW50bHkgYmVpbmcgTGludXgtaXNlZCwgc28gSSdtIGd1ZXNzaW5nIA0KPiB0aGlzIGlzIHNvbWUg YXJ0ZWZhY3Qgb2YgdGhhdC4NCj4gDQo+Pj4gWW91IHNob3VsZCBhbHNvIGRvY3VtZW50IHRoaXMg Y2hhbmdlIGluIHRoZSBjb21taXQgbWVzc2FnZS4NCj4+DQo+PiBUaGUgY2hhbmdlIGlzIGRvY3Vt ZW50ZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLCB0YWtlIGEgbG9vay4gQnV0IEkgDQo+PiBkaWRu J3QgYWRkICJJIHN3ZWFyIGl0IGRvZXMgbm90IGJyZWFrIGFueXRoaW5nIiA7KQ0KPiANCj4gWW91 DQo+IDEuIGNvcnJlY3RlZCB0aGUgdGVzdCBpbiB0aGUgaWYgc3RhdGVtZW50IDIuIGNoYW5nZWQg dGhlIHJldHVybiB2YWx1ZSANCj4gZnJvbSAtRU5PQlVGUyBpbiB5b3VyIHBhdGNoLCBob3dldmVy IHlvdSBvbmx5IGRvY3VtZW50ZWQgdGhlIGZpcnN0IA0KPiBwYXJ0Lg0KDQpBZ3JlZSwgaXQgbWFr ZXMgc2Vuc2UuDQoNCj4gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIGEgY29tbWl0IG1lc3NhZ2UgYWxv bmcgdGhlIGxpbmVzIG9mOg0KPiANCj4gLS0tLT44LS0tLQ0KPiANCj4gVGhlIGt0aHJlYWRfcnVu KCkgZnVuY3Rpb24gcmV0dXJucyBlaXRoZXIgYSB2YWxpZCB0YXNrX3N0cnVjdCBvcg0KPiBFUlJf UFRSKCkgdmFsdWUsIHNvIHRoZSBjaGVjayBmb3IgTlVMTCBpcyBpbnZhbGlkLg0KPiANCj4gQWxz byByZXR1cm4gdGhlIGVycm9yIGZyb20ga3RocmVhZF9ydW4oKSBpbnN0ZWFkIG9mIC1FTk9CVUZT Lg0KPiANCj4gLS0tLTg8LS0tLQ0KPiANCg0KQmVmb3JlIHB1Ymxpc2hpbmcgdjIgbGV0IHNlZSBp ZiBkcml2ZXIgbWFpbnRhaW5lcnMgaGF2ZSBzb21ldGhpbmcgZWxzZSB0byBhZGQsIG9yIG1heSBi ZSBpdCBpcyBiZXR0ZXIgdG8gcHJlc2VydmUgLUVOT0JVRlMsIG9yIG1heSBiZSB0aGV5IGFyZSBz byBraW5kIHRvIHVwZGF0ZSB0aGUgY29tbWl0IG1lc3NhZ2Ugb24gcGF0Y2ggYXBwbGljYXRpb24u DQoNCkp1bGlhbiwgdGhhbmtzIGZvciByZXZpZXcuDQoNCi0tDQpXaXRoIGJlc3Qgd2lzaGVzLA0K VmxhZGltaXINCg== ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-03-10 6:49 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-09 23:13 [PATCH] staging: wilc1000: fix check of kthread_run() return value Vladimir Zapolskiy 2016-03-09 23:27 ` Julian Calaby 2016-03-09 23:30 ` Vladimir Zapolskiy 2016-03-09 23:42 ` Julian Calaby 2016-03-10 0:02 ` Vladimir Zapolskiy 2016-03-10 0:24 ` Julian Calaby 2016-03-10 0:36 ` Vladimir Zapolskiy 2016-03-10 6:49 ` Kim, Leo
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).