break;
 
                rcu_read_lock();
-               if (!rcu_dereference(cp->ulp_ops[CNIC_ULP_L4])) {
+               if (!rcu_access_pointer(cp->ulp_ops[CNIC_ULP_L4])) {
                        rc = -ENODEV;
                        rcu_read_unlock();
                        break;
        list_for_each_entry(dev, &cnic_dev_list, list) {
                struct cnic_local *cp = dev->cnic_priv;
 
-               if (rcu_dereference(cp->ulp_ops[ulp_type])) {
+               if (rcu_access_pointer(cp->ulp_ops[ulp_type])) {
                        pr_err("%s: Type %d still has devices registered\n",
                               __func__, ulp_type);
                        read_unlock(&cnic_dev_lock);
                mutex_unlock(&cnic_lock);
                return -EAGAIN;
        }
-       if (rcu_dereference(cp->ulp_ops[ulp_type])) {
+       if (rcu_access_pointer(cp->ulp_ops[ulp_type])) {
                pr_err("%s: Type %d has already been registered to this device\n",
                       __func__, ulp_type);
                mutex_unlock(&cnic_lock);