From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753987AbbJ0Gx4 (ORCPT ); Tue, 27 Oct 2015 02:53:56 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:22901 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750913AbbJ0Gxy (ORCPT ); Tue, 27 Oct 2015 02:53:54 -0400 X-AuditID: cbfec7f5-f794b6d000001495-71-562f1f7f1d44 Subject: Re: [PATCH v4 3/7] usb: gadget: define free_ep_req as universal function To: "Felipe F. Tonello" , linux-usb@vger.kernel.org References: <1445878509-12084-1-git-send-email-eu@felipetonello.com> <1445878509-12084-4-git-send-email-eu@felipetonello.com> Cc: linux-kernel@vger.kernel.org, Felipe Balbi , Greg Kroah-Hartman , Andrzej Pietrasiewicz , Clemens Ladisch From: Robert Baldyga Message-id: <562F1F7E.3040908@samsung.com> Date: Tue, 27 Oct 2015 07:53:50 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-version: 1.0 In-reply-to: <1445878509-12084-4-git-send-email-eu@felipetonello.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPLMWRmVeSWpSXmKPExsVy+t/xy7r18vphBitmWVrMetnOYnHwfr3F khMPmSw6559lt2hevJ7N4vKuOWwWi5a1Mjuwe9z9+pDd48eKfmaP/XPXsHv0bVnF6HH8xnYm j8+b5ALYorhsUlJzMstSi/TtErgy2jpesBS8lKlYdP4gcwPjRfEuRk4OCQETiRnbXrJB2GIS F+6tB7K5OIQEljJKLL6whAnCecYo0fbjNitIlbBAsMSfM5uZQWwRAU+JE5/XgdlCAvUSJxte g3UzC5xklOh41g82lk1AR2LL9wmMIDavgJbErTNzwQaxCKhKTP7zCaxZVCBCYuKEBlaIGkGJ H5PvsYDYnAKuEqvPzQCawwE0VE/i/kUtkDCzgLzE5jVvmScwCsxC0jELoWoWkqoFjMyrGEVT S5MLipPSc430ihNzi0vz0vWS83M3MUKC/esOxqXHrA4xCnAwKvHwGlTohQmxJpYVV+YeYpTg YFYS4c3/CRTiTUmsrEotyo8vKs1JLT7EKM3BoiTOO3PX+xAhgfTEktTs1NSC1CKYLBMHp1QD Y0iH3e8lp/U2OHpLWW7QarqSM3ViyYIPQql3k68e/lEiX1K6W+tzGuei8g7/qoQFLzwKMrKt ly1jYBR+JeP72fbWvAkvLzrXLP8gbFTgUtE+bWVP7vptk15pH4kJ3+zf2V0Qlra820SJLfuT 1LydfQwnzeq8MjXdogM6mH/oveDcZPdInOGHEktxRqKhFnNRcSIAu4EXB3ICAAA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/26/2015 05:55 PM, Felipe F. Tonello wrote: > This function is shared between gadget functions, so this avoid unnecessary > duplicated code and potentially avoid memory leaks. > > Signed-off-by: Felipe F. Tonello > --- > drivers/usb/gadget/function/f_midi.c | 6 ------ > drivers/usb/gadget/function/f_sourcesink.c | 6 ------ > drivers/usb/gadget/function/g_zero.h | 1 - > drivers/usb/gadget/u_f.c | 8 ++++++++ > drivers/usb/gadget/u_f.h | 3 +-- > 5 files changed, 9 insertions(+), 15 deletions(-) > > diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c > index c19f154..4c01c8a 100644 > --- a/drivers/usb/gadget/function/f_midi.c > +++ b/drivers/usb/gadget/function/f_midi.c > @@ -202,12 +202,6 @@ static inline struct usb_request *midi_alloc_ep_req(struct usb_ep *ep, > return alloc_ep_req(ep, length, length); > } > > -static void free_ep_req(struct usb_ep *ep, struct usb_request *req) > -{ > - kfree(req->buf); > - usb_ep_free_request(ep, req); > -} > - > static const uint8_t f_midi_cin_length[] = { > 0, 0, 2, 3, 3, 1, 2, 3, 3, 3, 3, 3, 2, 2, 3, 1 > }; > diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c > index 3a5ae99..eedea7f 100644 > --- a/drivers/usb/gadget/function/f_sourcesink.c > +++ b/drivers/usb/gadget/function/f_sourcesink.c > @@ -307,12 +307,6 @@ static inline struct usb_request *ss_alloc_ep_req(struct usb_ep *ep, int len) > return alloc_ep_req(ep, len, buflen); > } > > -void free_ep_req(struct usb_ep *ep, struct usb_request *req) > -{ > - kfree(req->buf); > - usb_ep_free_request(ep, req); > -} > - > static void disable_ep(struct usb_composite_dev *cdev, struct usb_ep *ep) > { > int value; > diff --git a/drivers/usb/gadget/function/g_zero.h b/drivers/usb/gadget/function/g_zero.h > index 15f1809..5ed90b4 100644 > --- a/drivers/usb/gadget/function/g_zero.h > +++ b/drivers/usb/gadget/function/g_zero.h > @@ -59,7 +59,6 @@ void lb_modexit(void); > int lb_modinit(void); > > /* common utilities */ > -void free_ep_req(struct usb_ep *ep, struct usb_request *req); > void disable_endpoints(struct usb_composite_dev *cdev, > struct usb_ep *in, struct usb_ep *out, > struct usb_ep *iso_in, struct usb_ep *iso_out); > diff --git a/drivers/usb/gadget/u_f.c b/drivers/usb/gadget/u_f.c > index c6276f0..f78bd1f 100644 > --- a/drivers/usb/gadget/u_f.c > +++ b/drivers/usb/gadget/u_f.c > @@ -14,6 +14,7 @@ > #include > #include "u_f.h" > > +/* 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 *req; > @@ -30,3 +31,10 @@ struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len) > return req; > } > EXPORT_SYMBOL_GPL(alloc_ep_req); > + > +void free_ep_req(struct usb_ep *ep, struct usb_request *req) > +{ > + kfree(req->buf); > + usb_ep_free_request(ep, req); > +} > +EXPORT_SYMBOL_GPL(free_ep_req); > diff --git a/drivers/usb/gadget/u_f.h b/drivers/usb/gadget/u_f.h > index 1d5f0eb..2a1a6fb 100644 > --- a/drivers/usb/gadget/u_f.h > +++ b/drivers/usb/gadget/u_f.h > @@ -46,7 +46,6 @@ struct usb_ep; > struct usb_request; > > struct usb_request *alloc_ep_req(struct usb_ep *ep, int len, int default_len); > +void free_ep_req(struct usb_ep *ep, struct usb_request *req); > > #endif /* __U_F_H__ */ > - > - > Isn't it simple enough to be static inline? Best regards, Robert