lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID:
 <VI2PR04MB11147FFAA0C0A4D8F56102967E8A2A@VI2PR04MB11147.eurprd04.prod.outlook.com>
Date: Mon, 8 Dec 2025 03:35:22 +0000
From: Carlos Song <carlos.song@....com>
To: "rafael@...nel.org" <rafael@...nel.org>, "lenb@...nel.org"
	<lenb@...nel.org>, "pavel@...nel.org" <pavel@...nel.org>, Greg Kroah-Hartman
	<gregkh@...uxfoundation.org>, "dakr@...nel.org" <dakr@...nel.org>
CC: "linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Frank Li
	<frank.li@....com>, Xu Yang <xu.yang_2@....com>
Subject: Report one issue caused by different return value of
 pm_runtime_resume_and_get() in 6.18

Hi, Rafael

I meet one issue possibly caused by this patch set:
https://patchwork.kernel.org/project/linux-pm/patch/2336655.iZASKD2KPV@rjwysocki.net/

I found pm_runtime_resume_and_get() function returned different value after pm_runtime_force_suspend() in 6.18 compared with 6.12.

In 6.18: pm_runtime_resume_and_get 0;
       pm_runtime_status_suspended(dev)) 0; 
       pm_runtime_enabled(dev)) 0;

In 6.12: pm_runtime_resume_and_get -13;
       pm_runtime_status_suspended(dev)) 1;
       pm_runtime_enabled(dev)) 0;

This issue happened on IMX8QM LPI2C + PTN5110 typec:

LPI2C need to remain active during resume_noirq() or suspend_noirq(), this patch is merged to i2c-imx-lpi2c driver:
https://patchwork.kernel.org/project/imx/patch/20241227084736.1323943-1-carlos.song@nxp.com/
LPI2C will depend on pm_runtime_force_suspend() and pm_runtime_force_resume() to make controller available until the system enters
suspend_noirq() and from resume_noirq().

Typec will create one tcpm kthread, tcpm kthread worker may execute some works at the very end of system suspend or the very beginning of system resume stage:
https://patchwork.kernel.org/project/imx/patch/20251202084524.208045-1-xu.yang_2@nxp.com/

When tcpm kthread call lpi2c xfer after pm_runtime_force_suspend() or before pm_runtime_force_resume(), because pm_runtime_resume_and_get() return 0 in 6.18 (but it return -13 in 6.12)in lpi2c_imx_master_enable(), so in 6.18 LPI2C will continue to write register but LPI2C ipg clk has stopped, it caused system hang.

How can I do to fix this? Can you help me some?

Best Regard
Carlos Song


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