2010-08-22 20:41:40

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH] p54usb: fix off-by-one on !CONFIG_PM

The ISL3887 chip needs a USB reset, whenever the
usb-frontend module "p54usb" is reloaded.

This patch fixes an off-by-one bug, if the user
is running a kernel without the CONFIG_PM option
set and for some reason (e.g.: compat-wireless)
wants to switch between different p54usb modules.

Cc: <[email protected]>
Signed-off-by: Christian Lamparter <[email protected]>
---
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
index ad59595..063248b 100644
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -930,8 +930,8 @@ static int __devinit p54u_probe(struct usb_interface *intf,
#ifdef CONFIG_PM
/* ISL3887 needs a full reset on resume */
udev->reset_resume = 1;
+#endif /* CONFIG_PM */
err = p54u_device_reset(dev);
-#endif

priv->hw_type = P54U_3887;
dev->extra_tx_headroom += sizeof(struct lm87_tx_hdr);


2010-08-22 21:01:59

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] p54usb: fix off-by-one on !CONFIG_PM

On 08/22/2010 03:41 PM, Christian Lamparter wrote:
> The ISL3887 chip needs a USB reset, whenever the
> usb-frontend module "p54usb" is reloaded.
>
> This patch fixes an off-by-one bug, if the user
> is running a kernel without the CONFIG_PM option
> set and for some reason (e.g.: compat-wireless)
> wants to switch between different p54usb modules.
>
> Cc: <[email protected]>
> Signed-off-by: Christian Lamparter <[email protected]>
> ---
> diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
> index ad59595..063248b 100644
> --- a/drivers/net/wireless/p54/p54usb.c
> +++ b/drivers/net/wireless/p54/p54usb.c
> @@ -930,8 +930,8 @@ static int __devinit p54u_probe(struct usb_interface *intf,
> #ifdef CONFIG_PM
> /* ISL3887 needs a full reset on resume */
> udev->reset_resume = 1;
> +#endif /* CONFIG_PM */
> err = p54u_device_reset(dev);
> -#endif
>
> priv->hw_type = P54U_3887;
> dev->extra_tx_headroom += sizeof(struct lm87_tx_hdr);

ACK.

Larry