diff mbox

wireless: p54: add handling of the signal case

Message ID 1421731543-13290-1-git-send-email-der.herr@hofr.at (mailing list archive)
State Accepted
Delegated to: Kalle Valo
Headers show

Commit Message

Nicholas Mc Guire Jan. 20, 2015, 5:25 a.m. UTC
if(!wait_for_completion_interruptible_timeout(...))
only handles the timeout case - this patch adds handling the
signal case the same as timeout.

Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
---

Only the timeout case was being handled, the signal case
(-ERESTARTSYS) was treated just like the case of successful
completion, which is most likely not reasonable.

p54_download_eeprom() is called in p54_read_eeprom() and will 
terminate if p54_download_eeprom() returned != 0 so the logic
should be correct - but this needs a check from someone who
knows the driver. Translating -ETIMEOUT to -EBUSY might be ok
not sure if -ERESTARTSYS also should be returned as -EBUSY ?

Patch was only compild tested with x86_64_defcofnig +
CONFIG_P54_COMMON=m, CONFIG_P54_PCI=m

Patch is against 3.19.0-rc5 -next-20150119

 drivers/net/wireless/p54/fwio.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Comments

Christian Lamparter Jan. 22, 2015, 6:13 p.m. UTC | #1
On Tuesday, January 20, 2015 06:25:43 AM Nicholas Mc Guire wrote:
> if(!wait_for_completion_interruptible_timeout(...))
> only handles the timeout case - this patch adds handling the
> signal case the same as timeout.
> 
> Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>

