summaryrefslogtreecommitdiffstats
path: root/kernel/fail_function.c
diff options
context:
space:
mode:
authorRodrigo Vivi <rodrigo.vivi@intel.com>2021-01-08 06:03:51 -0500
committerRodrigo Vivi <rodrigo.vivi@intel.com>2021-01-08 06:03:51 -0500
commit10205618052908770451acd33eaeaa7685e97ed2 (patch)
tree4d025943e32f343fa917db7abed8a606faa17775 /kernel/fail_function.c
parent6fdb335f1c9c0845b50625de1624d8445c4c4a07 (diff)
parentcb3cfbf79aff7decb4e5ee69a7c74864497f61dc (diff)
downloadcachepc-linux-10205618052908770451acd33eaeaa7685e97ed2.tar.gz
cachepc-linux-10205618052908770451acd33eaeaa7685e97ed2.zip
Merge drm/drm-next into drm-intel-next
sync-up to not fall too much behind. Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'kernel/fail_function.c')
-rw-r--r--kernel/fail_function.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/fail_function.c b/kernel/fail_function.c
index 63b349168da7..60dc825ecc2b 100644
--- a/kernel/fail_function.c
+++ b/kernel/fail_function.c
@@ -37,9 +37,7 @@ static unsigned long adjust_error_retval(unsigned long addr, unsigned long retv)
{
switch (get_injectable_error_type(addr)) {
case EI_ETYPE_NULL:
- if (retv != 0)
- return 0;
- break;
+ return 0;
case EI_ETYPE_ERRNO:
if (retv < (unsigned long)-MAX_ERRNO)
return (unsigned long)-EINVAL;
@@ -48,6 +46,8 @@ static unsigned long adjust_error_retval(unsigned long addr, unsigned long retv)
if (retv != 0 && retv < (unsigned long)-MAX_ERRNO)
return (unsigned long)-EINVAL;
break;
+ case EI_ETYPE_TRUE:
+ return 1;
}
return retv;
@@ -253,7 +253,7 @@ static ssize_t fei_write(struct file *file, const char __user *buffer,
if (copy_from_user(buf, buffer, count)) {
ret = -EFAULT;
- goto out;
+ goto out_free;
}
buf[count] = '\0';
sym = strstrip(buf);
@@ -307,8 +307,9 @@ static ssize_t fei_write(struct file *file, const char __user *buffer,
ret = count;
}
out:
- kfree(buf);
mutex_unlock(&fei_lock);
+out_free:
+ kfree(buf);
return ret;
}