if (!filter)
                                return -ENOMEM;
 
-                       err = copy_from_user(filter, optval, optlen);
-                       if (err) {
+                       if (copy_from_user(filter, optval, optlen)) {
                                kfree(filter);
-                               return err;
+                               return -EFAULT;
                        }
                } else if (count == 1) {
-                       err = copy_from_user(&sfilter, optval, optlen);
-                       if (err)
-                               return err;
+                       if (copy_from_user(&sfilter, optval, optlen))
+                               return -EFAULT;
                }
 
                lock_sock(sk);
                if (optlen != sizeof(err_mask))
                        return -EINVAL;
 
-               err = copy_from_user(&err_mask, optval, optlen);
-               if (err)
-                       return err;
+               if (copy_from_user(&err_mask, optval, optlen))
+                       return -EFAULT;
 
                err_mask &= CAN_ERR_MASK;
 
                if (optlen != sizeof(ro->loopback))
                        return -EINVAL;
 
-               err = copy_from_user(&ro->loopback, optval, optlen);
+               if (copy_from_user(&ro->loopback, optval, optlen))
+                       return -EFAULT;
 
                break;
 
                if (optlen != sizeof(ro->recv_own_msgs))
                        return -EINVAL;
 
-               err = copy_from_user(&ro->recv_own_msgs, optval, optlen);
+               if (copy_from_user(&ro->recv_own_msgs, optval, optlen))
+                       return -EFAULT;
 
                break;