| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) ST-Ericsson AB 2010 |
|---|
| 3 | 4 | * Author: Daniel Martensson |
|---|
| 4 | 5 | * Dmitry.Tarnyagin / dmitry.tarnyagin@lockless.no |
|---|
| 5 | | - * License terms: GNU General Public License (GPL) version 2. |
|---|
| 6 | 6 | */ |
|---|
| 7 | 7 | |
|---|
| 8 | 8 | #define pr_fmt(fmt) KBUILD_MODNAME fmt |
|---|
| .. | .. |
|---|
| 458 | 458 | skb_reset_mac_header(skb); |
|---|
| 459 | 459 | skb->dev = cfhsi->ndev; |
|---|
| 460 | 460 | |
|---|
| 461 | | - /* |
|---|
| 462 | | - * We are in a callback handler and |
|---|
| 463 | | - * unfortunately we don't know what context we're |
|---|
| 464 | | - * running in. |
|---|
| 465 | | - */ |
|---|
| 466 | | - if (in_interrupt()) |
|---|
| 467 | | - netif_rx(skb); |
|---|
| 468 | | - else |
|---|
| 469 | | - netif_rx_ni(skb); |
|---|
| 461 | + netif_rx_any_context(skb); |
|---|
| 470 | 462 | |
|---|
| 471 | 463 | /* Update network statistics. */ |
|---|
| 472 | 464 | cfhsi->ndev->stats.rx_packets++; |
|---|
| .. | .. |
|---|
| 587 | 579 | skb_reset_mac_header(skb); |
|---|
| 588 | 580 | skb->dev = cfhsi->ndev; |
|---|
| 589 | 581 | |
|---|
| 590 | | - /* |
|---|
| 591 | | - * We're called in callback from HSI |
|---|
| 592 | | - * and don't know the context we're running in. |
|---|
| 593 | | - */ |
|---|
| 594 | | - if (in_interrupt()) |
|---|
| 595 | | - netif_rx(skb); |
|---|
| 596 | | - else |
|---|
| 597 | | - netif_rx_ni(skb); |
|---|
| 582 | + netif_rx_any_context(skb); |
|---|
| 598 | 583 | |
|---|
| 599 | 584 | /* Update network statistics. */ |
|---|
| 600 | 585 | cfhsi->ndev->stats.rx_packets++; |
|---|
| .. | .. |
|---|
| 1006 | 991 | cfhsi_start_tx(cfhsi); |
|---|
| 1007 | 992 | } |
|---|
| 1008 | 993 | |
|---|
| 1009 | | -static int cfhsi_xmit(struct sk_buff *skb, struct net_device *dev) |
|---|
| 994 | +static netdev_tx_t cfhsi_xmit(struct sk_buff *skb, struct net_device *dev) |
|---|
| 1010 | 995 | { |
|---|
| 1011 | 996 | struct cfhsi *cfhsi = NULL; |
|---|
| 1012 | 997 | int start_xfer = 0; |
|---|
| .. | .. |
|---|
| 1072 | 1057 | spin_unlock_bh(&cfhsi->lock); |
|---|
| 1073 | 1058 | if (aggregate_ready) |
|---|
| 1074 | 1059 | cfhsi_start_tx(cfhsi); |
|---|
| 1075 | | - return 0; |
|---|
| 1060 | + return NETDEV_TX_OK; |
|---|
| 1076 | 1061 | } |
|---|
| 1077 | 1062 | |
|---|
| 1078 | 1063 | /* Delete inactivity timer if started. */ |
|---|
| .. | .. |
|---|
| 1102 | 1087 | queue_work(cfhsi->wq, &cfhsi->wake_up_work); |
|---|
| 1103 | 1088 | } |
|---|
| 1104 | 1089 | |
|---|
| 1105 | | - return 0; |
|---|
| 1090 | + return NETDEV_TX_OK; |
|---|
| 1106 | 1091 | } |
|---|
| 1107 | 1092 | |
|---|
| 1108 | 1093 | static const struct net_device_ops cfhsi_netdevops; |
|---|