struct nlattr *nest;
        unsigned int i;
 
-       NLA_PUT_U16(skb, IFLA_VLAN_ID, vlan_dev_priv(dev)->vlan_id);
+       if (nla_put_u16(skb, IFLA_VLAN_ID, vlan_dev_priv(dev)->vlan_id))
+               goto nla_put_failure;
        if (vlan->flags) {
                f.flags = vlan->flags;
                f.mask  = ~0;
-               NLA_PUT(skb, IFLA_VLAN_FLAGS, sizeof(f), &f);
+               if (nla_put(skb, IFLA_VLAN_FLAGS, sizeof(f), &f))
+                       goto nla_put_failure;
        }
        if (vlan->nr_ingress_mappings) {
                nest = nla_nest_start(skb, IFLA_VLAN_INGRESS_QOS);
 
                        m.from = i;
                        m.to   = vlan->ingress_priority_map[i];
-                       NLA_PUT(skb, IFLA_VLAN_QOS_MAPPING,
-                               sizeof(m), &m);
+                       if (nla_put(skb, IFLA_VLAN_QOS_MAPPING,
+                                   sizeof(m), &m))
+                               goto nla_put_failure;
                }
                nla_nest_end(skb, nest);
        }
 
                                m.from = pm->priority;
                                m.to   = (pm->vlan_qos >> 13) & 0x7;
-                               NLA_PUT(skb, IFLA_VLAN_QOS_MAPPING,
-                                       sizeof(m), &m);
+                               if (nla_put(skb, IFLA_VLAN_QOS_MAPPING,
+                                           sizeof(m), &m))
+                                       goto nla_put_failure;
                        }
                }
                nla_nest_end(skb, nest);