vme: tsi148: fix DMA lists longer that one item
authorDmitry Kalinkin <dmitry.kalinkin@gmail.com>
Thu, 28 May 2015 12:06:59 +0000 (15:06 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Jun 2015 00:26:56 +0000 (17:26 -0700)
DMA lists on tsi148 weren't processed further than the first item
because of the broken logic. This regression was introduced in:

ac1a4f2caf7b071 "Staging: VME: Ensure TSI148 link list descriptors..."

Signed-off-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Cc: Igor Alekseev <igor.alekseev@itep.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/vme/bridges/vme_tsi148.c

index 895c2a31918df1d7bbabe1977faefe0f7543f0b2..1be41360c9e7e1be1591c1ea0958e613256ff3de 100644 (file)
@@ -1844,8 +1844,8 @@ static int tsi148_dma_list_add(struct vme_dma_list *list,
 
                reg_split((unsigned long long)entry->dma_handle, &address_high,
                        &address_low);
-               entry->descriptor.dnlau = cpu_to_be32(address_high);
-               entry->descriptor.dnlal = cpu_to_be32(address_low);
+               prev->descriptor.dnlau = cpu_to_be32(address_high);
+               prev->descriptor.dnlal = cpu_to_be32(address_low);
 
        }