#define XFRM_TYPE_LOCAL_COADDR 4
 #define XFRM_TYPE_REMOTE_COADDR        8
 
-       int                     (*init_state)(struct xfrm_state *x);
+       int                     (*init_state)(struct xfrm_state *x,
+                                             struct netlink_ext_ack *extack);
        void                    (*destructor)(struct xfrm_state *);
        int                     (*input)(struct xfrm_state *, struct sk_buff *skb);
        int                     (*output)(struct xfrm_state *, struct sk_buff *pskb);
 
        return 0;
 }
 
-static int ah_init_state(struct xfrm_state *x)
+static int ah_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        struct ah_data *ahp = NULL;
        struct xfrm_algo_desc *aalg_desc;
 
        return err;
 }
 
-static int esp_init_state(struct xfrm_state *x)
+static int esp_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        struct crypto_aead *aead;
        u32 align;
 
        return err;
 }
 
-static int ipcomp4_init_state(struct xfrm_state *x)
+static int ipcomp4_init_state(struct xfrm_state *x,
+                             struct netlink_ext_ack *extack)
 {
        int err = -EINVAL;
 
 
        return ip_hdr(skb)->protocol;
 }
 
-static int ipip_init_state(struct xfrm_state *x)
+static int ipip_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        if (x->props.mode != XFRM_MODE_TUNNEL)
                return -EINVAL;
 
        return 0;
 }
 
-static int ah6_init_state(struct xfrm_state *x)
+static int ah6_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        struct ah_data *ahp = NULL;
        struct xfrm_algo_desc *aalg_desc;
 
        return err;
 }
 
-static int esp6_init_state(struct xfrm_state *x)
+static int esp6_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        struct crypto_aead *aead;
        u32 align;
 
        return err;
 }
 
-static int ipcomp6_init_state(struct xfrm_state *x)
+static int ipcomp6_init_state(struct xfrm_state *x,
+                             struct netlink_ext_ack *extack)
 {
        int err = -EINVAL;
 
 
        return err;
 }
 
-static int mip6_destopt_init_state(struct xfrm_state *x)
+static int mip6_destopt_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        if (x->id.spi) {
                pr_info("%s: spi is not 0: %u\n", __func__, x->id.spi);
        return 0;
 }
 
-static int mip6_rthdr_init_state(struct xfrm_state *x)
+static int mip6_rthdr_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        if (x->id.spi) {
                pr_info("%s: spi is not 0: %u\n", __func__, x->id.spi);
 
        return 0;
 }
 
-static int xfrm6_tunnel_init_state(struct xfrm_state *x)
+static int xfrm6_tunnel_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        if (x->props.mode != XFRM_MODE_TUNNEL)
                return -EINVAL;
 
 
        x->type_offload = xfrm_get_type_offload(x->id.proto, family, offload);
 
-       err = x->type->init_state(x);
+       err = x->type->init_state(x, extack);
        if (err)
                goto error;