Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

qeth: layer 2 allow ethtool to set TSO

Allow ethtool to turn on/off EDDP via ethtool TSO interface.

Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by

Frank Blaschka and committed by
Jeff Garzik
efe3df6f a74b08c7

+17 -1
+17 -1
drivers/s390/net/qeth_l2_main.c
··· 849 849 return; 850 850 } 851 851 852 + static int qeth_l2_ethtool_set_tso(struct net_device *dev, u32 data) 853 + { 854 + struct qeth_card *card = netdev_priv(dev); 855 + 856 + if (data) { 857 + if (card->options.large_send == QETH_LARGE_SEND_NO) { 858 + card->options.large_send = QETH_LARGE_SEND_EDDP; 859 + dev->features |= NETIF_F_TSO; 860 + } 861 + } else { 862 + dev->features &= ~NETIF_F_TSO; 863 + card->options.large_send = QETH_LARGE_SEND_NO; 864 + } 865 + return 0; 866 + } 867 + 852 868 static struct ethtool_ops qeth_l2_ethtool_ops = { 853 869 .get_link = ethtool_op_get_link, 854 870 .get_tx_csum = ethtool_op_get_tx_csum, ··· 872 856 .get_sg = ethtool_op_get_sg, 873 857 .set_sg = ethtool_op_set_sg, 874 858 .get_tso = ethtool_op_get_tso, 875 - .set_tso = ethtool_op_set_tso, 859 + .set_tso = qeth_l2_ethtool_set_tso, 876 860 .get_strings = qeth_core_get_strings, 877 861 .get_ethtool_stats = qeth_core_get_ethtool_stats, 878 862 .get_stats_count = qeth_core_get_stats_count,