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 chunkeey@xxxxxx Thu Jan 22 14:30:12 2009 From: Christian Lamparter <chunkeey@xxxxxx> Date: Tue, 20 Jan 2009 23:11:11 +0100 Subject: p54usb: fix traffic stalls / packet drop To: "Rafael J. Wysocki" <rjw@xxxxxxx>, Greg KH gr <gregkh@xxxxxxx>, Artur Skawina <art.08.09@xxxxxxxxx> Cc: "Larry Finger" <Larry.Finger@xxxxxxxxxxxx>, "Linux wireless" <linux-wireless@xxxxxxxxxxxxxxx> Message-ID: <200901202311.11854.chunkeey@xxxxxx> Content-Disposition: inline From: Christian Lamparter <chunkeey@xxxxxx> 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 <chunkeey@xxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx> --- 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 chunkeey@xxxxxx are queue-2.6.28/p54usb-fix-traffic-stalls-packet-drop.patch -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html