diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 4ca3cb993da2..bc8ac49b3bec 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -3995,7 +3995,7 @@ static int cgroup_cpu_pressure_show(struct seq_file *seq, void *v) static ssize_t pressure_write(struct kernfs_open_file *of, char *buf, size_t nbytes, enum psi_res res) { - struct cgroup_file_ctx *ctx = of->priv; + struct cgroup_file_ctx *ctx; struct psi_trigger *new; struct cgroup *cgrp; struct psi_group *psi; @@ -4004,6 +4004,12 @@ static ssize_t pressure_write(struct kernfs_open_file *of, char *buf, if (!cgrp) return -ENODEV; + ctx = of->priv; + if (!ctx) { + cgroup_kn_unlock(of->kn); + return -ENODEV; + } + cgroup_get(cgrp); cgroup_kn_unlock(of->kn);