RE: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping
flat view
From: Bryan.Whitehead@microchip.com
Date: 2021-01-30 22:12:32
Also in:
lkml
Sven, see below comments
quoted hunk ↗ jump to hunk
@@ -2148,11 +2149,18 @@ static int lan743x_rx_process_packet(structlan743x_rx *rx) descriptor = &rx->ring_cpu_ptr[first_index]; /* unmap from dma */ + packet_length = RX_DESC_DATA0_FRAME_LENGTH_GET_ + (descriptor->data0);
It appears you moved this packet_length assignment from just below the following if block, however you left out the le32_to_cpu.See next comment
quoted hunk ↗ jump to hunk
if (buffer_info->dma_ptr) { - dma_unmap_single(&rx->adapter->pdev->dev, - buffer_info->dma_ptr, - buffer_info->buffer_length, - DMA_FROM_DEVICE); + dma_sync_single_for_cpu(&rx->adapter->pdev->dev, + buffer_info->dma_ptr, + packet_length, + DMA_FROM_DEVICE); + dma_unmap_single_attrs(&rx->adapter->pdev->dev, + buffer_info->dma_ptr, + buffer_info->buffer_length, + DMA_FROM_DEVICE, + + DMA_ATTR_SKIP_CPU_SYNC); buffer_info->dma_ptr = 0; buffer_info->buffer_length = 0; }
Just below here is the following line packet_length = RX_DESC_DATA0_FRAME_LENGTH_GET_ (le32_to_cpu(descriptor->data0)); This line was moved above the previous if block, but the le32_to_cpu was removed. Is that intentional? Also I don't see any mention of this packet_length assignment (after the if block) being removed. Since packet_length already contains this value, it seems unnecessary to keep this assignment.
quoted hunk ↗ jump to hunk
@@ -2167,8 +2175,8 @@ static int lan743x_rx_process_packet(structlan743x_rx *rx) int index = first_index; /* multi buffer packet not supported */ - /* this should not happen since - * buffers are allocated to be at least jumbo size + /* this should not happen since buffers are allocated + * to be at least the mtu size configured in the mac. */ /* clean up buffers */ @@ -2628,6 +2636,9 @@ static int lan743x_netdev_change_mtu(struct net_device *netdev, int new_mtu) struct lan743x_adapter *adapter = netdev_priv(netdev); int ret = 0; + if (netif_running(netdev)) + return -EBUSY; + ret = lan743x_mac_set_mtu(adapter, new_mtu); if (!ret) netdev->mtu = new_mtu; -- 2.17.1