diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2024-03-13 12:07:00 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-03-13 12:38:55 +0100 |
commit | 01e3e40961fd9eba3bd82dc4297cdd8a95b5273d (patch) | |
tree | b1b29118ba55c18488d784b4b37da19d7a495f0f /drivers/net | |
parent | 33d0bce334432eb6af58f69a4c6565632ebd2e18 (diff) | |
download | barebox-01e3e40961fd9eba3bd82dc4297cdd8a95b5273d.tar.gz barebox-01e3e40961fd9eba3bd82dc4297cdd8a95b5273d.tar.xz |
net: enc28j60: replace global NetRxPackets with per-interface allocation
NetRxPackets is a remnant of times, where a board had at most one
Ethernet controller. This is outdated and we should drop NetRxPackets.
The driver doesn't maintain a queue of packets, so let's just allocate
it per interface.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20240313110704.1095554-4-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/enc28j60.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c index 51556ae013..9455c6f5ea 100644 --- a/drivers/net/enc28j60.c +++ b/drivers/net/enc28j60.c @@ -46,6 +46,7 @@ struct enc28j60_net { /* store MAC address here while hardware is in the reset state */ u8 hwaddr[ETH_ALEN]; struct mii_bus miibus; + void *rx_buffer; }; /* @@ -793,9 +794,9 @@ static void enc28j60_hw_rx(struct eth_device *edev) /* copy the packet from the receive buffer */ enc28j60_mem_read(priv, rx_packet_start(priv->next_pk_ptr), - len, NetRxPackets[0]); + len, priv->rx_buffer); - net_receive(edev, NetRxPackets[0], len); + net_receive(edev, priv->rx_buffer, len); } /* @@ -931,6 +932,7 @@ static int enc28j60_probe(struct device *dev) priv = xzalloc(sizeof(*priv)); priv->spi = (struct spi_device *)dev->type_data; + priv->rx_buffer = net_alloc_packet(); edev = &priv->edev; edev->priv = priv; |