From nobody Mon Apr 6 15:42:21 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 5699E3B6360; Thu, 19 Mar 2026 09:17:15 +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=1773911837; cv=none; b=MBlY/e1QzT+nJqVecRf7PpVBaFBlaT8pdZq32AlE6ZK3qvT0UFBge0Nvr6QOWjw6nuHRrw4gkeZ+Fg7IgSPG4tJpZ/cfBQR7i8xWHNPzqXs+F3IgMFlzZotIWTBPHTKOe3Yi7VEkj+51P6dzEEsjHXtRk2oIi+IsVd+0iVXQ8D4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773911837; c=relaxed/simple; bh=OYvYGcA5crFc4qw3Y7HuNbAVzmr9Bht0Unt0J66Ifew=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hkOeNg2ufGOxxXFj9KAdG9NeP3ePJ9D0ae/5qM8FrgFJ2SRnL0jjsuvLMsvIXXcfsnfFnOQNsOm7tRvmbkWok4PHytgUlGpZzT5bLIuDwSPgmlZrSRWys9BbTmC2fXggaII8gFRZP84ZjvcGMKW3KL2Lk6CGSRn5IS0FtURbFpo= 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: 6aa0d7f6237411f1a21c59e7364eecb8-20260319 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_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.11,REQID:c73e7686-b166-45cd-a526-4bb20c701ad1,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.11,REQID:c73e7686-b166-45cd-a526-4bb20c701ad1,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:89c9d04,CLOUDID:546ff78d8f27260954c8eb0e9ed71fa6,BulkI D:260309195451VYH3YVRQ,BulkQuantity:1,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:41,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_AEC,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_SNR X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 6aa0d7f6237411f1a21c59e7364eecb8-20260319 X-User: tianyaxiong@kylinos.cn Received: from localhost.localdomain [(175.2.81.164)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 640967745; Thu, 19 Mar 2026 17:17:13 +0800 From: Yaxiong Tian To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, nm@ti.com Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Yaxiong Tian Subject: [PATCH RESEND 3/4] PM / devfreq: Fix governor_store() failing when device has no current governor Date: Thu, 19 Mar 2026 17:17:10 +0800 Message-Id: <20260319091710.1006814-1-tianyaxiong@kylinos.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260319091409.998397-1-tianyaxiong@kylinos.cn> References: <20260319091409.998397-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 --- drivers/devfreq/devfreq.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 0bf320123e3a..4a312f3c2421 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -1425,9 +1425,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; @@ -1438,6 +1435,18 @@ 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; + } + goto out; + } + if (df->governor =3D=3D governor) { ret =3D 0; goto out; --=20 2.25.1