Skip to content
Snippets Groups Projects
Commit d13f5d84 authored by Jiri Kosina's avatar Jiri Kosina
Browse files

Merge branch 'for-4.16/signal-sysfs-force-v2' into for-next

parents d0807da7 8869016d
No related branches found
No related tags found
No related merge requests found
...@@ -532,22 +532,24 @@ static ssize_t signal_store(struct kobject *kobj, struct kobj_attribute *attr, ...@@ -532,22 +532,24 @@ static ssize_t signal_store(struct kobject *kobj, struct kobj_attribute *attr,
int ret; int ret;
bool val; bool val;
patch = container_of(kobj, struct klp_patch, kobj);
/*
* klp_mutex lock is not grabbed here intentionally. It is not really
* needed. The race window is harmless and grabbing the lock would only
* hold the action back.
*/
if (patch != klp_transition_patch)
return -EINVAL;
ret = kstrtobool(buf, &val); ret = kstrtobool(buf, &val);
if (ret) if (ret)
return ret; return ret;
if (val) if (!val)
klp_send_signals(); return count;
mutex_lock(&klp_mutex);
patch = container_of(kobj, struct klp_patch, kobj);
if (patch != klp_transition_patch) {
mutex_unlock(&klp_mutex);
return -EINVAL;
}
klp_send_signals();
mutex_unlock(&klp_mutex);
return count; return count;
} }
...@@ -559,22 +561,24 @@ static ssize_t force_store(struct kobject *kobj, struct kobj_attribute *attr, ...@@ -559,22 +561,24 @@ static ssize_t force_store(struct kobject *kobj, struct kobj_attribute *attr,
int ret; int ret;
bool val; bool val;
patch = container_of(kobj, struct klp_patch, kobj);
/*
* klp_mutex lock is not grabbed here intentionally. It is not really
* needed. The race window is harmless and grabbing the lock would only
* hold the action back.
*/
if (patch != klp_transition_patch)
return -EINVAL;
ret = kstrtobool(buf, &val); ret = kstrtobool(buf, &val);
if (ret) if (ret)
return ret; return ret;
if (val) if (!val)
klp_force_transition(); return count;
mutex_lock(&klp_mutex);
patch = container_of(kobj, struct klp_patch, kobj);
if (patch != klp_transition_patch) {
mutex_unlock(&klp_mutex);
return -EINVAL;
}
klp_force_transition();
mutex_unlock(&klp_mutex);
return count; return count;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment