Hi Robert, On 27/10/15 06:53, Robert Baldyga wrote: > 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 <e...@felipetonello.com> >> --- >> 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 <linux/usb/gadget.h> >> #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?
inline yes. And the compiler will do it automatically. But I can add it for clarity. Make it static it doesn't make sense. This function is exported in the kernel. -- Felipe -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html