[Bug 262734] LinuxKPI: [patch] call dev_pm_ops::prepare() upon suspend to prevent Xorg from crashing after resume
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 262734] LinuxKPI: [patch] call dev_pm_ops::prepare() upon suspend to prevent Xorg from crashing after resume"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 262734] LinuxKPI: call dev_pm_ops::prepare() upon suspend to prevent Xorg from crashing after resume"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 23 Mar 2022 09:48:17 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262734 Bug ID: 262734 Summary: LinuxKPI: [patch] call dev_pm_ops::prepare() upon suspend to prevent Xorg from crashing after resume Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: taku@tackymt.homeip.net Created attachment 232653 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=232653&action=edit Call dev_pm_ops::prepare() from linux_pci_suspend() The dev_pm_ops' prepare() method should be called prior to its suspend() method, according to the Linux documentation: https://www.kernel.org/doc/html/v5.4/driver-api/pm/types.html#c.dev_pm_ops Without doing so, at least on my X1 Carbon 6th gen., Xorg usually (but not always) crashes after resume. I also suspect that the lacking of calling prepare() contributes to the hang on resume, infrequent but not rare, albeit no evidence. I have a couple of variants to call prepare() method at the time: * call prepare() via power_suspend_early eventhandler: stucks inside switch_to_kernel_context_sync() once per several trials. * (patch attached) call prepare() directly from linux_pci_suspend(): survives at least 10 trials, no failures yet. -- You are receiving this mail because: You are the assignee for the bug.