diff options
author | Thomas Richter <tmricht@linux.vnet.ibm.com> | 2015-05-18 14:27:52 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-05-18 12:14:16 -0400 |
commit | c7258d8637be2ac1e4cbf276ac5145da456303d0 (patch) | |
tree | 461f71433c6e0f0431714974bce85bcfd8c0efe2 /drivers/s390 | |
parent | b9fbe709de4dbe663613ebb852f35aef2467872c (diff) | |
download | linux-stable-c7258d8637be2ac1e4cbf276ac5145da456303d0.tar.gz linux-stable-c7258d8637be2ac1e4cbf276ac5145da456303d0.tar.bz2 linux-stable-c7258d8637be2ac1e4cbf276ac5145da456303d0.zip |
qeth: fix rx checksum offload handling
ethtool is used to change some device driver features
such as RX/TX hardware checksum offloading.
The qeth device driver callback function to
turn on/off RX hardware check sum handling never changes
the hardware configuration.
The NETIF_F_RXCSUM bit is cleared when the feature bitset
type netdev_features_t(64bit) is assigned to 32 a bit
variable.
This patch fixes the NETIF_F_RXCSUM handling.
Also there is no need to manipulate the device's features
bit set as this is done by the caller when no error occurs.
Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 04e42c649134..70eb2f61bb92 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -3198,8 +3198,7 @@ static int qeth_l3_set_features(struct net_device *dev, netdev_features_t features) { struct qeth_card *card = dev->ml_priv; - u32 changed = dev->features ^ features; - int err; + netdev_features_t changed = dev->features ^ features; if (!(changed & NETIF_F_RXCSUM)) return 0; @@ -3208,11 +3207,7 @@ static int qeth_l3_set_features(struct net_device *dev, card->state == CARD_STATE_RECOVER) return 0; - err = qeth_l3_set_rx_csum(card, features & NETIF_F_RXCSUM); - if (err) - dev->features = features ^ NETIF_F_RXCSUM; - - return err; + return qeth_l3_set_rx_csum(card, features & NETIF_F_RXCSUM ? 1 : 0); } static const struct ethtool_ops qeth_l3_ethtool_ops = { |