Commit 6080fb21 authored by Joel Fernandes's avatar Joel Fernandes Committed by Peter Zijlstra
Browse files

sched/debug: Fix updating of ppos on server write ops



Updating "ppos" on error conditions does not make much sense. The pattern
is to return the error code directly without modifying the position, or
modify the position on success and return the number of bytes written.

Since on success, the return value of apply is 0, there is no point in
modifying ppos either. Fix it by removing all this and just returning
error code or number of bytes written on success.

Signed-off-by: default avatarJoel Fernandes <joelagnelf@nvidia.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarJuri Lelli <juri.lelli@redhat.com>
Reviewed-by: default avatarAndrea Righi <arighi@nvidia.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Tested-by: default avatarChristian Loehle <christian.loehle@arm.com>
Link: https://patch.msgid.link/20260126100050.3854740-3-arighi@nvidia.com
parent 3cb3b276
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -339,8 +339,8 @@ static ssize_t sched_fair_server_write(struct file *filp, const char __user *ubu
	long cpu = (long) ((struct seq_file *) filp->private_data)->private;
	struct rq *rq = cpu_rq(cpu);
	u64 runtime, period;
	int retval = 0;
	size_t err;
	int retval;
	u64 value;

	err = kstrtoull_from_user(ubuf, cnt, 10, &value);
@@ -374,8 +374,6 @@ static ssize_t sched_fair_server_write(struct file *filp, const char __user *ubu
		dl_server_stop(&rq->fair_server);

		retval = dl_server_apply_params(&rq->fair_server, runtime, period, 0);
		if (retval)
			cnt = retval;

		if (!runtime)
			printk_deferred("Fair server disabled in CPU %d, system may crash due to starvation.\n",
@@ -383,6 +381,9 @@ static ssize_t sched_fair_server_write(struct file *filp, const char __user *ubu

		if (rq->cfs.h_nr_queued)
			dl_server_start(&rq->fair_server);

		if (retval < 0)
			return retval;
	}

	*ppos += cnt;