requests sent to it over the IPv6 protocol.
        Default: 0
  
 +echo_ignore_multicast - BOOLEAN
 +      If set non-zero, then the kernel will ignore all ICMP ECHO
 +      requests sent to it over the IPv6 protocol via multicast.
 +      Default: 0
 +
 +echo_ignore_anycast - BOOLEAN
 +      If set non-zero, then the kernel will ignore all ICMP ECHO
 +      requests sent to it over the IPv6 protocol destined to anycast address.
 +      Default: 0
 +
  xfrm6_gc_thresh - INTEGER
+       (Obsolete since linux-4.14)
        The threshold at which we will start garbage collecting for IPv6
        destination cache entries.  At twice this value the system will
        refuse new allocations.
 
  #define IWL_DEVICE_AX210                                              \
        IWL_DEVICE_AX200_COMMON,                                        \
        .device_family = IWL_DEVICE_FAMILY_AX210,                       \
-       .base_params = &iwl_22000_base_params,                          \
+       .base_params = &iwl_22560_base_params,                          \
        .csr = &iwl_csr_v1,                                             \
 -      .min_txq_size = 128
 +      .min_txq_size = 128,                                            \
 +      .gp2_reg_addr = 0xd02c68,                                       \
 +      .min_256_ba_txq_size = 512
  
  const struct iwl_cfg iwl22000_2ac_cfg_hr = {
        .name = "Intel(R) Dual Band Wireless AC 22000",
 
                     NDISC_REDIRECT, &ndopts);
  
        rcu_read_lock();
 -      from = rcu_dereference(rt->from);
 -      if (!from)
 +      res.f6i = rcu_dereference(rt->from);
-       /* This fib6_info_hold() is safe here because we hold reference to rt
-        * and rt already holds reference to fib6_info.
-        */
-       fib6_info_hold(res.f6i);
-       rcu_read_unlock();
++      if (!res.f6i)
+               goto out;
  
 -      nrt = ip6_rt_cache_alloc(from, &msg->dest, NULL);
 +      res.nh = &res.f6i->fib6_nh;
 +      res.fib6_flags = res.f6i->fib6_flags;
 +      res.fib6_type = res.f6i->fib6_type;
 +      nrt = ip6_rt_cache_alloc(&res, &msg->dest, NULL);
        if (!nrt)
                goto out;
  
  
        nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key;
  
-       /* No need to remove rt from the exception table if rt is
-        * a cached route because rt6_insert_exception() will
-        * takes care of it
-        */
+       /* rt6_insert_exception() will take care of duplicated exceptions */
 -      if (rt6_insert_exception(nrt, from)) {
 +      if (rt6_insert_exception(nrt, &res)) {
                dst_release_immediate(&nrt->dst);
                goto out;
        }