summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
diff options
context:
space:
mode:
authorMatteo Croce <mcroce@redhat.com>2019-10-24 19:24:56 +0200
committerDavid S. Miller <davem@davemloft.net>2019-10-28 13:44:26 -0700
commit7f7183af448ac55da9cc72bdbef6d140909fee83 (patch)
treeba1abb66620433631f00ac1501fb0443a6575979 /drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
parentfaf7b8b22bd110d14b213bba045612f70e929bad (diff)
downloadlinux-7f7183af448ac55da9cc72bdbef6d140909fee83.tar.gz
linux-7f7183af448ac55da9cc72bdbef6d140909fee83.tar.bz2
linux-7f7183af448ac55da9cc72bdbef6d140909fee83.zip
mvpp2: refactor frame drop routine
Move some code down to remove a backward goto. Signed-off-by: Matteo Croce <mcroce@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c')
-rw-r--r--drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index 5fea65256b9d..b61e0ad0978a 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -2956,14 +2956,8 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi,
* by the hardware, and the information about the buffer is
* comprised by the RX descriptor.
*/
- if (rx_status & MVPP2_RXD_ERR_SUMMARY) {
-err_drop_frame:
- dev->stats.rx_errors++;
- mvpp2_rx_error(port, rx_desc);
- /* Return the buffer to the pool */
- mvpp2_bm_pool_put(port, pool, dma_addr, phys_addr);
- continue;
- }
+ if (rx_status & MVPP2_RXD_ERR_SUMMARY)
+ goto err_drop_frame;
if (bm_pool->frag_size > PAGE_SIZE)
frag_size = 0;
@@ -2994,6 +2988,13 @@ err_drop_frame:
mvpp2_rx_csum(port, rx_status, skb);
napi_gro_receive(napi, skb);
+ continue;
+
+err_drop_frame:
+ dev->stats.rx_errors++;
+ mvpp2_rx_error(port, rx_desc);
+ /* Return the buffer to the pool */
+ mvpp2_bm_pool_put(port, pool, dma_addr, phys_addr);
}
if (rcvd_pkts) {