netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] XFRM: remove redundant parameter "int dir" in struct xfrm_mgr.acquire
@ 2012-08-13  6:25 Fan Du
  2012-08-13  7:08 ` Steffen Klassert
  0 siblings, 1 reply; 4+ messages in thread
From: Fan Du @ 2012-08-13  6:25 UTC (permalink / raw)
  To: davem; +Cc: netdev

Sematically speaking, xfrm_mgr.acquire is called when kernel intends to ask
user space IKE daemon to negotiate SAs with peers. IOW the direction will
*always* be XFRM_POLICY_OUT, so remove int dir for clarity.

Signed-off-by: Fan Du <fan.du@windriver.com>
---
 include/net/xfrm.h    |    2 +-
 net/key/af_key.c      |    4 ++--
 net/xfrm/xfrm_state.c |    2 +-
 net/xfrm/xfrm_user.c  |    4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 62b619e..5e1662d 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -571,7 +571,7 @@ struct xfrm_mgr {
 	struct list_head	list;
 	char			*id;
 	int			(*notify)(struct xfrm_state *x, const struct km_event *c);
-	int			(*acquire)(struct xfrm_state *x, struct xfrm_tmpl *, struct xfrm_policy *xp, int dir);
+	int			(*acquire)(struct xfrm_state *x, struct xfrm_tmpl *, struct xfrm_policy *xp);
 	struct xfrm_policy	*(*compile_policy)(struct sock *sk, int opt, u8 *data, int len, int *dir);
 	int			(*new_mapping)(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport);
 	int			(*notify_policy)(struct xfrm_policy *x, int dir, const struct km_event *c);
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 34e4185..ec7d161 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -3024,7 +3024,7 @@ static u32 get_acqseq(void)
 	return res;
 }
 
-static int pfkey_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *xp, int dir)
+static int pfkey_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *xp)
 {
 	struct sk_buff *skb;
 	struct sadb_msg *hdr;
@@ -3105,7 +3105,7 @@ static int pfkey_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *t, struct
 	pol->sadb_x_policy_len = sizeof(struct sadb_x_policy)/sizeof(uint64_t);
 	pol->sadb_x_policy_exttype = SADB_X_EXT_POLICY;
 	pol->sadb_x_policy_type = IPSEC_POLICY_IPSEC;
-	pol->sadb_x_policy_dir = dir+1;
+	pol->sadb_x_policy_dir = XFRM_POLICY_OUT + 1;
 	pol->sadb_x_policy_id = xp->index;
 
 	/* Set sadb_comb's. */
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 87cd0e4..7856c33 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1700,7 +1700,7 @@ int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol)
 
 	read_lock(&xfrm_km_lock);
 	list_for_each_entry(km, &xfrm_km_list, list) {
-		acqret = km->acquire(x, t, pol, XFRM_POLICY_OUT);
+		acqret = km->acquire(x, t, pol);
 		if (!acqret)
 			err = acqret;
 	}
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index e75d8e4..844e661 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -2605,7 +2605,7 @@ static int build_acquire(struct sk_buff *skb, struct xfrm_state *x,
 }
 
 static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
-			     struct xfrm_policy *xp, int dir)
+			     struct xfrm_policy *xp)
 {
 	struct net *net = xs_net(x);
 	struct sk_buff *skb;
@@ -2614,7 +2614,7 @@ static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
 	if (skb == NULL)
 		return -ENOMEM;
 
-	if (build_acquire(skb, x, xt, xp, dir) < 0)
+	if (build_acquire(skb, x, xt, xp, XFRM_POLICY_OUT) < 0)
 		BUG();
 
 	return nlmsg_multicast(net->xfrm.nlsk, skb, 0, XFRMNLGRP_ACQUIRE, GFP_ATOMIC);
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] XFRM: remove redundant parameter "int dir" in struct xfrm_mgr.acquire
  2012-08-13  6:25 [PATCH] XFRM: remove redundant parameter "int dir" in struct xfrm_mgr.acquire Fan Du
@ 2012-08-13  7:08 ` Steffen Klassert
  2012-08-13  7:23   ` Fan Du
  0 siblings, 1 reply; 4+ messages in thread
From: Steffen Klassert @ 2012-08-13  7:08 UTC (permalink / raw)
  To: Fan Du; +Cc: davem, netdev

On Mon, Aug 13, 2012 at 02:25:57PM +0800, Fan Du wrote:
>  
>  static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
> -			     struct xfrm_policy *xp, int dir)
> +			     struct xfrm_policy *xp)
>  {
>  	struct net *net = xs_net(x);
>  	struct sk_buff *skb;
> @@ -2614,7 +2614,7 @@ static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
>  	if (skb == NULL)
>  		return -ENOMEM;
>  
> -	if (build_acquire(skb, x, xt, xp, dir) < 0)
> +	if (build_acquire(skb, x, xt, xp, XFRM_POLICY_OUT) < 0)
>  		BUG();

xfrm_send_acquire() is the only caller of build_acquire().
So if you remove the dir parameter from xfrm_send_acquire(),
you can remove it from build_acquire() too. 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] XFRM: remove redundant parameter "int dir" in struct xfrm_mgr.acquire
  2012-08-13  7:08 ` Steffen Klassert
