static void gve_set_netdev_xdp_features(struct gve_priv *priv)
 {
+       xdp_features_t xdp_features;
+
        if (priv->queue_format == GVE_GQI_QPL_FORMAT) {
-               priv->dev->xdp_features = NETDEV_XDP_ACT_BASIC;
-               priv->dev->xdp_features |= NETDEV_XDP_ACT_REDIRECT;
-               priv->dev->xdp_features |= NETDEV_XDP_ACT_NDO_XMIT;
-               priv->dev->xdp_features |= NETDEV_XDP_ACT_XSK_ZEROCOPY;
+               xdp_features = NETDEV_XDP_ACT_BASIC;
+               xdp_features |= NETDEV_XDP_ACT_REDIRECT;
+               xdp_features |= NETDEV_XDP_ACT_NDO_XMIT;
+               xdp_features |= NETDEV_XDP_ACT_XSK_ZEROCOPY;
        } else {
-               priv->dev->xdp_features = 0;
+               xdp_features = 0;
        }
+
+       xdp_set_features_flag(priv->dev, xdp_features);
 }
 
 static int gve_init_priv(struct gve_priv *priv, bool skip_describe_device)