From: karl beldan Date: Mon, 15 Aug 2016 17:23:01 +0000 (+0000) Subject: net: davinci_emac: Invalidate only the received portion of a buffer X-Git-Url: http://git.ipfire.org/?p=people%2Fms%2Fu-boot.git;a=commitdiff_plain;h=a51897b6c1e517ea2ce95da59784e84c5992dd00 net: davinci_emac: Invalidate only the received portion of a buffer ATM when receiving a packet the whole buffer is invalidated, this change optimizes this behaviour. Signed-off-by: Karl Beldan Acked-by: Joe Hershberger Reviewed-by: Tom Rini Reviewed-by: Mugunthan V N --- diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 187137c8b4..6283487708 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c @@ -681,12 +681,12 @@ static int davinci_eth_rcv_packet (struct eth_device *dev) printf ("WARN: emac_rcv_pkt: Error in packet\n"); } else { unsigned long tmp = (unsigned long)rx_curr_desc->buffer; + unsigned short len = + rx_curr_desc->buff_off_len & 0xffff; - invalidate_dcache_range(tmp, tmp + EMAC_RXBUF_SIZE); - net_process_received_packet( - rx_curr_desc->buffer, - rx_curr_desc->buff_off_len & 0xffff); - ret = rx_curr_desc->buff_off_len & 0xffff; + invalidate_dcache_range(tmp, tmp + ALIGN(len, PKTALIGN)); + net_process_received_packet(rx_curr_desc->buffer, len); + ret = len; } /* Ack received packet descriptor */