> diff --git a/drivers/net/wireless/p54/fwio.c b/drivers/net/wireless/p54/fwio.c
> index bc065e8..5367d51 100644
> --- a/drivers/net/wireless/p54/fwio.c
> +++ b/drivers/net/wireless/p54/fwio.c
> @@ -249,9 +250,11 @@ int p54_download_eeprom(struct p54_common *priv, void *buf,
>  
>  	p54_tx(priv, skb);
>  
> -	if (!wait_for_completion_interruptible_timeout(
> -	     &priv->eeprom_comp, HZ)) {
> -		wiphy_err(priv->hw->wiphy, "device does not respond!\n");
> +	timeout = wait_for_completion_interruptible_timeout(
> +			&priv->eeprom_comp, HZ);
> +	if (timeout <= 0) {
> +		wiphy_err(priv->hw->wiphy,
> +			"device does not respond or signal received!\n");
>  		ret = -EBUSY;
>  	}
>  	priv->eeprom = NULL;
> 

CHECK: Alignment should match open parenthesis
#98: FILE: drivers/net/wireless/p54/fwio.c:257:
+               wiphy_err(priv->hw->wiphy,
+                       "device does not respond or signal received!\n");

total: 0 errors, 0 warnings, 1 checks, 21 lines checked

--
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
Nicholas Mc Guire Jan. 23, 2015, 12:27 p.m. UTC | #2
On Thu, 22 Jan 2015, Christian Lamparter wrote:

> On Tuesday, January 20, 2015 06:25:43 AM Nicholas Mc Guire wrote:
> > if(!wait_for_completion_interruptible_timeout(...))
> > only handles the timeout case - this patch adds handling the
> > signal case the same as timeout.
> > 
> > Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
> Acked-by: Christian Lamparter <chunkeey@googlemail.com>
> 
> > diff --git a/drivers/net/wireless/p54/fwio.c b/drivers/net/wireless/p54/fwio.c
> > index bc065e8..5367d51 100644
> > --- a/drivers/net/wireless/p54/fwio.c
> > +++ b/drivers/net/wireless/p54/fwio.c
> > @@ -249,9 +250,11 @@ int p54_download_eeprom(struct p54_common *priv, void *buf,
> >  
> >  	p54_tx(priv, skb);
> >  
> > -	if (!wait_for_completion_interruptible_timeout(
> > -	     &priv->eeprom_comp, HZ)) {
> > -		wiphy_err(priv->hw->wiphy, "device does not respond!\n");
> > +	timeout = wait_for_completion_interruptible_timeout(
> > +			&priv->eeprom_comp, HZ);
> > +	if (timeout <= 0) {
> > +		wiphy_err(priv->hw->wiphy,
> > +			"device does not respond or signal received!\n");
> >  		ret = -EBUSY;
> >  	}
> >  	priv->eeprom = NULL;
> > 
> 
> CHECK: Alignment should match open parenthesis
> #98: FILE: drivers/net/wireless/p54/fwio.c:257:
> +               wiphy_err(priv->hw->wiphy,
> +                       "device does not respond or signal received!\n");
> 
> total: 0 errors, 0 warnings, 1 checks, 21 lines checked
> 

Tried fixing this up - but simply no clue what coding style
rule that might have violated - and my attempts to fix this
did not succeed - allignment seems righta - the complete siequence is:

        timeout = wait_for_completion_interruptible_timeout(
                        &priv->eeprom_comp, HZ);
        if (timeout <= 0) {
                wiphy_err(priv->hw->wiphy,
                        "device does not respond or signal received!\n");
                ret = -EBUSY;
        }

what am I overlooking ?

thx!
hofrat
--
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
Kalle Valo Jan. 23, 2015, 7:34 p.m. UTC | #3
> if(!wait_for_completion_interruptible_timeout(...))
> only handles the timeout case - this patch adds handling the
> signal case the same as timeout.
> 
> Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
> Acked-by: Christian Lamparter <chunkeey@googlemail.com>

Thanks, applied to wireless-drivers-next.git but I removed "wireless:" from the
title.

Kalle Valo
--
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
Christian Lamparter Jan. 23, 2015, 7:42 p.m. UTC | #4
On Friday, January 23, 2015 01:27:05 PM Nicholas Mc Guire wrote:
> On Thu, 22 Jan 2015, Christian Lamparter wrote:
> > On Tuesday, January 20, 2015 06:25:43 AM Nicholas Mc Guire wrote:
> > > @@ -249,9 +250,11 @@ int p54_download_eeprom(struct p54_common *priv, void *buf,
> > > +		wiphy_err(priv->hw->wiphy,
> > > +			"device does not respond or signal received!\n");
> 
> Tried fixing this up - but simply no clue what coding style
> rule that might have violated - and my attempts to fix this
> did not succeed - allignment seems righta - the complete siequence is:
> 
>         timeout = wait_for_completion_interruptible_timeout(
>                         &priv->eeprom_comp, HZ);
>         if (timeout <= 0) {
>                 wiphy_err(priv->hw->wiphy,
>                         "device does not respond or signal received!\n");
>                 ret = -EBUSY;
>         }
> 
> what am I overlooking ?
Not much, you might be confused simply because your editor and email program
doesn't use a fixed space font (or it is not enabled (yet)).

Fixing this is just a matter of adding a few extra spaces so the text lines
up with the open parenthesis.

original:
+		wiphy_err(priv->hw->wiphy,
+			"device does not respond or signal received!\n");

aligned:
+		wiphy_err(priv->hw->wiphy,
+				 "device does not respond or signal received!\n");

Regards,
Christian
--
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
diff mbox

Patch

diff --git a/drivers/net/wireless/p54/fwio.c b/drivers/net/wireless/p54/fwio.c
index bc065e8..5367d51 100644
--- a/drivers/net/wireless/p54/fwio.c
+++ b/drivers/net/wireless/p54/fwio.c
@@ -220,6 +220,7 @@  int p54_download_eeprom(struct p54_common *priv, void *buf,
 	struct sk_buff *skb;
 	size_t eeprom_hdr_size;
 	int ret = 0;
+	long timeout;
 
 	if (priv->fw_var >= 0x509)
 		eeprom_hdr_size = sizeof(*eeprom_hdr);
@@ -249,9 +250,11 @@  int p54_download_eeprom(struct p54_common *priv, void *buf,
 
 	p54_tx(priv, skb);
 
-	if (!wait_for_completion_interruptible_timeout(
-	     &priv->eeprom_comp, HZ)) {
-		wiphy_err(priv->hw->wiphy, "device does not respond!\n");
+	timeout = wait_for_completion_interruptible_timeout(
+			&priv->eeprom_comp, HZ);
+	if (timeout <= 0) {
+		wiphy_err(priv->hw->wiphy,
+			"device does not respond or signal received!\n");
 		ret = -EBUSY;
 	}
 	priv->eeprom = NULL;