diff mbox series

xfrm: Fix incorrect types in assignment

Message ID 1613728134-66887-1-git-send-email-yang.lee@linux.alibaba.com
State New
Headers show
Series xfrm: Fix incorrect types in assignment | expand

Commit Message

Yang Li Feb. 19, 2021, 9:48 a.m. UTC
Fix the following sparse warnings:
net/xfrm/xfrm_policy.c:1303:22: warning: incorrect type in assignment
(different address spaces)

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
---
 net/xfrm/xfrm_policy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Florian Westphal Feb. 19, 2021, 2:02 p.m. UTC | #1
Yang Li <yang.lee@linux.alibaba.com> wrote:
> Fix the following sparse warnings:
> net/xfrm/xfrm_policy.c:1303:22: warning: incorrect type in assignment
> (different address spaces)
> Reported-by: Abaci Robot <abaci@linux.alibaba.com>
> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
> ---
>  net/xfrm/xfrm_policy.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
> index b74f28c..5c67407 100644
> --- a/net/xfrm/xfrm_policy.c
> +++ b/net/xfrm/xfrm_policy.c
> @@ -1225,7 +1225,7 @@ static void xfrm_hash_rebuild(struct work_struct *work)
>  	struct xfrm_policy *pol;
>  	struct xfrm_policy *policy;
>  	struct hlist_head *chain;
> -	struct hlist_head *odst;
> +	struct hlist_head __rcu *odst;

This doesn't look right.  Try something like

- odst = net->xfrm.policy_bydst[dir].table;
+ odst = rcu_dereference_protected(net->xfrm.policy_bydst[dir].table,
			           lockdep_is_held(&net->xfrm.xfrm_policy_lock));
diff mbox series

Patch

diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index b74f28c..5c67407 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1225,7 +1225,7 @@  static void xfrm_hash_rebuild(struct work_struct *work)
 	struct xfrm_policy *pol;
 	struct xfrm_policy *policy;
 	struct hlist_head *chain;
-	struct hlist_head *odst;
+	struct hlist_head __rcu *odst;
 	struct hlist_node *newpos;
 	int i;
 	int dir;