Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1450807 > unrolled thread

[PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req()

Started by"Felipe F. Tonello" <eu@felipetonello.com>
First post2016-07-26 21:20 +0200
Last post2016-08-02 19:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req() "Felipe F. Tonello" <eu@felipetonello.com> - 2016-07-26 21:20 +0200
    Re: [PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req() Michal Nazarewicz <mina86@mina86.com> - 2016-07-27 22:10 +0200
      Re: [PATCH 7/9] usb: gadget: remove useless parameter in  alloc_ep_req() Felipe Ferreri Tonello <eu@felipetonello.com> - 2016-08-02 19:40 +0200

#1450807 — [PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req()

From"Felipe F. Tonello" <eu@felipetonello.com>
Date2016-07-26 21:20 +0200
Subject[PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req()
Message-ID<rZg3v-616-5@gated-at.bofh.it>
This parameter was not really necessary and gadget drivers would almost always
create an inline function to pass the same value to len and default_len.

So this patch also removes duplicate code from few drivers.

Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
---
 drivers/usb/gadget/function/f_hid.c        | 10 ++--------
 drivers/usb/gadget/function/f_loopback.c   |  9 +--------
 drivers/usb/gadget/function/f_midi.c       | 10 ++--------
 drivers/usb/gadget/function/f_sourcesink.c | 11 ++---------
 drivers/usb/gadget/u_f.c                   |  7 +++----
 drivers/usb/gadget/u_f.h                   |  2 +-
 6 files changed, 11 insertions(+), 38 deletions(-)

diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c
index 51980c50546d..e82a7468252e 100644
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -362,12 +362,6 @@ static int f_hidg_open(struct inode *inode, struct file *fd)
 /*-------------------------------------------------------------------------*/
 /*                                usb_function                             */
 
-static inline struct usb_request *hidg_alloc_ep_req(struct usb_ep *ep,
-						    unsigned length)
-{
-	return alloc_ep_req(ep, length, length);
-}
-
 static void hidg_set_report_complete(struct usb_ep *ep, struct usb_request *req)
 {
 	struct f_hidg *hidg = (struct f_hidg *) req->context;
@@ -549,8 +543,8 @@ static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
 		 */
 		for (i = 0; i < hidg->qlen && status == 0; i++) {
 			struct usb_request *req =
-					hidg_alloc_ep_req(hidg->out_ep,
-							  hidg->report_length);
+				alloc_ep_req(hidg->out_ep,
+					hidg->report_length);
 			if (req) {
 				req->complete = hidg_set_report_complete;
 				req->context  = hidg;
diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/function/f_loopback.c
index 3a9f8f9c77bd..701ee0f11c33 100644
--- a/drivers/usb/gadget/function/f_loopback.c
+++ b/drivers/usb/gadget/function/f_loopback.c
@@ -306,13 +306,6 @@ static void disable_loopback(struct f_loopback *loop)
 	VDBG(cdev, "%s disabled\n", loop->function.name);
 }
 
-static inline struct usb_request *lb_alloc_ep_req(struct usb_ep *ep, int len)
-{
-	struct f_loopback	*loop = ep->driver_data;
-
-	return alloc_ep_req(ep, len, loop->buflen);
-}
-
 static int alloc_requests(struct usb_composite_dev *cdev,
 			  struct f_loopback *loop)
 {
@@ -333,7 +326,7 @@ static int alloc_requests(struct usb_composite_dev *cdev,
 		if (!in_req)
 			goto fail;
 
-		out_req = lb_alloc_ep_req(loop->out_ep, 0);
+		out_req = alloc_ep_req(loop->out_ep, loop->buflen);
 		if (!out_req)
 			goto fail_in;
 
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index 3a47596afcab..abf26364b46f 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -208,12 +208,6 @@ static struct usb_gadget_strings *midi_strings[] = {
 	NULL,
 };
 
-static inline struct usb_request *midi_alloc_ep_req(struct usb_ep *ep,
-						    unsigned length)
-{
-	return alloc_ep_req(ep, length, length);
-}
-
 static const uint8_t f_midi_cin_length[] = {
 	0, 0, 2, 3, 3, 1, 2, 3, 3, 3, 3, 3, 2, 2, 3, 1
 };
@@ -365,7 +359,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
 	/* pre-allocate write usb requests to use on f_midi_transmit. */
 	while (kfifo_avail(&midi->in_req_fifo)) {
 		struct usb_request *req =
-			midi_alloc_ep_req(midi->in_ep, midi->buflen);
+			alloc_ep_req(midi->in_ep, midi->buflen);
 
 		if (req == NULL)
 			return -ENOMEM;
@@ -379,7 +373,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
 	/* allocate a bunch of read buffers and queue them all at once. */
 	for (i = 0; i < midi->qlen && err == 0; i++) {
 		struct usb_request *req =
-			midi_alloc_ep_req(midi->out_ep, midi->buflen);
+			alloc_ep_req(midi->out_ep, midi->buflen);
 
 		if (req == NULL)
 			return -ENOMEM;
diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c
index df0189ddfdd5..517d78d6da78 100644
--- a/drivers/usb/gadget/function/f_sourcesink.c
+++ b/drivers/usb/gadget/function/f_sourcesink.c
@@ -291,13 +291,6 @@ static struct usb_gadget_strings *sourcesink_strings[] = {
 
 /*-------------------------------------------------------------------------*/
 
-static inline struct usb_request *ss_alloc_ep_req(struct usb_ep *ep, int len)
-{
-	struct f_sourcesink		*ss = ep->driver_data;
-
-	return alloc_ep_req(ep, len, ss->buflen);
-}
-
 static void disable_ep(struct usb_composite_dev *cdev, struct usb_ep *ep)
 {
 	int			value;
@@ -606,11 +599,11 @@ static int source_sink_start_ep(struct f_sourcesink *ss, bool is_in,
 	} else {
 		ep = is_in ? ss->in_ep : ss->out_ep;
 		qlen = ss->bulk_qlen;
-		size = 0;
+		size = ss->buflen;
 	}
 
 	for (i = 0; i < qlen; i++) {
-		req = ss_alloc_ep_req(ep, size);
+		req = alloc_ep_req(ep, size);
 		if (!req)
 			return -ENOMEM;
 
diff --git a/drivers/usb/gadget/u_f.c b/drivers/usb/gadget/u_f.c
index d1933b0b76c3..dfc40f7155ac 100644
--- a/drivers/usb/gadget/u_f.c
+++ b/drivers/usb/gadget/u_f.c
@@ -14,15 +14,14 @@
 #include "u_f.h"
 #include <linux/usb/ch9.h>
 
-struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len)
+struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len)
 {
 	struct usb_request      *req;
 
 	req = usb_ep_alloc_request(ep, GFP_ATOMIC);
 	if (req) {
-		req->length = len ?: default_len;
-		if (usb_endpoint_dir_out(ep->desc))
-			req->length = usb_ep_align(ep, req->length);
+		req->length = usb_endpoint_dir_out(ep->desc) ?
+			usb_ep_align(ep, req->length) : len;
 		req->buf = kmalloc(req->length, GFP_ATOMIC);
 		if (!req->buf) {
 			usb_ep_free_request(ep, req);
diff --git a/drivers/usb/gadget/u_f.h b/drivers/usb/gadget/u_f.h
index 4247cc098a89..2852c9d7a85d 100644
--- a/drivers/usb/gadget/u_f.h
+++ b/drivers/usb/gadget/u_f.h
@@ -48,7 +48,7 @@ struct usb_ep;
 struct usb_request;
 
 /* Requests allocated via alloc_ep_req() must be freed by free_ep_req(). */
-struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len);
+struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len);
 static inline void free_ep_req(struct usb_ep *ep, struct usb_request *req)
 {
 	kfree(req->buf);
-- 
2.9.0

[toc] | [next] | [standalone]


#1451490

FromMichal Nazarewicz <mina86@mina86.com>
Date2016-07-27 22:10 +0200
Message-ID<rZDjr-46b-9@gated-at.bofh.it>
In reply to#1450807
On Tue, Jul 26 2016, Felipe F. Tonello wrote:
> This parameter was not really necessary and gadget drivers would almost always

I personally like when commit messages can be read without subject, so
perhaps:

	The default_length parameter of alloc_ep_req was not …

But that’s just me.

> create an inline function to pass the same value to len and default_len.
>
> So this patch also removes duplicate code from few drivers.
>
> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>

Acked-by: Michal Nazarewicz <mina86@mina86.com>

> ---
>  drivers/usb/gadget/function/f_hid.c        | 10 ++--------
>  drivers/usb/gadget/function/f_loopback.c   |  9 +--------
>  drivers/usb/gadget/function/f_midi.c       | 10 ++--------
>  drivers/usb/gadget/function/f_sourcesink.c | 11 ++---------
>  drivers/usb/gadget/u_f.c                   |  7 +++----
>  drivers/usb/gadget/u_f.h                   |  2 +-
>  6 files changed, 11 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c
> index 51980c50546d..e82a7468252e 100644
> --- a/drivers/usb/gadget/function/f_hid.c
> +++ b/drivers/usb/gadget/function/f_hid.c
> @@ -362,12 +362,6 @@ static int f_hidg_open(struct inode *inode, struct file *fd)
>  /*-------------------------------------------------------------------------*/
>  /*                                usb_function                             */
>  
> -static inline struct usb_request *hidg_alloc_ep_req(struct usb_ep *ep,
> -						    unsigned length)
> -{
> -	return alloc_ep_req(ep, length, length);
> -}
> -
>  static void hidg_set_report_complete(struct usb_ep *ep, struct usb_request *req)
>  {
>  	struct f_hidg *hidg = (struct f_hidg *) req->context;
> @@ -549,8 +543,8 @@ static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>  		 */
>  		for (i = 0; i < hidg->qlen && status == 0; i++) {
>  			struct usb_request *req =
> -					hidg_alloc_ep_req(hidg->out_ep,
> -							  hidg->report_length);
> +				alloc_ep_req(hidg->out_ep,
> +					hidg->report_length);
>  			if (req) {
>  				req->complete = hidg_set_report_complete;
>  				req->context  = hidg;
> diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/function/f_loopback.c
> index 3a9f8f9c77bd..701ee0f11c33 100644
> --- a/drivers/usb/gadget/function/f_loopback.c
> +++ b/drivers/usb/gadget/function/f_loopback.c
> @@ -306,13 +306,6 @@ static void disable_loopback(struct f_loopback *loop)
>  	VDBG(cdev, "%s disabled\n", loop->function.name);
>  }
>  
> -static inline struct usb_request *lb_alloc_ep_req(struct usb_ep *ep, int len)
> -{
> -	struct f_loopback	*loop = ep->driver_data;
> -
> -	return alloc_ep_req(ep, len, loop->buflen);
> -}
> -
>  static int alloc_requests(struct usb_composite_dev *cdev,
>  			  struct f_loopback *loop)
>  {
> @@ -333,7 +326,7 @@ static int alloc_requests(struct usb_composite_dev *cdev,
>  		if (!in_req)
>  			goto fail;
>  
> -		out_req = lb_alloc_ep_req(loop->out_ep, 0);
> +		out_req = alloc_ep_req(loop->out_ep, loop->buflen);
>  		if (!out_req)
>  			goto fail_in;
>  
> diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
> index 3a47596afcab..abf26364b46f 100644
> --- a/drivers/usb/gadget/function/f_midi.c
> +++ b/drivers/usb/gadget/function/f_midi.c
> @@ -208,12 +208,6 @@ static struct usb_gadget_strings *midi_strings[] = {
>  	NULL,
>  };
>  
> -static inline struct usb_request *midi_alloc_ep_req(struct usb_ep *ep,
> -						    unsigned length)
> -{
> -	return alloc_ep_req(ep, length, length);
> -}
> -
>  static const uint8_t f_midi_cin_length[] = {
>  	0, 0, 2, 3, 3, 1, 2, 3, 3, 3, 3, 3, 2, 2, 3, 1
>  };
> @@ -365,7 +359,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>  	/* pre-allocate write usb requests to use on f_midi_transmit. */
>  	while (kfifo_avail(&midi->in_req_fifo)) {
>  		struct usb_request *req =
> -			midi_alloc_ep_req(midi->in_ep, midi->buflen);
> +			alloc_ep_req(midi->in_ep, midi->buflen);
>  
>  		if (req == NULL)
>  			return -ENOMEM;
> @@ -379,7 +373,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>  	/* allocate a bunch of read buffers and queue them all at once. */
>  	for (i = 0; i < midi->qlen && err == 0; i++) {
>  		struct usb_request *req =
> -			midi_alloc_ep_req(midi->out_ep, midi->buflen);
> +			alloc_ep_req(midi->out_ep, midi->buflen);
>  
>  		if (req == NULL)
>  			return -ENOMEM;
> diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c
> index df0189ddfdd5..517d78d6da78 100644
> --- a/drivers/usb/gadget/function/f_sourcesink.c
> +++ b/drivers/usb/gadget/function/f_sourcesink.c
> @@ -291,13 +291,6 @@ static struct usb_gadget_strings *sourcesink_strings[] = {
>  
>  /*-------------------------------------------------------------------------*/
>  
> -static inline struct usb_request *ss_alloc_ep_req(struct usb_ep *ep, int len)
> -{
> -	struct f_sourcesink		*ss = ep->driver_data;
> -
> -	return alloc_ep_req(ep, len, ss->buflen);
> -}
> -
>  static void disable_ep(struct usb_composite_dev *cdev, struct usb_ep *ep)
>  {
>  	int			value;
> @@ -606,11 +599,11 @@ static int source_sink_start_ep(struct f_sourcesink *ss, bool is_in,
>  	} else {
>  		ep = is_in ? ss->in_ep : ss->out_ep;
>  		qlen = ss->bulk_qlen;
> -		size = 0;
> +		size = ss->buflen;
>  	}
>  
>  	for (i = 0; i < qlen; i++) {
> -		req = ss_alloc_ep_req(ep, size);
> +		req = alloc_ep_req(ep, size);
>  		if (!req)
>  			return -ENOMEM;
>  
> diff --git a/drivers/usb/gadget/u_f.c b/drivers/usb/gadget/u_f.c
> index d1933b0b76c3..dfc40f7155ac 100644
> --- a/drivers/usb/gadget/u_f.c
> +++ b/drivers/usb/gadget/u_f.c
> @@ -14,15 +14,14 @@
>  #include "u_f.h"
>  #include <linux/usb/ch9.h>
>  
> -struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len)
> +struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len)
>  {
>  	struct usb_request      *req;
>  
>  	req = usb_ep_alloc_request(ep, GFP_ATOMIC);
>  	if (req) {
> -		req->length = len ?: default_len;
> -		if (usb_endpoint_dir_out(ep->desc))
> -			req->length = usb_ep_align(ep, req->length);
> +		req->length = usb_endpoint_dir_out(ep->desc) ?
> +			usb_ep_align(ep, req->length) : len;
>  		req->buf = kmalloc(req->length, GFP_ATOMIC);
>  		if (!req->buf) {
>  			usb_ep_free_request(ep, req);
> diff --git a/drivers/usb/gadget/u_f.h b/drivers/usb/gadget/u_f.h
> index 4247cc098a89..2852c9d7a85d 100644
> --- a/drivers/usb/gadget/u_f.h
> +++ b/drivers/usb/gadget/u_f.h
> @@ -48,7 +48,7 @@ struct usb_ep;
>  struct usb_request;
>  
>  /* Requests allocated via alloc_ep_req() must be freed by free_ep_req(). */
> -struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len);
> +struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len);
>  static inline void free_ep_req(struct usb_ep *ep, struct usb_request *req)
>  {
>  	kfree(req->buf);
> -- 
> 2.9.0
>

-- 
Best regards
ミハウ “𝓶𝓲𝓷𝓪86” ナザレヴイツ
«If at first you don’t succeed, give up skydiving»

[toc] | [prev] | [next] | [standalone]


#1455157 — Re: [PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req()

FromFelipe Ferreri Tonello <eu@felipetonello.com>
Date2016-08-02 19:40 +0200
SubjectRe: [PATCH 7/9] usb: gadget: remove useless parameter in alloc_ep_req()
Message-ID<s1LPA-7DB-35@gated-at.bofh.it>
In reply to#1451490

[Multipart message — attachments visible in raw view] — view raw

Hi Michal,

On 27/07/16 21:02, Michal Nazarewicz wrote:
> On Tue, Jul 26 2016, Felipe F. Tonello wrote:
>> This parameter was not really necessary and gadget drivers would almost always
> 
> I personally like when commit messages can be read without subject, so
> perhaps:
> 
> 	The default_length parameter of alloc_ep_req was not …
> 
> But that’s just me.

Good judgment.

> 
>> create an inline function to pass the same value to len and default_len.
>>
>> So this patch also removes duplicate code from few drivers.
>>
>> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
> 
> Acked-by: Michal Nazarewicz <mina86@mina86.com>
> 
>> ---
>>  drivers/usb/gadget/function/f_hid.c        | 10 ++--------
>>  drivers/usb/gadget/function/f_loopback.c   |  9 +--------
>>  drivers/usb/gadget/function/f_midi.c       | 10 ++--------
>>  drivers/usb/gadget/function/f_sourcesink.c | 11 ++---------
>>  drivers/usb/gadget/u_f.c                   |  7 +++----
>>  drivers/usb/gadget/u_f.h                   |  2 +-
>>  6 files changed, 11 insertions(+), 38 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c
>> index 51980c50546d..e82a7468252e 100644
>> --- a/drivers/usb/gadget/function/f_hid.c
>> +++ b/drivers/usb/gadget/function/f_hid.c
>> @@ -362,12 +362,6 @@ static int f_hidg_open(struct inode *inode, struct file *fd)
>>  /*-------------------------------------------------------------------------*/
>>  /*                                usb_function                             */
>>  
>> -static inline struct usb_request *hidg_alloc_ep_req(struct usb_ep *ep,
>> -						    unsigned length)
>> -{
>> -	return alloc_ep_req(ep, length, length);
>> -}
>> -
>>  static void hidg_set_report_complete(struct usb_ep *ep, struct usb_request *req)
>>  {
>>  	struct f_hidg *hidg = (struct f_hidg *) req->context;
>> @@ -549,8 +543,8 @@ static int hidg_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>>  		 */
>>  		for (i = 0; i < hidg->qlen && status == 0; i++) {
>>  			struct usb_request *req =
>> -					hidg_alloc_ep_req(hidg->out_ep,
>> -							  hidg->report_length);
>> +				alloc_ep_req(hidg->out_ep,
>> +					hidg->report_length);
>>  			if (req) {
>>  				req->complete = hidg_set_report_complete;
>>  				req->context  = hidg;
>> diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/function/f_loopback.c
>> index 3a9f8f9c77bd..701ee0f11c33 100644
>> --- a/drivers/usb/gadget/function/f_loopback.c
>> +++ b/drivers/usb/gadget/function/f_loopback.c
>> @@ -306,13 +306,6 @@ static void disable_loopback(struct f_loopback *loop)
>>  	VDBG(cdev, "%s disabled\n", loop->function.name);
>>  }
>>  
>> -static inline struct usb_request *lb_alloc_ep_req(struct usb_ep *ep, int len)
>> -{
>> -	struct f_loopback	*loop = ep->driver_data;
>> -
>> -	return alloc_ep_req(ep, len, loop->buflen);
>> -}
>> -
>>  static int alloc_requests(struct usb_composite_dev *cdev,
>>  			  struct f_loopback *loop)
>>  {
>> @@ -333,7 +326,7 @@ static int alloc_requests(struct usb_composite_dev *cdev,
>>  		if (!in_req)
>>  			goto fail;
>>  
>> -		out_req = lb_alloc_ep_req(loop->out_ep, 0);
>> +		out_req = alloc_ep_req(loop->out_ep, loop->buflen);
>>  		if (!out_req)
>>  			goto fail_in;
>>  
>> diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
>> index 3a47596afcab..abf26364b46f 100644
>> --- a/drivers/usb/gadget/function/f_midi.c
>> +++ b/drivers/usb/gadget/function/f_midi.c
>> @@ -208,12 +208,6 @@ static struct usb_gadget_strings *midi_strings[] = {
>>  	NULL,
>>  };
>>  
>> -static inline struct usb_request *midi_alloc_ep_req(struct usb_ep *ep,
>> -						    unsigned length)
>> -{
>> -	return alloc_ep_req(ep, length, length);
>> -}
>> -
>>  static const uint8_t f_midi_cin_length[] = {
>>  	0, 0, 2, 3, 3, 1, 2, 3, 3, 3, 3, 3, 2, 2, 3, 1
>>  };
>> @@ -365,7 +359,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>>  	/* pre-allocate write usb requests to use on f_midi_transmit. */
>>  	while (kfifo_avail(&midi->in_req_fifo)) {
>>  		struct usb_request *req =
>> -			midi_alloc_ep_req(midi->in_ep, midi->buflen);
>> +			alloc_ep_req(midi->in_ep, midi->buflen);
>>  
>>  		if (req == NULL)
>>  			return -ENOMEM;
>> @@ -379,7 +373,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
>>  	/* allocate a bunch of read buffers and queue them all at once. */
>>  	for (i = 0; i < midi->qlen && err == 0; i++) {
>>  		struct usb_request *req =
>> -			midi_alloc_ep_req(midi->out_ep, midi->buflen);
>> +			alloc_ep_req(midi->out_ep, midi->buflen);
>>  
>>  		if (req == NULL)
>>  			return -ENOMEM;
>> diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c
>> index df0189ddfdd5..517d78d6da78 100644
>> --- a/drivers/usb/gadget/function/f_sourcesink.c
>> +++ b/drivers/usb/gadget/function/f_sourcesink.c
>> @@ -291,13 +291,6 @@ static struct usb_gadget_strings *sourcesink_strings[] = {
>>  
>>  /*-------------------------------------------------------------------------*/
>>  
>> -static inline struct usb_request *ss_alloc_ep_req(struct usb_ep *ep, int len)
>> -{
>> -	struct f_sourcesink		*ss = ep->driver_data;
>> -
>> -	return alloc_ep_req(ep, len, ss->buflen);
>> -}
>> -
>>  static void disable_ep(struct usb_composite_dev *cdev, struct usb_ep *ep)
>>  {
>>  	int			value;
>> @@ -606,11 +599,11 @@ static int source_sink_start_ep(struct f_sourcesink *ss, bool is_in,
>>  	} else {
>>  		ep = is_in ? ss->in_ep : ss->out_ep;
>>  		qlen = ss->bulk_qlen;
>> -		size = 0;
>> +		size = ss->buflen;
>>  	}
>>  
>>  	for (i = 0; i < qlen; i++) {
>> -		req = ss_alloc_ep_req(ep, size);
>> +		req = alloc_ep_req(ep, size);
>>  		if (!req)
>>  			return -ENOMEM;
>>  
>> diff --git a/drivers/usb/gadget/u_f.c b/drivers/usb/gadget/u_f.c
>> index d1933b0b76c3..dfc40f7155ac 100644
>> --- a/drivers/usb/gadget/u_f.c
>> +++ b/drivers/usb/gadget/u_f.c
>> @@ -14,15 +14,14 @@
>>  #include "u_f.h"
>>  #include <linux/usb/ch9.h>
>>  
>> -struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len)
>> +struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len)
>>  {
>>  	struct usb_request      *req;
>>  
>>  	req = usb_ep_alloc_request(ep, GFP_ATOMIC);
>>  	if (req) {
>> -		req->length = len ?: default_len;
>> -		if (usb_endpoint_dir_out(ep->desc))
>> -			req->length = usb_ep_align(ep, req->length);
>> +		req->length = usb_endpoint_dir_out(ep->desc) ?
>> +			usb_ep_align(ep, req->length) : len;
>>  		req->buf = kmalloc(req->length, GFP_ATOMIC);
>>  		if (!req->buf) {
>>  			usb_ep_free_request(ep, req);
>> diff --git a/drivers/usb/gadget/u_f.h b/drivers/usb/gadget/u_f.h
>> index 4247cc098a89..2852c9d7a85d 100644
>> --- a/drivers/usb/gadget/u_f.h
>> +++ b/drivers/usb/gadget/u_f.h
>> @@ -48,7 +48,7 @@ struct usb_ep;
>>  struct usb_request;
>>  
>>  /* Requests allocated via alloc_ep_req() must be freed by free_ep_req(). */
>> -struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len);
>> +struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len);
>>  static inline void free_ep_req(struct usb_ep *ep, struct usb_request *req)
>>  {
>>  	kfree(req->buf);
>> -- 
>> 2.9.0
>>
> 

-- 
Felipe

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web