@ 2012-08-13  7:23   ` Fan Du
  2012-08-14 21:56     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Fan Du @ 2012-08-13  7:23 UTC (permalink / raw)
  To: Steffen Klassert; +Cc: davem, netdev



On 2012年08月13日 15:08, Steffen Klassert wrote:
> On Mon, Aug 13, 2012 at 02:25:57PM +0800, Fan Du wrote:
>>
>>   static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
>> -			     struct xfrm_policy *xp, int dir)
>> +			     struct xfrm_policy *xp)
>>   {
>>   	struct net *net = xs_net(x);
>>   	struct sk_buff *skb;
>> @@ -2614,7 +2614,7 @@ static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt,
>>   	if (skb == NULL)
>>   		return -ENOMEM;
>>
>> -	if (build_acquire(skb, x, xt, xp, dir)<  0)
>> +	if (build_acquire(skb, x, xt, xp, XFRM_POLICY_OUT)<  0)
>>   		BUG();
>
> xfrm_send_acquire() is the only caller of build_acquire().
> So if you remove the dir parameter from xfrm_send_acquire(),
> you can remove it from build_acquire() too.
>
Yep, looks like we can only remove "dir" at build_acquire, not into
copy_to_user_policy anymore :)

I will adopt your approach in v2 if Dave say *YES* about this patch.
thanks anyway.

-- 

Love each day!
--fan

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] XFRM: remove redundant parameter "int dir" in struct xfrm_mgr.acquire
  2012-08-13  7:23   ` Fan Du
@ 2012-08-14 21:56     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2012-08-14 21:56 UTC (permalink / raw)
  To: fan.du; +Cc: steffen.klassert, netdev

From: Fan Du <fan.du@windriver.com>
Date: Mon, 13 Aug 2012 15:23:09 +0800

> 
> 
> On 2012年08月13日 15:08, Steffen Klassert wrote:
>> On Mon, Aug 13, 2012 at 02:25:57PM +0800, Fan Du wrote:
>>>
>>>   static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl
>>>   *xt,
>>> -			     struct xfrm_policy *xp, int dir)
>>> +			     struct xfrm_policy *xp)
>>>   {
>>>   	struct net *net = xs_net(x);
>>>   	struct sk_buff *skb;
>>> @@ -2614,7 +2614,7 @@ static int xfrm_send_acquire(struct xfrm_state
>>> *x, struct xfrm_tmpl *xt,
>>>   	if (skb == NULL)
>>>   		return -ENOMEM;
>>>
>>> -	if (build_acquire(skb, x, xt, xp, dir)<  0)
>>> +	if (build_acquire(skb, x, xt, xp, XFRM_POLICY_OUT)<  0)
>>>   		BUG();
>>
>> xfrm_send_acquire() is the only caller of build_acquire().
>> So if you remove the dir parameter from xfrm_send_acquire(),
>> you can remove it from build_acquire() too.
>>
> Yep, looks like we can only remove "dir" at build_acquire, not into
> copy_to_user_policy anymore :)
> 
> I will adopt your approach in v2 if Dave say *YES* about this patch.
> thanks anyway.

Looks find to me.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-08-14 21:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-13  6:25 [PATCH] XFRM: remove redundant parameter "int dir" in struct xfrm_mgr.acquire Fan Du
2012-08-13  7:08 ` Steffen Klassert
2012-08-13  7:23   ` Fan Du
2012-08-14 21:56     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).