lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 25 Feb 2013 15:21:23 -0800
From:	Bing Zhao <bzhao@...vell.com>
To:	Lubomir Rintel <lkundrak@...sk>, Daniel Drake <dsd@...top.org>
CC:	Harro Haan <hrhaan@...il.com>, Dan Williams <dcbw@...hat.com>,
	"libertas-dev@...ts.infradead.org" <libertas-dev@...ts.infradead.org>,
	"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
	"linux-wireless@...r.kernel.org" <linux-wireless@...r.kernel.org>,
	"John W. Linville" <linville@...driver.com>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] libertas sdio: remove CMD_FUNC_INIT call

Hi Daniel,

> > There seems to be a race condition in lbs_thread().
> >
> > At line 582:
> >  582                 if (!priv->fw_ready)
> >  583                         continue;
> >
> > The fw_ready is 0, so you never get the chance to execute the FUNC_INIT command.
> >
> >  617                 /* Execute the next command */
> >  618                 if (!priv->dnld_sent && !priv->cur_cmd)
> >  619                         lbs_execute_next_command(priv);
> >
> >
> > Could you try the following change?
> >
> > diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libe
> > index 739309e..8f5d977 100644
> > --- a/drivers/net/wireless/libertas/if_sdio.c
> > +++ b/drivers/net/wireless/libertas/if_sdio.c
> > @@ -825,6 +825,8 @@ static void if_sdio_finish_power_on(struct if_sdio_card *car
> >
> >         sdio_release_host(func);
> >
> > +       priv->fw_ready = 1;
> > +
> >         /*
> >          * FUNC_INIT is required for SD8688 WLAN/BT multiple functions
> >          */
> > @@ -839,7 +841,6 @@ static void if_sdio_finish_power_on(struct if_sdio_card *car
> >                         netdev_alert(priv->dev, "CMD_FUNC_INIT cmd failed\n");
> >         }
> >
> > -       priv->fw_ready = 1;
> >         wake_up(&card->pwron_waitq);
> >
> >         if (!card->started) {
> 
> Thank you.
> Everything seem to work fine for me with the patch applied.

Do you have any concern for OLPC platforms with above change? If it doesn't seem to break OLPC I will send a patch to the list.

Thanks,
Bing

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