2009-01-20 00:05:36

by Rafael J. Wysocki

[permalink] [raw]
Subject: [Bug #12260] Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares)

This message has been generated automatically as a part of a report
of regressions introduced between 2.6.27 and 2.6.28.

The following bug entry is on the current list of known regressions
introduced between 2.6.27 and 2.6.28. Please verify if it still should
be listed and let me know (either way).


Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=12260
Subject : Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares)
Submitter : Larry Finger <[email protected]>
Date : 2008-12-20 10:45 (31 days old)
First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2b80848e3818fb1c8ccddc105b065a86c68afa9d
Patch : http://bugzilla.kernel.org/show_bug.cgi?id=12260




2009-01-20 22:11:08

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH -stable] p54usb: fix traffic stalls / packet drop

All p54usb devices need a explicit termination packet, in oder to finish the pending transfer properly.
Else, the firmware could freeze, or simply drop the frame.

Signed-off-by: Christian Lamparter <[email protected]>
Cc: stable <[email protected]>
---
Attached is the patch is for the stable series only.
Bugzilla reference: http://bugzilla.kernel.org/show_bug.cgi?id=12260
(wireless-testing needs a different one)

Rafael, I hope we can close this bug. Greg?
---
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
index 75d749b..be40369 100644
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -214,6 +214,8 @@ static void p54u_tx_3887(struct ieee80211_hw *dev, struct p54_control_hdr *data,
usb_fill_bulk_urb(data_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), data, len,
free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, dev);
+ addr_urb->transfer_flags |= URB_ZERO_PACKET;
+ data_urb->transfer_flags |= URB_ZERO_PACKET;

usb_submit_urb(addr_urb, GFP_ATOMIC);
usb_submit_urb(data_urb, GFP_ATOMIC);
@@ -251,6 +253,7 @@ static void p54u_tx_lm87(struct ieee80211_hw *dev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr,
len + sizeof(*hdr), free_on_tx ? p54u_tx_free_cb : p54u_tx_cb,
dev);
+ data_urb->transfer_flags |= URB_ZERO_PACKET;

usb_submit_urb(data_urb, GFP_ATOMIC);
}
@@ -293,11 +296,13 @@ static void p54u_tx_net2280(struct ieee80211_hw *dev, struct p54_control_hdr *da
usb_fill_bulk_urb(int_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg),
p54u_tx_free_cb, dev);
+ int_urb->transfer_flags |= URB_ZERO_PACKET;
usb_submit_urb(int_urb, GFP_ATOMIC);

usb_fill_bulk_urb(data_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr, len + sizeof(*hdr),
free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, dev);
+ data_urb->transfer_flags |= URB_ZERO_PACKET;
usb_submit_urb(data_urb, GFP_ATOMIC);
}


2009-01-20 23:54:20

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH -stable] p54usb: fix traffic stalls / packet drop

On Tue, Jan 20, 2009 at 02:39:57PM -0800, Greg KH wrote:
> On Tue, Jan 20, 2009 at 11:11:11PM +0100, Christian Lamparter wrote:
> > All p54usb devices need a explicit termination packet, in oder to finish the pending transfer properly.
> > Else, the firmware could freeze, or simply drop the frame.
> >
> > Signed-off-by: Christian Lamparter <[email protected]>
> > Cc: stable <[email protected]>
> > ---
> > Attached is the patch is for the stable series only.
> > Bugzilla reference: http://bugzilla.kernel.org/show_bug.cgi?id=12260
> > (wireless-testing needs a different one)
>
> What do you mean, this is for 2.6.28-stable or 2.6.27-stable only, and
> not 2.6.29? Why?

At least part of that patch is already in 2.6.29. I think Christian
may have combined another patch into the -stable version, one that
he posted today for -rc inclusion.

John
--
John W. Linville Linux should be at the core
[email protected] of your literate lifestyle.

2009-01-20 22:41:19

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH -stable] p54usb: fix traffic stalls / packet drop

On Tue, Jan 20, 2009 at 11:11:11PM +0100, Christian Lamparter wrote:
> All p54usb devices need a explicit termination packet, in oder to finish the pending transfer properly.
> Else, the firmware could freeze, or simply drop the frame.
>
> Signed-off-by: Christian Lamparter <[email protected]>
> Cc: stable <[email protected]>
> ---
> Attached is the patch is for the stable series only.
> Bugzilla reference: http://bugzilla.kernel.org/show_bug.cgi?id=12260
> (wireless-testing needs a different one)

What do you mean, this is for 2.6.28-stable or 2.6.27-stable only, and
not 2.6.29? Why?

thanks,

greg k-h

2009-01-11 18:54:56

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [Bug #12260] Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares)

On Sunday 11 January 2009, Larry Finger wrote:
> Rafael J. Wysocki wrote:
> > This message has been generated automatically as a part of a report
> > of regressions introduced between 2.6.27 and 2.6.28.
> >
> > The following bug entry is on the current list of known regressions
> > introduced between 2.6.27 and 2.6.28. Please verify if it still should
> > be listed and let me know (either way).
> >
> >
> > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=12260
> > Subject : Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares)
> > Submitter : Larry Finger <[email protected]>
> > Date : 2008-12-20 10:45 (23 days old)
> > First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2b80848e3818fb1c8ccddc105b065a86c68afa9d
> > Patch : http://bugzilla.kernel.org/show_bug.cgi?id=12260
>
> The patch has _NOT_ been applied.

Thanks for the update.

Rafael

2009-01-11 15:37:54

by Larry Finger

