diff mbox

usb: mtu3: cleanup with list_first_entry_or_null()

Message ID 1495299931-10418-1-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit 9b4632ef3ff2097495e3724e7c4c1a307cbcfce4
Headers show

Commit Message

Masahiro Yamada May 20, 2017, 5:05 p.m. UTC
The combo of list_empty() and list_first_entry() can be replaced with
list_first_entry_or_null().

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 drivers/usb/mtu3/mtu3.h | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

-- 
2.7.4

Comments

Greg Kroah-Hartman May 20, 2017, 7:19 p.m. UTC | #1
On Sun, May 21, 2017 at 02:05:31AM +0900, Masahiro Yamada wrote:
> The combo of list_empty() and list_first_entry() can be replaced with

> list_first_entry_or_null().

> 

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> ---

> 

>  drivers/usb/mtu3/mtu3.h | 8 ++------

>  1 file changed, 2 insertions(+), 6 deletions(-)

> 

> diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h

> index aa6fd6a..7b6dc23 100644

> --- a/drivers/usb/mtu3/mtu3.h

> +++ b/drivers/usb/mtu3/mtu3.h

> @@ -356,12 +356,8 @@ static inline struct mtu3_ep *to_mtu3_ep(struct usb_ep *ep)

>  

>  static inline struct mtu3_request *next_request(struct mtu3_ep *mep)

>  {

> -	struct list_head *queue = &mep->req_list;

> -

> -	if (list_empty(queue))

> -		return NULL;

> -

> -	return list_first_entry(queue, struct mtu3_request, list);

> +	return list_first_entry_or_null(&mep->req_list, struct mtu3_request,

> +					list);


Even better, why is this an inlined function at all?  Why not just have
it "open coded" everywhere it is used?

thanks,

greg k-h
Chunfeng Yun (云春峰) May 22, 2017, 1:21 a.m. UTC | #2
Hi,
On Sat, 2017-05-20 at 21:19 +0200, Greg Kroah-Hartman wrote:
> On Sun, May 21, 2017 at 02:05:31AM +0900, Masahiro Yamada wrote:

> > The combo of list_empty() and list_first_entry() can be replaced with

> > list_first_entry_or_null().

> > 

> > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> > ---

> > 

> >  drivers/usb/mtu3/mtu3.h | 8 ++------

> >  1 file changed, 2 insertions(+), 6 deletions(-)

> > 

> > diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h

> > index aa6fd6a..7b6dc23 100644

> > --- a/drivers/usb/mtu3/mtu3.h

> > +++ b/drivers/usb/mtu3/mtu3.h

> > @@ -356,12 +356,8 @@ static inline struct mtu3_ep *to_mtu3_ep(struct usb_ep *ep)

> >  

> >  static inline struct mtu3_request *next_request(struct mtu3_ep *mep)

> >  {

> > -	struct list_head *queue = &mep->req_list;

> > -

> > -	if (list_empty(queue))

> > -		return NULL;

> > -

> > -	return list_first_entry(queue, struct mtu3_request, list);

> > +	return list_first_entry_or_null(&mep->req_list, struct mtu3_request,

> > +					list);

> 

> Even better, why is this an inlined function at all?  Why not just have

> it "open coded" everywhere it is used?

> 

This can avoid repeated function definition, currently it is used in
three files.

> thanks,

> 

> greg k-h
Greg Kroah-Hartman May 25, 2017, 12:26 p.m. UTC | #3
On Mon, May 22, 2017 at 09:21:33AM +0800, Chunfeng Yun wrote:
> Hi,

> On Sat, 2017-05-20 at 21:19 +0200, Greg Kroah-Hartman wrote:

> > On Sun, May 21, 2017 at 02:05:31AM +0900, Masahiro Yamada wrote:

> > > The combo of list_empty() and list_first_entry() can be replaced with

> > > list_first_entry_or_null().

> > > 

> > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> > > ---

> > > 

> > >  drivers/usb/mtu3/mtu3.h | 8 ++------

> > >  1 file changed, 2 insertions(+), 6 deletions(-)

> > > 

> > > diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h

> > > index aa6fd6a..7b6dc23 100644

> > > --- a/drivers/usb/mtu3/mtu3.h

> > > +++ b/drivers/usb/mtu3/mtu3.h

> > > @@ -356,12 +356,8 @@ static inline struct mtu3_ep *to_mtu3_ep(struct usb_ep *ep)

> > >  

> > >  static inline struct mtu3_request *next_request(struct mtu3_ep *mep)

> > >  {

> > > -	struct list_head *queue = &mep->req_list;

> > > -

> > > -	if (list_empty(queue))

> > > -		return NULL;

> > > -

> > > -	return list_first_entry(queue, struct mtu3_request, list);

> > > +	return list_first_entry_or_null(&mep->req_list, struct mtu3_request,

> > > +					list);

> > 

> > Even better, why is this an inlined function at all?  Why not just have

> > it "open coded" everywhere it is used?

> > 

> This can avoid repeated function definition, currently it is used in

> three files.


Ok, makes sense.

greg k-h
diff mbox

Patch

diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
index aa6fd6a..7b6dc23 100644
--- a/drivers/usb/mtu3/mtu3.h
+++ b/drivers/usb/mtu3/mtu3.h
@@ -356,12 +356,8 @@  static inline struct mtu3_ep *to_mtu3_ep(struct usb_ep *ep)
 
 static inline struct mtu3_request *next_request(struct mtu3_ep *mep)
 {
-	struct list_head *queue = &mep->req_list;
-
-	if (list_empty(queue))
-		return NULL;
-
-	return list_first_entry(queue, struct mtu3_request, list);
+	return list_first_entry_or_null(&mep->req_list, struct mtu3_request,
+					list);
 }
 
 static inline void mtu3_writel(void __iomem *base, u32 offset, u32 data)