staging: ozwpan: use list_move_tail instead of list_del/list_add_tail
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Wed, 5 Sep 2012 06:48:48 +0000 (14:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Sep 2012 18:58:24 +0000 (11:58 -0700)
Using list_move_tail() instead of list_del() + list_add_tail().

spatch with a semantic match is used to found this problem.
(http://coccinelle.lip6.fr/)

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ozwpan/ozhcd.c

index 76821cb6d25f5afe0e38a60a55b4561d0d20dc0b..2e087acf1578998c292362093e68449d11766560 100644 (file)
@@ -1068,8 +1068,7 @@ int oz_hcd_heartbeat(void *hport)
                        ep->credit -= urb->number_of_packets;
                        oz_event_log(OZ_EVT_EP_CREDIT, ep->ep_num, 0, 0,
                                ep->credit);
-                       list_del(&urbl->link);
-                       list_add_tail(&urbl->link, &xfr_list);
+                       list_move_tail(&urbl->link, &xfr_list);
                }
        }
        spin_unlock_bh(&ozhcd->hcd_lock);
@@ -1150,8 +1149,7 @@ int oz_hcd_heartbeat(void *hport)
                        urb->error_count = 0;
                        urb->start_frame = ep->start_frame;
                        ep->start_frame += urb->number_of_packets;
-                       list_del(&urbl->link);
-                       list_add_tail(&urbl->link, &xfr_list);
+                       list_move_tail(&urbl->link, &xfr_list);
                        ep->credit -= urb->number_of_packets;
                        oz_event_log(OZ_EVT_EP_CREDIT, ep->ep_num | USB_DIR_IN,
                                0, 0, ep->credit);
@@ -1183,8 +1181,7 @@ int oz_hcd_heartbeat(void *hport)
                                oz_trace("%ld: Request 0x%p timeout\n",
                                                now, urbl->urb);
                                urbl->submit_jiffies = now;
-                               list_del(e);
-                               list_add_tail(e, &xfr_list);
+                               list_move_tail(e, &xfr_list);
                        }
                }
                if (!list_empty(&ep->urb_list))
@@ -1307,16 +1304,14 @@ static void oz_clean_endpoints_for_interface(struct usb_hcd *hcd,
                        port->out_ep[i] = 0;
                        /* Remove from isoc list if present.
                         */
-                       list_del(e);
-                       list_add_tail(e, &ep_list);
+                       list_move_tail(e, &ep_list);
                }
                /* Gather IN endpoints.
                 */
                if ((mask & (1<<(i+OZ_NB_ENDPOINTS))) && port->in_ep[i]) {
                        e = &port->in_ep[i]->link;
                        port->in_ep[i] = 0;
-                       list_del(e);
-                       list_add_tail(e, &ep_list);
+                       list_move_tail(e, &ep_list);
                }
        }
        spin_unlock_bh(&ozhcd->hcd_lock);