diff options
author | Stefan Wahren <stefan.wahren@i2se.com> | 2018-09-05 15:23:18 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-09-05 08:09:35 -0700 |
commit | e65a9e480e91ddf9e15155454d370cead64689c8 (patch) | |
tree | 464f36ca6f998283272c185728708dd42e46851a /drivers/net/ethernet/qualcomm/qca_spi.h | |
parent | 9d7f19dc4673fbafebfcbf30eb90e09fa7d1c037 (diff) |
net: qca_spi: Fix race condition in spi transfers
With performance optimization the spi transfer and messages of basic
register operations like qcaspi_read_register moved into the private
driver structure. But they weren't protected against mutual access
(e.g. between driver kthread and ethtool). So dumping the QCA7000
registers via ethtool during network traffic could make spi_sync
hang forever, because the completion in spi_message is overwritten.
So revert the optimization completely.
Fixes: 291ab06ecf676 ("net: qualcomm: new Ethernet over SPI driver for QCA700")
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qualcomm/qca_spi.h')
-rw-r--r-- | drivers/net/ethernet/qualcomm/qca_spi.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/net/ethernet/qualcomm/qca_spi.h b/drivers/net/ethernet/qualcomm/qca_spi.h index fc4beb1b32d1..fc0e98726b36 100644 --- a/drivers/net/ethernet/qualcomm/qca_spi.h +++ b/drivers/net/ethernet/qualcomm/qca_spi.h @@ -83,11 +83,6 @@ struct qcaspi { struct tx_ring txr; struct qcaspi_stats stats; - struct spi_message spi_msg1; - struct spi_message spi_msg2; - struct spi_transfer spi_xfer1; - struct spi_transfer spi_xfer2[2]; - u8 *rx_buffer; u32 buffer_size; u8 sync; |