return NETDEV_TX_OK;
 }
 
-static int nlmon_dev_init(struct net_device *dev)
-{
-       dev->lstats = netdev_alloc_pcpu_stats(struct pcpu_lstats);
-       return dev->lstats == NULL ? -ENOMEM : 0;
-}
-
-static void nlmon_dev_uninit(struct net_device *dev)
-{
-       free_percpu(dev->lstats);
-}
-
 struct nlmon {
        struct netlink_tap nt;
 };
 };
 
 static const struct net_device_ops nlmon_ops = {
-       .ndo_init = nlmon_dev_init,
-       .ndo_uninit = nlmon_dev_uninit,
        .ndo_open = nlmon_open,
        .ndo_stop = nlmon_close,
        .ndo_start_xmit = nlmon_xmit,
        dev->features = NETIF_F_SG | NETIF_F_FRAGLIST |
                        NETIF_F_HIGHDMA | NETIF_F_LLTX;
        dev->flags = IFF_NOARP;
+       dev->pcpu_stat_type = NETDEV_PCPU_STAT_LSTATS;
 
        /* That's rather a softlimit here, which, of course,
         * can be altered. Not a real MTU, but what is to be