From: Wei Yongjun Date: Tue, 21 Aug 2012 03:28:45 +0000 (+0800) Subject: USB: mos7720: fix to use list_for_each_entry_safe() when delete items X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=67990472c77b06cc591dd59923542f64da91453d;p=openwrt%2Fstaging%2Fblogic.git USB: mos7720: fix to use list_for_each_entry_safe() when delete items Since we will be removing items off the list using list_del() we need to use a safer version of the list_for_each_entry() macro aptly named list_for_each_entry_safe(). We should use the safe macro if the loop involves deletions of items. Signed-off-by: Wei Yongjun Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c index a07dd3c8cfef..9817d9d654c1 100644 --- a/drivers/usb/serial/mos7720.c +++ b/drivers/usb/serial/mos7720.c @@ -281,7 +281,7 @@ static void send_deferred_urbs(unsigned long _mos_parport) int ret_val; unsigned long flags; struct mos7715_parport *mos_parport = (void *)_mos_parport; - struct urbtracker *urbtrack; + struct urbtracker *urbtrack, *tmp; struct list_head *cursor, *next; /* if release function ran, game over */ @@ -312,7 +312,7 @@ static void send_deferred_urbs(unsigned long _mos_parport) /* move contents of deferred_urbs list to active_urbs list and submit */ list_for_each_safe(cursor, next, &mos_parport->deferred_urbs) list_move_tail(cursor, &mos_parport->active_urbs); - list_for_each_entry(urbtrack, &mos_parport->active_urbs, + list_for_each_entry_safe(urbtrack, tmp, &mos_parport->active_urbs, urblist_entry) { ret_val = usb_submit_urb(urbtrack->urb, GFP_ATOMIC); dbg("%s: urb submitted", __func__);