Previous patches unconver that ksz_spi_write() is always ever called with len = 1, 2 or 4. We can thus drop the if (len > SPI_TX_BUF_LEN) check and we can also drop the allocation of the txbuf which is part of the driver data. This wastes 256 bytes for no reason and can be replaced with 8-byte stack allocated buffer, which is what this patch does. This is an intermediate step though, which will go away after regmap conversion.
Signed-off-by: Marek Vasut <ma...@denx.de> Cc: Andrew Lunn <and...@lunn.ch> Cc: Florian Fainelli <f.faine...@gmail.com> Cc: Tristram Ha <tristram...@microchip.com> Cc: Woojung Huh <woojung....@microchip.com> --- drivers/net/dsa/microchip/ksz9477_spi.c | 10 ++++------ drivers/net/dsa/microchip/ksz_priv.h | 2 -- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c index 9ca150a472ea..69baf9677def 100644 --- a/drivers/net/dsa/microchip/ksz9477_spi.c +++ b/drivers/net/dsa/microchip/ksz9477_spi.c @@ -65,11 +65,11 @@ static int ksz_spi_write(struct ksz_device *dev, u32 reg, void *data, unsigned int len) { struct spi_device *spi = dev->priv; + u8 txbuf[8]; - if (len > SPI_TX_BUF_LEN) - len = SPI_TX_BUF_LEN; - memcpy(&dev->txbuf[4], data, len); - return ksz9477_spi_write_reg(spi, reg, dev->txbuf, len); + memcpy(txbuf + 4, data, len); + + return ksz9477_spi_write_reg(spi, reg, txbuf, len); } static int ksz_spi_read8(struct ksz_device *dev, u32 reg, u8 *val) @@ -135,8 +135,6 @@ static int ksz9477_spi_probe(struct spi_device *spi) if (spi->dev.platform_data) dev->pdata = spi->dev.platform_data; - dev->txbuf = devm_kzalloc(dev->dev, 4 + SPI_TX_BUF_LEN, GFP_KERNEL); - ret = ksz9477_switch_register(dev); /* Main DSA driver may not be started yet. */ diff --git a/drivers/net/dsa/microchip/ksz_priv.h b/drivers/net/dsa/microchip/ksz_priv.h index c3a272505af1..3ab14ee0e36b 100644 --- a/drivers/net/dsa/microchip/ksz_priv.h +++ b/drivers/net/dsa/microchip/ksz_priv.h @@ -81,8 +81,6 @@ struct ksz_device { u64 mib_value[TOTAL_SWITCH_COUNTER_NUM]; - u8 *txbuf; - struct ksz_port *ports; struct timer_list mib_read_timer; struct work_struct mib_read; -- 2.19.2