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 <s.hauer@xxxxxxxxxxxxxx> --- drivers/net/cs8900.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c index 75bbbd79e1..16e1d498c7 100644 --- a/drivers/net/cs8900.c +++ b/drivers/net/cs8900.c @@ -180,6 +180,7 @@ struct cs8900_priv { void *regs; struct cs89x0_product *product; struct cs89x0_chip *chip; + void *rx_buf; }; /* Read a 16-bit value from PacketPage Memory using I/O Space operation */ @@ -294,13 +295,13 @@ static int cs8900_recv(struct eth_device *dev) status = readw(priv->regs + CS8900_RTDATA0); len = readw(priv->regs + CS8900_RTDATA0); - for (addr = (u16 *) NetRxPackets[0], i = len >> 1; i > 0; i--) { + for (addr = (u16 *)priv->rx_buf, i = len >> 1; i > 0; i--) { *addr++ = readw(priv->regs + CS8900_RTDATA0); } if (len & 1) { *addr++ = readw(priv->regs + CS8900_RTDATA0); } - net_receive(dev, NetRxPackets[0], len); + net_receive(dev, priv->rx_buf, len); return len; } @@ -442,6 +443,8 @@ static int cs8900_probe(struct device_d *dev) return -1; } + priv->rx_buf = xmalloc(PKTSIZE); + edev = (struct eth_device *)xmalloc(sizeof(struct eth_device)); edev->priv = priv; -- 2.30.2