static int register_vlan_device(struct net_device *real_dev, u16 vlan_id)
 {
        struct net_device *new_dev;
+       struct vlan_dev_priv *vlan;
        struct net *net = dev_net(real_dev);
        struct vlan_net *vn = net_generic(net, vlan_net_id);
        char name[IFNAMSIZ];
        new_dev->mtu = real_dev->mtu;
        new_dev->priv_flags |= (real_dev->priv_flags & IFF_UNICAST_FLT);
 
-       vlan_dev_priv(new_dev)->vlan_proto = htons(ETH_P_8021Q);
-       vlan_dev_priv(new_dev)->vlan_id = vlan_id;
-       vlan_dev_priv(new_dev)->real_dev = real_dev;
-       vlan_dev_priv(new_dev)->dent = NULL;
-       vlan_dev_priv(new_dev)->flags = VLAN_FLAG_REORDER_HDR;
+       vlan = vlan_dev_priv(new_dev);
+       vlan->vlan_proto = htons(ETH_P_8021Q);
+       vlan->vlan_id = vlan_id;
+       vlan->real_dev = real_dev;
+       vlan->dent = NULL;
+       vlan->flags = VLAN_FLAG_REORDER_HDR;
 
        new_dev->rtnl_link_ops = &vlan_link_ops;
        err = register_vlan_dev(new_dev);
 
        u16 vlan_tci = 0;
        int rc;
 
-       if (!(vlan_dev_priv(dev)->flags & VLAN_FLAG_REORDER_HDR)) {
+       if (!(vlan->flags & VLAN_FLAG_REORDER_HDR)) {
                vhdr = (struct vlan_hdr *) skb_push(skb, VLAN_HLEN);
 
-               vlan_tci = vlan_dev_priv(dev)->vlan_id;
+               vlan_tci = vlan->vlan_id;
                vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
                vhdr->h_vlan_TCI = htons(vlan_tci);
 
                saddr = dev->dev_addr;
 
        /* Now make the underlying real hard header */
-       dev = vlan_dev_priv(dev)->real_dev;
+       dev = vlan->real_dev;
        rc = dev_hard_header(skb, dev, type, daddr, saddr, len + vhdrlen);
        if (rc > 0)
                rc += vhdrlen;