From nobody Fri Apr 3 08:38:30 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00EA21F875A; Wed, 1 Apr 2026 03:30:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014259; cv=none; b=feAsIiMPEWOkOJ5oy8GxMqxZfo8MvKDPF3Rf0b4NB+PnK1mZifdX/2Tj1IgG9McB23vJasmbhbDA6ePBPFg443L3T+EaLx5YqdwlRq5ZnEZlLaz3lKZ7WvRnfd+GZjZBXFxWTc4jFurjkVQgecm5WsKdt/yRJ//FroK82ipMuiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014259; c=relaxed/simple; bh=ai6PNSXECpvO4A644D3B7Mn2DNqwwjYn71wrEsz5nhI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iSTdGiHRzIQUABINRLb2jXuAmXOx7MhZv9pyEn4rpwLXjv44IUhmjeTPfrqdxWkQ7mPtwVXnkxpowwfIn7e/KzrnzBzF+AGgWqkGIX2J3O4hjcmXwGSGU8UFm57Cc3zRmlLmjYnOvTP5Y2LvgJdBXArnPWxwisaoYihxjNW5EKY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 2e007f842d7b11f1aa26b74ffac11d73-20260401 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_UNFAMILIAR, SRC_UNFAMILIAR DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_BAD CIE_GOOD_SPF, CIE_UNKNOWN, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU AMN_GOOD, ABX_MISS_RDNS X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.12,REQID:742f5f40-1580-44d5-95c9-ffbccdeb2246,IP:10, URL:0,TC:0,Content:0,EDM:0,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:5 X-CID-INFO: VERSION:1.3.12,REQID:742f5f40-1580-44d5-95c9-ffbccdeb2246,IP:10,UR L:0,TC:0,Content:0,EDM:0,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:5 X-CID-META: VersionHash:e7bac3a,CLOUDID:d76e7eb4af261e82779d18e1cb29b20c,BulkI D:260401113052KVNSC9SY,BulkQuantity:0,Recheck:0,SF:17|19|38|66|78|81|82|10 2|127|850|898,TC:nil,Content:0|15|50,EDM:-3,IP:-2,URL:0,File:nil,RT:nil,Bu lk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR: 0,BRE:0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 2e007f842d7b11f1aa26b74ffac11d73-20260401 X-User: tianyaxiong@kylinos.cn Received: from localhost.localdomain [(106.16.221.117)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 1257289319; Wed, 01 Apr 2026 11:30:50 +0800 From: Yaxiong Tian To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, zhanjie9@hisilicon.com, nm@ti.com Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Yaxiong Tian Subject: [PATCH v2 1/4] PM / devfreq: Fix possible null pointer issue in devfreq_add_governor() Date: Wed, 1 Apr 2026 11:30:46 +0800 Message-Id: <20260401033046.67482-1-tianyaxiong@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260401032838.66168-1-tianyaxiong@kylinos.cn> References: <20260401032838.66168-1-tianyaxiong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When a user removes a governor using devfreq_remove_governor(), if the current device is using this governor, devfreq->governor will be set to NULL. When the user registers any governor using devfreq_add_governor(), since devfreq->governor is NULL, a null pointer error occurs in strncmp(). For example: A user loads the userspace gov through a module, then a device selects userspace. When unloading the userspace module and then loading it again, the null pointer error occurs: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010 Mem abort info: ESR =3D 0x0000000096000004 EC =3D 0x25: DABT (current EL), IL =3D 32 bits *******************skip ********************* Call trace: __pi_strncmp+0x20/0x1b8 devfreq_userspace_init+0x1c/0xff8 [governor_userspace] do_one_initcall+0x4c/0x278 do_init_module+0x5c/0x218 load_module+0x1f1c/0x1fc8 init_module_from_file+0x8c/0xd0 __arm64_sys_finit_module+0x220/0x3d8 invoke_syscall+0x48/0x110 el0_svc_common.constprop.0+0xbc/0xe8 do_el0_svc+0x20/0x30 el0_svc+0x24/0xb8 el0t_64_sync_handler+0xb8/0xc0 el0t_64_sync+0x14c/0x150 To fix this issue, remove the list_for_each_entry() logic, as find_devfreq_governor() has already checked for the existence of governor with the same name. This makes it impossible to find a duplicate governor in the list, so the subsequent logic is unreachable and can be removed. Fixes: 1b5c1be2c88e ("PM / devfreq: map devfreq drivers to governor using n= ame") Signed-off-by: Yaxiong Tian --- drivers/devfreq/devfreq.c | 33 --------------------------------- 1 file changed, 33 deletions(-) Hi Jie Zhan:=20 If you're willing, I'd like to add your Co-developed-by tag. diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 82dd9a43dc62..994984f7b6e1 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1261,7 +1261,6 @@ void devfreq_resume(void) int devfreq_add_governor(struct devfreq_governor *governor) { struct devfreq_governor *g; - struct devfreq *devfreq; int err =3D 0; =20 if (!governor) { @@ -1280,38 +1279,6 @@ int devfreq_add_governor(struct devfreq_governor *go= vernor) =20 list_add(&governor->node, &devfreq_governor_list); =20 - list_for_each_entry(devfreq, &devfreq_list, node) { - int ret =3D 0; - struct device *dev =3D devfreq->dev.parent; - - if (!strncmp(devfreq->governor->name, governor->name, - DEVFREQ_NAME_LEN)) { - /* The following should never occur */ - if (devfreq->governor) { - dev_warn(dev, - "%s: Governor %s already present\n", - __func__, devfreq->governor->name); - ret =3D devfreq->governor->event_handler(devfreq, - DEVFREQ_GOV_STOP, NULL); - if (ret) { - dev_warn(dev, - "%s: Governor %s stop =3D %d\n", - __func__, - devfreq->governor->name, ret); - } - /* Fall through */ - } - devfreq->governor =3D governor; - ret =3D devfreq->governor->event_handler(devfreq, - DEVFREQ_GOV_START, NULL); - if (ret) { - dev_warn(dev, "%s: Governor %s start=3D%d\n", - __func__, devfreq->governor->name, - ret); - } - } - } - err_out: mutex_unlock(&devfreq_list_lock); =20 --=20 2.25.1 From nobody Fri Apr 3 08:38:30 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC8B11F875A; Wed, 1 Apr 2026 03:31:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014268; cv=none; b=MXUkFxk46jpQfn2JWyxGUnHVVwh/r24hQyyFqov0P/YLMIrSBUVV1Ac8KduLb+Ybcfg8iEyGxi9voUEMSGl82iN6gYziuW7L+KdkNX7G8mPZHbngDnU4WKzMmaT/pnT28uRdDU6U7Q4sXTGuuWW0MP1gkyNQD+N7Qf7PoAg8FO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014268; c=relaxed/simple; bh=5CGFhNCQOI0yuuYclPUbXal94Ds1V6CitkdMEpPNuwI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=An9jZo4qpNTATaHDO3GbypNCpnyr/sWiKSh0bvFJJa51cOZa19t+0rrEma7tHGfKClxkr3t4H1UTLtXkd26dLH6LNHYj+mCzdO2hZJ6p/Li5WvsZj4MVMiOALp6oefGX0FdIcREIMNrC8TP+IEOecLXoZCLcVhPMR1tGXiSCG3g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 3349e7642d7b11f1aa26b74ffac11d73-20260401 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_UNFAMILIAR, SRC_UNFAMILIAR DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_BAD CIE_GOOD_SPF, CIE_UNKNOWN, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU AMN_GOOD, ABX_MISS_RDNS X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.12,REQID:25d8c7d7-dcb5-4bbc-8cfa-4a7debaed8b7,IP:10, URL:0,TC:0,Content:0,EDM:25,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:30 X-CID-INFO: VERSION:1.3.12,REQID:25d8c7d7-dcb5-4bbc-8cfa-4a7debaed8b7,IP:10,UR L:0,TC:0,Content:0,EDM:25,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:30 X-CID-META: VersionHash:e7bac3a,CLOUDID:4e4fd67c1a3afbdfd5a1516a0f2d3cfa,BulkI D:260401113101YUB7CO8B,BulkQuantity:0,Recheck:0,SF:17|19|38|66|78|81|82|10 2|127|850|898,TC:nil,Content:0|15|50,EDM:5,IP:-2,URL:0,File:nil,RT:nil,Bul k:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0 ,BRE:0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 3349e7642d7b11f1aa26b74ffac11d73-20260401 X-User: tianyaxiong@kylinos.cn Received: from localhost.localdomain [(106.16.221.117)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 744866191; Wed, 01 Apr 2026 11:30:58 +0800 From: Yaxiong Tian To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, zhanjie9@hisilicon.com, nm@ti.com Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Yaxiong Tian Subject: [PATCH v2 2/4] PM / devfreq: Fix available_governors_show() when no governor is set Date: Wed, 1 Apr 2026 11:30:55 +0800 Message-Id: <20260401033055.67608-1-tianyaxiong@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260401032838.66168-1-tianyaxiong@kylinos.cn> References: <20260401032838.66168-1-tianyaxiong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since devfreq_remove_governor() may clear the device's current governor in certain situations, while governors actually exist independently of the device, directly returning EINVAL in this case is inaccurate. To fix this issue, remove this check and use df->governor for validity verification in the following code. Fixes: 483d557ee9a3 ("PM / devfreq: Clean up the devfreq instance name in s= ysfs attr") Signed-off-by: Yaxiong Tian --- drivers/devfreq/devfreq.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 994984f7b6e1..2977b07be939 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1468,16 +1468,13 @@ static ssize_t available_governors_show(struct devi= ce *d, struct devfreq *df =3D to_devfreq(d); ssize_t count =3D 0; =20 - if (!df->governor) - return -EINVAL; - mutex_lock(&devfreq_list_lock); =20 /* * The devfreq with immutable governor (e.g., passive) shows * only own governor. */ - if (IS_SUPPORTED_FLAG(df->governor->flags, IMMUTABLE)) { + if (df->governor && IS_SUPPORTED_FLAG(df->governor->flags, IMMUTABLE)) { count =3D scnprintf(&buf[count], DEVFREQ_NAME_LEN, "%s ", df->governor->name); /* --=20 2.25.1 From nobody Fri Apr 3 08:38:30 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF9B01F875A; Wed, 1 Apr 2026 03:31:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014292; cv=none; b=F6EBeGCdPemSPP4d8/ydNQVA4F1XYgzlJTbUjSkvr/IZ2r/IGuwIyzl5Vt2SYw6uB8Wu54pv4bMG/w6R1rtDIFSCmf1fhTCmmxCt9GMpJgH+lSFQWBOAgYKE41C4i8HrggVk1nuq3Z2tNHN8K2GmVbSqgp6V4umoPHtxaCtmsqE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014292; c=relaxed/simple; bh=mpsRLlgShVo0aSCmG5RomxoA/G0YvSjaCtIyd13tRgI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RU8md3qslqLFbzj+Gfmj8w4lx8yz54it8lbL19D42Lau0ucbdoZAl0JvPTaEEFSiVFAyOWjB4reNB7GgN6vgB78xEQayxCox043iGQ9T6C6DehNKzY989sm/c+/xkE8N25TLmOhO6CiPQHlTI/I0AETou92cVqa9kmZR110OxC4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 41910c582d7b11f1aa26b74ffac11d73-20260401 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_UNFAMILIAR, SRC_UNFAMILIAR DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_BAD CIE_GOOD_SPF, CIE_UNKNOWN, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU AMN_GOOD, ABX_MISS_RDNS X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.12,REQID:6ab4b3e0-440b-48d5-8b53-f345efef6c09,IP:10, URL:0,TC:0,Content:0,EDM:-20,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACT ION:release,TS:-15 X-CID-INFO: VERSION:1.3.12,REQID:6ab4b3e0-440b-48d5-8b53-f345efef6c09,IP:10,UR L:0,TC:0,Content:0,EDM:-20,RT:0,SF:-5,FILE:0,BULK:0,RULE:EDM_GE969F26,ACTI ON:release,TS:-15 X-CID-META: VersionHash:e7bac3a,CLOUDID:687112bede1fa0f076d65607ff1559be,BulkI D:260401113125116UWKOG,BulkQuantity:0,Recheck:0,SF:17|19|38|66|78|81|82|10 2|127|850|898,TC:nil,Content:0|15|50,EDM:1,IP:-2,URL:0,File:nil,RT:nil,Bul k:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0 ,BRE:0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_AEC,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 41910c582d7b11f1aa26b74ffac11d73-20260401 X-User: tianyaxiong@kylinos.cn Received: from localhost.localdomain [(106.16.221.117)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 1208669954; Wed, 01 Apr 2026 11:31:22 +0800 From: Yaxiong Tian To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, zhanjie9@hisilicon.com, nm@ti.com Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Yaxiong Tian Subject: [PATCH v2 3/4] PM / devfreq: Fix governor_store() failing when device has no current governor Date: Wed, 1 Apr 2026 11:31:19 +0800 Message-Id: <20260401033119.67821-1-tianyaxiong@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260401032838.66168-1-tianyaxiong@kylinos.cn> References: <20260401032838.66168-1-tianyaxiong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since devfreq_remove_governor() may clear the device's current governor in certain situations, while governors actually exist independently of the device, directly returning EINVAL in this case is inaccurate. To fix this issue, remove this check and add relevant logic for when df->governor is NULL. Fixes: 483d557ee9a3 ("PM / devfreq: Clean up the devfreq instance name in s= ysfs attr") Signed-off-by: Yaxiong Tian Reviewed-by: Jie Zhan --- drivers/devfreq/devfreq.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 2977b07be939..975f82d7a9d1 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1390,9 +1390,6 @@ static ssize_t governor_store(struct device *dev, str= uct device_attribute *attr, char str_governor[DEVFREQ_NAME_LEN + 1]; const struct devfreq_governor *governor, *prev_governor; =20 - if (!df->governor) - return -EINVAL; - ret =3D sscanf(buf, "%" __stringify(DEVFREQ_NAME_LEN) "s", str_governor); if (ret !=3D 1) return -EINVAL; @@ -1403,6 +1400,20 @@ static ssize_t governor_store(struct device *dev, st= ruct device_attribute *attr, ret =3D PTR_ERR(governor); goto out; } + + if (!df->governor) { + df->governor =3D governor; + ret =3D df->governor->event_handler(df, DEVFREQ_GOV_START, NULL); + if (ret) { + dev_warn(dev, "%s: Governor %s not started(%d)\n", + __func__, df->governor->name, ret); + df->governor =3D NULL; + } else { + ret =3D sysfs_update_group(&df->dev.kobj, &gov_attr_group); + } + goto out; + } + if (df->governor =3D=3D governor) { ret =3D 0; goto out; --=20 2.25.1 From nobody Fri Apr 3 08:38:30 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B921F184; Wed, 1 Apr 2026 03:31:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014298; cv=none; b=g6KDa6c8/SVY/wvOC6gVEoUjX/JalbbFU/WIg1OaUfU1hgPV2sdvRelqMC3388oIJXY2yFgZX4EFz3lumL+kC/NDPbjMdtditFaU0LPEbyKJqDJ/BmRQtlWMva8N1aHN5V6QFUzgNm49ohwPjjG/XwAH2SLnyThqLWdMxXqA5R0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775014298; c=relaxed/simple; bh=VqT9+ycH5T1MgB/p9BWp6Q+wFqU30fpR4nBtM41PUGE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=cYtVny37eNSFICZ+ynCQ6m/V+tQA2/iaBXYLYymgzVGqq5fsndalFVI/RtKTAB/4Oxzkq5XJqTINaei/rtp5XRaWRWr3rPM9uyaQup5QpfdKHBXAKLDgfIS0GSZ3FsGI7d7Nke2NCUJ9Nlngwv9wSjzkQj97agJlm0TxAzofpjE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 46911ac22d7b11f1aa26b74ffac11d73-20260401 X-CTIC-Tags: HR_CC_COUNT, HR_CC_DOMAIN_COUNT, HR_CC_NAME, HR_CC_NO_NAME, HR_CTE_8B HR_CTT_MISS, HR_DATE_H, HR_DATE_WKD, HR_DATE_ZONE, HR_FROM_NAME HR_SJ_DIGIT_LEN, HR_SJ_LANG, HR_SJ_LEN, HR_SJ_LETTER, HR_SJ_NOR_SYM HR_SJ_PHRASE, HR_SJ_PHRASE_LEN, HR_SJ_WS, HR_TO_COUNT, HR_TO_DOMAIN_COUNT HR_TO_NO_NAME, IP_UNTRUSTED, SRC_UNTRUSTED, IP_UNFAMILIAR, SRC_UNFAMILIAR DN_TRUSTED, SRC_TRUSTED, SA_TRUSTED, SA_EXISTED, SN_TRUSTED SN_EXISTED, SPF_NOPASS, DKIM_NOPASS, DMARC_NOPASS, CIE_BAD CIE_GOOD_SPF, CIE_UNKNOWN, GTI_FG_BS, GTI_RG_INFO, GTI_C_BU AMN_GOOD, ABX_MISS_RDNS X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.12,REQID:862ce655-812b-4ac6-8835-00e33d1c9234,IP:10, URL:0,TC:0,Content:0,EDM:25,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:30 X-CID-INFO: VERSION:1.3.12,REQID:862ce655-812b-4ac6-8835-00e33d1c9234,IP:10,UR L:0,TC:0,Content:0,EDM:25,RT:0,SF:-5,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:30 X-CID-META: VersionHash:e7bac3a,CLOUDID:01e762f625c52df4f78fe660fe417408,BulkI D:260401113131REYWVTL3,BulkQuantity:0,Recheck:0,SF:17|19|38|66|78|81|82|10 2|127|850|898,TC:nil,Content:0|15|50,EDM:5,IP:-2,URL:0,File:nil,RT:nil,Bul k:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0 ,BRE:0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 46911ac22d7b11f1aa26b74ffac11d73-20260401 X-User: tianyaxiong@kylinos.cn Received: from localhost.localdomain [(106.16.221.117)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 1317619568; Wed, 01 Apr 2026 11:31:31 +0800 From: Yaxiong Tian To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, zhanjie9@hisilicon.com, nm@ti.com Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Yaxiong Tian Subject: [PATCH v2 4/4] PM / devfreq: Optimize error return value of governor_show() Date: Wed, 1 Apr 2026 11:31:28 +0800 Message-Id: <20260401033128.67925-1-tianyaxiong@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260401032838.66168-1-tianyaxiong@kylinos.cn> References: <20260401032838.66168-1-tianyaxiong@kylinos.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When df->governor is NULL, governor_show() returns -EINVAL, which confuses users. To fix this issue, return -ENOENT to indicate that no governor is currently set for the device. Signed-off-by: Yaxiong Tian --- drivers/devfreq/devfreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 975f82d7a9d1..c40568d2a4dc 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1377,7 +1377,7 @@ static ssize_t governor_show(struct device *dev, struct devfreq *df =3D to_devfreq(dev); =20 if (!df->governor) - return -EINVAL; + return -ENOENT; =20 return sprintf(buf, "%s\n", df->governor->name); } --=20 2.25.1