spi/bitbang: (cosmetic) simplify list manipulation
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Mon, 21 May 2012 11:25:17 +0000 (13:25 +0200)
committerGrant Likely <grant.likely@secretlab.ca>
Wed, 14 Nov 2012 15:38:15 +0000 (15:38 +0000)
Use a proper list iterator instead of an open-coded loop and remove a
superfluous list head initialisation.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/spi/spi-bitbang.c

index f5ae6e9..8b3d8ef 100644 (file)
@@ -260,11 +260,11 @@ static void bitbang_work(struct work_struct *work)
        struct spi_bitbang      *bitbang =
                container_of(work, struct spi_bitbang, work);
        unsigned long           flags;
+       struct spi_message      *m, *_m;
 
        spin_lock_irqsave(&bitbang->lock, flags);
        bitbang->busy = 1;
-       while (!list_empty(&bitbang->queue)) {
-               struct spi_message      *m;
+       list_for_each_entry_safe(m, _m, &bitbang->queue, queue) {
                struct spi_device       *spi;
                unsigned                nsecs;
                struct spi_transfer     *t = NULL;
@@ -273,9 +273,7 @@ static void bitbang_work(struct work_struct *work)
                int                     status;
                int                     do_setup = -1;
 
-               m = container_of(bitbang->queue.next, struct spi_message,
-                               queue);
-               list_del_init(&m->queue);
+               list_del(&m->queue);
                spin_unlock_irqrestore(&bitbang->lock, flags);
 
                /* FIXME this is made-up ... the correct value is known to