|
@@ -1857,11 +1857,6 @@ static int cipso_v4_genopt(unsigned char *buf, u32 buf_len,
|
|
|
return CIPSO_V4_HDR_LEN + ret_val;
|
|
|
}
|
|
|
|
|
|
-static void opt_kfree_rcu(struct rcu_head *head)
|
|
|
-{
|
|
|
- kfree(container_of(head, struct ip_options_rcu, rcu));
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* cipso_v4_sock_setattr - Add a CIPSO option to a socket
|
|
|
* @sk: the socket
|
|
@@ -1938,7 +1933,7 @@ int cipso_v4_sock_setattr(struct sock *sk,
|
|
|
}
|
|
|
rcu_assign_pointer(sk_inet->inet_opt, opt);
|
|
|
if (old)
|
|
|
- call_rcu(&old->rcu, opt_kfree_rcu);
|
|
|
+ kfree_rcu(old, rcu);
|
|
|
|
|
|
return 0;
|
|
|
|
|
@@ -2005,7 +2000,7 @@ int cipso_v4_req_setattr(struct request_sock *req,
|
|
|
req_inet = inet_rsk(req);
|
|
|
opt = xchg(&req_inet->opt, opt);
|
|
|
if (opt)
|
|
|
- call_rcu(&opt->rcu, opt_kfree_rcu);
|
|
|
+ kfree_rcu(opt, rcu);
|
|
|
|
|
|
return 0;
|
|
|
|
|
@@ -2075,7 +2070,7 @@ static int cipso_v4_delopt(struct ip_options_rcu **opt_ptr)
|
|
|
* remove the entire option struct */
|
|
|
*opt_ptr = NULL;
|
|
|
hdr_delta = opt->opt.optlen;
|
|
|
- call_rcu(&opt->rcu, opt_kfree_rcu);
|
|
|
+ kfree_rcu(opt, rcu);
|
|
|
}
|
|
|
|
|
|
return hdr_delta;
|