IB/ipoib: improve ethtool support for older kernels

In non-recent kernels such as the ones used by RH5 the core networking ethtool
code doesn't apply the ethtool_op_get_xxx functions by default, so the driver
has to supply them. Without this patch ethtool -k on ipoib devices would print
wrong information eg:

# cat /sys/class/net/ib0/features
0x11423

# ethtool -k ib0
Offload parameters for ib0:
Cannot get device rx csum settings: Operation not supported
Cannot get device tx csum settings: Operation not supported
Cannot get device scatter-gather settings: Operation not supported
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: off
tx-checksumming: off
scatter-gather: off
tcp segmentation offload: on
udp fragmentation offload: off
generic segmentation offload: off

Signed-off-by: Or Gerlitz <[EMAIL PROTECTED]>

Index: linux-2.6.27/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
===================================================================
--- linux-2.6.27.orig/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
+++ linux-2.6.27/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
@@ -129,7 +135,11 @@ static void ipoib_get_ethtool_stats(stru

 static const struct ethtool_ops ipoib_ethtool_ops = {
        .get_drvinfo            = ipoib_get_drvinfo,
+       .get_tx_csum            = ethtool_op_get_tx_csum,
+       .get_sg                 = ethtool_op_get_sg,
        .get_tso                = ethtool_op_get_tso,
+       .get_ufo                = ethtool_op_get_ufo,
        .get_coalesce           = ipoib_get_coalesce,
        .set_coalesce           = ipoib_set_coalesce,
        .get_flags              = ethtool_op_get_flags,
_______________________________________________
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to