[permalink] [raw]
Subject: Re: [Bug #12260] Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares)

Rafael J. Wysocki wrote:
> This message has been generated automatically as a part of a report
> of regressions introduced between 2.6.27 and 2.6.28.
>
> The following bug entry is on the current list of known regressions
> introduced between 2.6.27 and 2.6.28. Please verify if it still should
> be listed and let me know (either way).
>
>
> Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=12260
> Subject : Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares)
> Submitter : Larry Finger <[email protected]>
> Date : 2008-12-20 10:45 (23 days old)
> First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2b80848e3818fb1c8ccddc105b065a86c68afa9d
> Patch : http://bugzilla.kernel.org/show_bug.cgi?id=12260

The patch has _NOT_ been applied.

Larry


2009-01-21 14:03:06

by Christian Lamparter

[permalink] [raw]
Subject: Re: [PATCH -stable] p54usb: fix traffic stalls / packet drop

On Wednesday 21 January 2009 00:56:26 John W. Linville wrote:
> On Tue, Jan 20, 2009 at 02:39:57PM -0800, Greg KH wrote:
> > On Tue, Jan 20, 2009 at 11:11:11PM +0100, Christian Lamparter wrote:
> > > All p54usb devices need a explicit termination packet, in oder to finish the pending transfer properly.
> > > Else, the firmware could freeze, or simply drop the frame.
> > >
> > > Signed-off-by: Christian Lamparter <[email protected]>
> > > Cc: stable <[email protected]>
> > > ---
> > > Attached is the patch is for the stable series only.
> > > Bugzilla reference: http://bugzilla.kernel.org/show_bug.cgi?id=12260
> > > (wireless-testing needs a different one)
> >
> > What do you mean, this is for 2.6.28-stable or 2.6.27-stable only, and
> > not 2.6.29? Why?
>
> At least part of that patch is already in 2.6.29. I think Christian
> may have combined another patch into the -stable version, one that
> he posted today for -rc inclusion.

Yup, the -stable patch includes the diff "hunks" for all devices.

linux-wireless is a different affair, because the fix for LM87
(aka "p54usb: fix random traffic stalls (LM87)" ) is already merged.
So the patch I posted on linux-wirelss (-rc inclusion) only has the
diffs for the 1st generation and 2nd generation with old firmwares.

Regards,
Chr

2009-01-22 22:49:03

by Greg KH

[permalink] [raw]
Subject: patch p54usb-fix-traffic-stalls-packet-drop.patch added to 2.6.28-stable tree


This is a note to let you know that we have just queued up the patch titled

Subject: p54usb: fix traffic stalls / packet drop

to the 2.6.28-stable tree. Its filename is

p54usb-fix-traffic-stalls-packet-drop.patch

A git repo of this tree can be found at
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary


>From [email protected] Thu Jan 22 14:30:12 2009
From: Christian Lamparter <[email protected]>
Date: Tue, 20 Jan 2009 23:11:11 +0100
Subject: p54usb: fix traffic stalls / packet drop
To: "Rafael J. Wysocki" <[email protected]>, Greg KH gr <[email protected]>, Artur Skawina <[email protected]>
Cc: "Larry Finger" <[email protected]>, "Linux wireless" <[email protected]>
Message-ID: <[email protected]>
Content-Disposition: inline

From: Christian Lamparter <[email protected]>

commit 00627f229c9807e4cb825a7ce36b886e2adf2229 upstream.

All p54usb devices need a explicit termination packet, in oder to finish the pending transfer properly.
Else, the firmware could freeze, or simply drop the frame.

Signed-off-by: Christian Lamparter <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/net/wireless/p54/p54usb.c | 5 +++++
1 file changed, 5 insertions(+)

--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -215,6 +215,8 @@ static void p54u_tx_3887(struct ieee8021
usb_fill_bulk_urb(data_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), data, len,
free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, dev);
+ addr_urb->transfer_flags |= URB_ZERO_PACKET;
+ data_urb->transfer_flags |= URB_ZERO_PACKET;

usb_submit_urb(addr_urb, GFP_ATOMIC);
usb_submit_urb(data_urb, GFP_ATOMIC);
@@ -252,6 +254,7 @@ static void p54u_tx_lm87(struct ieee8021
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr,
len + sizeof(*hdr), free_on_tx ? p54u_tx_free_cb : p54u_tx_cb,
dev);
+ data_urb->transfer_flags |= URB_ZERO_PACKET;

usb_submit_urb(data_urb, GFP_ATOMIC);
}
@@ -294,11 +297,13 @@ static void p54u_tx_net2280(struct ieee8
usb_fill_bulk_urb(int_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg),
p54u_tx_free_cb, dev);
+ int_urb->transfer_flags |= URB_ZERO_PACKET;
usb_submit_urb(int_urb, GFP_ATOMIC);

usb_fill_bulk_urb(data_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr, len + sizeof(*hdr),
free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, dev);
+ data_urb->transfer_flags |= URB_ZERO_PACKET;
usb_submit_urb(data_urb, GFP_ATOMIC);
}



Patches currently in stable-queue which might be from [email protected] are

queue-2.6.28/p54usb-fix-traffic-stalls-packet-drop.patch

2009-01-20 22:37:08

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH -stable] p54usb: fix traffic stalls / packet drop

On Tuesday 20 January 2009, Christian Lamparter wrote:
> All p54usb devices need a explicit termination packet, in oder to finish the pending transfer properly.
> Else, the firmware could freeze, or simply drop the frame.
>
> Signed-off-by: Christian Lamparter <[email protected]>
> Cc: stable <[email protected]>
> ---
> Attached is the patch is for the stable series only.
> Bugzilla reference: http://bugzilla.kernel.org/show_bug.cgi?id=12260
> (wireless-testing needs a different one)
>
> Rafael, I hope we can close this bug. Greg?

Sure, we can.

Thanks,
Rafael