}
 
        /* Base feature set */
-       netdev->features = NETIF_F_RXCSUM | NETIF_F_HW_CSUM |
+       netdev->hw_features = NETIF_F_RXCSUM | NETIF_F_HW_CSUM |
                NETIF_F_GRO | NETIF_F_SG;
 
        /* AST2400  doesn't have working HW checksum generation */
        if (np && (of_device_is_compatible(np, "aspeed,ast2400-mac")))
-               netdev->features &= ~NETIF_F_HW_CSUM;
+               netdev->hw_features &= ~NETIF_F_HW_CSUM;
        if (np && of_get_property(np, "no-hw-checksum", NULL))
-               netdev->features &= ~(NETIF_F_HW_CSUM | NETIF_F_RXCSUM);
+               netdev->hw_features &= ~(NETIF_F_HW_CSUM | NETIF_F_RXCSUM);
+       netdev->features |= netdev->hw_features;
 
        /* register network device */
        err = register_netdev(netdev);