From a69228deefea57ca27c17a196e5727b091c6d323 Mon Sep 17 00:00:00 2001 From: Matthias Kaehlcke Date: Mon, 9 Jul 2007 12:03:07 -0700 Subject: [PATCH] USB: drivers/block/ub.c: use list_for_each_entry() Low performance USB storage driver: Use list_for_each_entry() instead of list_for_each() Signed-off-by: Matthias Kaehlcke Cc: Pete Zaitcev Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman --- drivers/block/ub.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/drivers/block/ub.c b/drivers/block/ub.c index 746a118a9b52..18c8b6c0db20 100644 --- a/drivers/block/ub.c +++ b/drivers/block/ub.c @@ -1547,10 +1547,8 @@ static void ub_reset_enter(struct ub_dev *sc, int try) #endif #if 0 /* We let them stop themselves. */ - struct list_head *p; struct ub_lun *lun; - list_for_each(p, &sc->luns) { - lun = list_entry(p, struct ub_lun, link); + list_for_each_entry(lun, &sc->luns, link) { blk_stop_queue(lun->disk->queue); } #endif @@ -1562,7 +1560,6 @@ static void ub_reset_task(struct work_struct *work) { struct ub_dev *sc = container_of(work, struct ub_dev, reset_work); unsigned long flags; - struct list_head *p; struct ub_lun *lun; int lkr, rc; @@ -1608,8 +1605,7 @@ static void ub_reset_task(struct work_struct *work) spin_lock_irqsave(sc->lock, flags); sc->reset = 0; tasklet_schedule(&sc->tasklet); - list_for_each(p, &sc->luns) { - lun = list_entry(p, struct ub_lun, link); + list_for_each_entry(lun, &sc->luns, link) { blk_start_queue(lun->disk->queue); } wake_up(&sc->reset_wait); @@ -2348,7 +2344,6 @@ err_alloc: static void ub_disconnect(struct usb_interface *intf) { struct ub_dev *sc = usb_get_intfdata(intf); - struct list_head *p; struct ub_lun *lun; unsigned long flags; @@ -2403,8 +2398,7 @@ static void ub_disconnect(struct usb_interface *intf) /* * Unregister the upper layer. */ - list_for_each (p, &sc->luns) { - lun = list_entry(p, struct ub_lun, link); + list_for_each_entry(lun, &sc->luns, link) { del_gendisk(lun->disk); /* * I wish I could do: -- 2.20.1