Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c61935fd authored by Ingo Molnar's avatar Ingo Molnar
Browse files

sched: group scheduler, set uid share fix

setting cpu share to 1 causes hangs, as reported in:

    http://bugzilla.kernel.org/show_bug.cgi?id=9779



as the default share is 1024, the values of 0 and 1 can indeed
cause problems. Limit it to 2 or higher values.

These values can only be set by the root user - but still it
makes sense to protect against nonsensical values.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent d384e35a
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -7153,6 +7153,14 @@ int sched_group_set_shares(struct task_group *tg, unsigned long shares)
{
	int i;

	/*
	 * A weight of 0 or 1 can cause arithmetics problems.
	 * (The default weight is 1024 - so there's no practical
	 *  limitation from this.)
	 */
	if (shares < 2)
		shares = 2;

	spin_lock(&tg->lock);
	if (tg->shares == shares)
		goto done;