Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933730AbaGQOzf (ORCPT ); Thu, 17 Jul 2014 10:55:35 -0400 Received: from iolanthe.rowland.org ([192.131.102.54]:54773 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S932865AbaGQOzd (ORCPT ); Thu, 17 Jul 2014 10:55:33 -0400 Date: Thu, 17 Jul 2014 10:55:32 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Amit Virdi cc: linux-usb@vger.kernel.org, , , , , , Subject: Re: [PATCH] usb: core: allow zero packet flag for interrupt urbs In-Reply-To: <5255a576a562f60c185e89b5937357290242fe1e.1405586653.git.amit.virdi@st.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 17 Jul 2014, Amit Virdi wrote: > Section 4.4.7.2 of the USB3.0 spec says: > A zero-length data payload is a valid transfer and may be useful for > some implementations. > > So, extend the logic of allowing URB_ZERO_PACKET to interrupt urbs too. > Otherwise, the kernel throws error of BOGUS transfer flags. > > Signed-off-by: Amit Virdi > --- > drivers/usb/core/urb.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c > index 991386c..a136246 100644 > --- a/drivers/usb/core/urb.c > +++ b/drivers/usb/core/urb.c > @@ -460,6 +460,10 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags) > case USB_ENDPOINT_XFER_CONTROL: > allowed |= URB_NO_FSBR; /* only affects UHCI */ > /* FALLTHROUGH */ > + case USB_ENDPOINT_XFER_INT: > + if (is_out) > + allowed |= URB_ZERO_PACKET; > + /* FALLTHROUGH */ > default: /* all non-iso endpoints */ > if (!is_out) > allowed |= URB_SHORT_NOT_OK; I can't say this is actually wrong, but have you ever encountered a situation where this would be needed? How often does anyone need to do a multi-packet transfer over an interrupt endpoint? Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/