From 9fab462099b74b86ca2b59b2d08c1cdd49afd802 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 19 Sep 2022 10:01:31 +0200 Subject: net: smc911x: Allocate own receive buffer Use a driver private buffer as network receive buffer rather than the globally allocated ones which will be removed soon. Signed-off-by: Sascha Hauer Link: https://lore.barebox.org/20220919080133.877651-8-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer --- drivers/net/smc911x.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 1edc16ce44..7fd5c2aadb 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -32,6 +32,8 @@ struct smc911x_priv { unsigned int using_extphy; unsigned int phy_mask; + void *rx_buf; + u32 (*reg_read)(struct smc911x_priv *priv, u32 reg); void (*reg_write)(struct smc911x_priv *priv, u32 reg, u32 val); }; @@ -447,7 +449,7 @@ static void smc911x_eth_halt(struct eth_device *edev) static int smc911x_eth_rx(struct eth_device *edev) { struct smc911x_priv *priv = (struct smc911x_priv *)edev->priv; - u32 *data = (u32 *)NetRxPackets[0]; + u32 *data = priv->rx_buf; u32 pktlen, tmplen; u32 status; @@ -465,7 +467,7 @@ static int smc911x_eth_rx(struct eth_device *edev) dev_err(&edev->dev, "dropped bad packet. Status: 0x%08x\n", status); else - net_receive(edev, NetRxPackets[0], pktlen); + net_receive(edev, priv->rx_buf, pktlen); } return 0; @@ -608,6 +610,8 @@ static int smc911x_probe(struct device_d *dev) dev_info(dev, "LAN911x identified, idrev: 0x%08X, generation: %d\n", val, priv->generation); + priv->rx_buf = xmalloc(PKTSIZE); + edev = &priv->edev; edev->priv = priv; -- cgit v1.2.3