xfrm: ipcomp: add extack to ipcomp{4,6}_init_state
[linux-2.6-microblaze.git] / net / xfrm / xfrm_ipcomp.c
index cb40ff0..656045a 100644 (file)
@@ -325,18 +325,22 @@ void ipcomp_destroy(struct xfrm_state *x)
 }
 EXPORT_SYMBOL_GPL(ipcomp_destroy);
 
-int ipcomp_init_state(struct xfrm_state *x)
+int ipcomp_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
 {
        int err;
        struct ipcomp_data *ipcd;
        struct xfrm_algo_desc *calg_desc;
 
        err = -EINVAL;
-       if (!x->calg)
+       if (!x->calg) {
+               NL_SET_ERR_MSG(extack, "Missing required compression algorithm");
                goto out;
+       }
 
-       if (x->encap)
+       if (x->encap) {
+               NL_SET_ERR_MSG(extack, "IPComp is not compatible with encapsulation");
                goto out;
+       }
 
        err = -ENOMEM;
        ipcd = kzalloc(sizeof(*ipcd), GFP_KERNEL);