struct ip_tunnel __rcu *tunnels_r[HASH_SIZE];
        struct ip_tunnel __rcu *tunnels_l[HASH_SIZE];
        struct ip_tunnel __rcu *tunnels_wc[1];
-       struct ip_tunnel **tunnels[4];
+       struct ip_tunnel __rcu **tunnels[4];
 
        struct net_device *fb_tunnel_dev;
 };
        return NULL;
 }
 
-static struct ip_tunnel **__vti_bucket(struct vti_net *ipn,
-                                      struct ip_tunnel_parm *parms)
+static struct ip_tunnel __rcu **__vti_bucket(struct vti_net *ipn,
+                                            struct ip_tunnel_parm *parms)
 {
        __be32 remote = parms->iph.daddr;
        __be32 local = parms->iph.saddr;
        return &ipn->tunnels[prio][h];
 }
 
-static inline struct ip_tunnel **vti_bucket(struct vti_net *ipn,
-                                           struct ip_tunnel *t)
+static inline struct ip_tunnel __rcu **vti_bucket(struct vti_net *ipn,
+                                                 struct ip_tunnel *t)
 {
        return __vti_bucket(ipn, &t->parms);
 }