> From: Frank Blaschka <frank.blaschka@xxxxxxxxxx> > > Set rx csum default to hw checksumming again. > Remove sysfs interface for rx csum (checksumming) and TSO (large_send). > With the new hw_features it does not work to keep the old sysfs > interface in parallel. Convert options.checksum_type to new hw_features. [...] > @@ -1482,32 +1476,28 @@ static int qeth_l3_start_ipa_checksum(st [...] > -    rc = qeth_l3_send_checksum_command(card); > -    if (!rc) > -        dev_info(&card->gdev->dev, > +            card->dev->hw_features &= ~IPA_INBOUND_CHECKSUM; > +            card->dev->features &= ~IPA_INBOUND_CHECKSUM; > +            return 0; > +        } Should be NETIF_F_RXCSUM probably. Don't modify hw_features. Limit currently available features in ndo_fix_features callback instead when checksumming is (temporarily) unavailable. [...] > Âstatic int qeth_l3_set_features(struct net_device *dev, u32 features) > Â{ > -    enum qeth_checksum_types csum_type; >    Âstruct qeth_card *card = dev->ml_priv; >    Âu32 changed = dev->features ^ features; > +    int on; > >    Âif (!(changed & NETIF_F_RXCSUM)) >        Âreturn 0; > >    Âif (features & NETIF_F_RXCSUM) > -        csum_type = HW_CHECKSUMMING; > +        on = 1; >    Âelse > -        csum_type = SW_CHECKSUMMING; > +        on = 0; > >    Âdev->features = features ^ NETIF_F_RXCSUM; > -    return qeth_l3_set_rx_csum(card, csum_type); > +    return qeth_l3_set_rx_csum(card, on); > Â} Since you removed dev->features update from qeth_l3_set_rx_csum(), you should also modify this code to match. On exit from ndo_fix_features, dev->features should reflect what is currently set, even if part of the request failed. > Âstatic const struct ethtool_ops qeth_l3_ethtool_ops = { > @@ -3342,6 +3326,12 @@ static int qeth_l3_setup_netdev(struct q >            Âif (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD)) >                Âcard->dev->dev_id = card->info.unique_id & >                             0xffff; > +            if (!card->info.guestlan) { > +                card->dev->hw_features = NETIF_F_SG | > +                    NETIF_F_RXCSUM | NETIF_F_IP_CSUM | > +                    NETIF_F_TSO; > +                card->dev->features = NETIF_F_RXCSUM; > +            } All features except RXCSUM will be disabled by default. Is that the intent here? Best Regards, MichaÅ MirosÅaw ÿô.nÇ·®+%˱é¥wÿº{.nÇ·¥{±þÍÓ§¶¡Ü}©²ÆzÚj:+v¨þø®w¥þàÞ¨è&¢)ß«a¶Úÿûz¹ÞúÝjÿwèf