Messages in this thread Patch in this message | | | From | "Rafael J. Wysocki" <> | Subject | [PATCH] PM: core: Do not randomize struct dev_pm_ops layout | Date | Thu, 04 Aug 2022 19:15:08 +0200 |
| |
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Because __rpm_get_callback() uses offsetof() to compute the address of the callback in question in struct dev_pm_ops, randomizing the layout of the latter leads to interesting, but unfortunately also undesirable results in some cases.
Prevent that from happening by using the __no_randomize_layout annotation on struct dev_pm_ops.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> --- include/linux/pm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-pm/include/linux/pm.h =================================================================== --- linux-pm.orig/include/linux/pm.h +++ linux-pm/include/linux/pm.h @@ -307,7 +307,7 @@ struct dev_pm_ops { int (*runtime_suspend)(struct device *dev); int (*runtime_resume)(struct device *dev); int (*runtime_idle)(struct device *dev); -}; +} __no_randomize_layout; #define SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ .suspend = pm_sleep_ptr(suspend_fn), \
| |