]> git.openfabrics.org - ~emulex/infiniband.git/commitdiff
wlcore: SPI - fix spi transfer_list
authorJanusz.Dziedzic@tieto.com <Janusz.Dziedzic@tieto.com>
Wed, 7 Nov 2012 13:42:19 +0000 (15:42 +0200)
committerLuciano Coelho <luca@coelho.fi>
Fri, 16 Nov 2012 17:53:01 +0000 (19:53 +0200)
In corner case for wl12xx_spi_raw_write() when
len == SPI_AGGR_BUFFER_SIZE
we don't setup correctly spi transfer_list.
Next we will have garbage and strange errors
reported by SPI framework (eg. wrong speed_hz,
failed to transfer one message from queue)
when iterate transfer_list.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Luciano Coelho <luca@coelho.fi>
drivers/net/wireless/ti/wlcore/spi.c

index 76838a4a74ce61b9bcfe1b3d7f3990955944c089..9d18f2ff57d0f2d83c25423527d3eccda01006b3 100644 (file)
@@ -270,7 +270,7 @@ static int __must_check wl12xx_spi_raw_write(struct device *child, int addr,
                                             void *buf, size_t len, bool fixed)
 {
        struct wl12xx_spi_glue *glue = dev_get_drvdata(child->parent);
-       struct spi_transfer t[2 * WSPI_MAX_NUM_OF_CHUNKS];
+       struct spi_transfer t[2 * (WSPI_MAX_NUM_OF_CHUNKS + 1)];
        struct spi_message m;
        u32 commands[WSPI_MAX_NUM_OF_CHUNKS];
        u32 *cmd;