Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp977430pxf; Thu, 25 Mar 2021 20:21:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz7Hx71h8zZz4wP1JvJCKI0pUoxYynVch1nEJa/WxGeH1DA9GXYTIzZ6MjATj6N3LFwVg95 X-Received: by 2002:a17:906:229b:: with SMTP id p27mr13360904eja.287.1616728892224; Thu, 25 Mar 2021 20:21:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616728892; cv=none; d=google.com; s=arc-20160816; b=yVJy8vTnjjQJQxzUDS0xI5zboasBjw6Npyroo1ZckzExKlAdaOa3u06LzdKOHaFdC3 hwOjFw1MWWTFWhxwFO+QWBX74QFSLRPL+2nxt/7vtpUzcjyhvxaWUFBTmwIpxEVmUO04 2C4v1I3UFjPRQzzNHH/PZxRg8vuqEyiKRE4ko7mJcQkeP4jUH2f/PMfBY2H2NDwY9GQc kO5sfQ2NXZfHCaone6P35qBzARG8r6emdCDcR8+IMKI+0hOfFvsnIIs+AfFNufjuGgq0 eXBfIVKAUhdKxero4xB5oVUvbxsyF3lZ4c6GGIsJrRT2OF7Z5uQB0nuSw4+f+GAGq+gF 1zoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=/EuQMgeM7mbuxlvCPODNsPCh04DTGpyq72WM85ZflKE=; b=k63GfNzwdB4sVE8hwnt9tnmLoS0JZKUAtwrN/xdcDXnDcq79TXDlsER57Dpsrr9w2U gIehqlr5rNn7ORJ27/4oWfyjrVeYBraPTBrRwUiZNk9UM3J+ujt4WDw/bD7WXviTwUtc lfvvGCMG2RxWRLJ0c7+k6vsX7AxpTVPfsf9eO+HnuYqASSHLL5H9SmMPeeI8zRFj3EyX hDlrmbtfdzR0MN0r9hpqKF3WG/1+2/74oCLP30kNrRFFvodr+1aeXp//d3gd+bZEYx81 71pLmXUXrAUZkjfF4sgUIHUKieLT/+Hz4pfdLDbynAPj7C27B5gp7kpe8mEu3C4VdsUa zUaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hisilicon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hq38si5733803ejc.350.2021.03.25.20.21.09; Thu, 25 Mar 2021 20:21:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hisilicon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230330AbhCZDSl (ORCPT + 99 others); Thu, 25 Mar 2021 23:18:41 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:14611 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230266AbhCZDSH (ORCPT ); Thu, 25 Mar 2021 23:18:07 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4F66Yw38sTz19K0s; Fri, 26 Mar 2021 11:16:04 +0800 (CST) Received: from localhost.localdomain (10.67.165.24) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.498.0; Fri, 26 Mar 2021 11:17:58 +0800 From: Zeng Tao To: , , , CC: , Zeng Tao , "Dietmar Eggemann" , Steven Rostedt , Ben Segall , Mel Gorman , "Daniel Bristot de Oliveira" , Subject: [PATCH] sched/cpupri: fix the task priority BUG_ON checks Date: Fri, 26 Mar 2021 11:15:11 +0800 Message-ID: <1616728512-54749-1-git-send-email-prime.zeng@hisilicon.com> X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The BUG_ON checks are intended to check if the task priotity is valid, but in the function convert_prio, if the task priority is not valid, it will be converted to an uninitialized stack variable. Fix it by moving the BUG_ON checks to the default branch of convert_prio. Fixes: 934fc3314b39 ("sched/cpupri: Remap CPUPRI_NORMAL to MAX_RT_PRIO-1") Signed-off-by: Zeng Tao --- kernel/sched/cpupri.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c index ec9be78..c5a0e6e 100644 --- a/kernel/sched/cpupri.c +++ b/kernel/sched/cpupri.c @@ -60,6 +60,8 @@ static int convert_prio(int prio) case MAX_RT_PRIO: cpupri = CPUPRI_HIGHER; /* 100 */ break; + default: + BUG(); } return cpupri; @@ -148,8 +150,6 @@ int cpupri_find_fitness(struct cpupri *cp, struct task_struct *p, int task_pri = convert_prio(p->prio); int idx, cpu; - BUG_ON(task_pri >= CPUPRI_NR_PRIORITIES); - for (idx = 0; idx < task_pri; idx++) { if (!__cpupri_find(cp, p, lowest_mask, idx)) @@ -215,8 +215,6 @@ void cpupri_set(struct cpupri *cp, int cpu, int newpri) newpri = convert_prio(newpri); - BUG_ON(newpri >= CPUPRI_NR_PRIORITIES); - if (newpri == oldpri) return; -- 2.8.1