Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/pseries/hibernation: switch to rtas_ibm_suspend_me()

rtas_suspend_last_cpu() and related code perform a lot of work that
isn't relevant to the hibernation workflow. All other CPUs are offline
when called so there is no need to place them in H_JOIN or prod them
on resume, nor is there need for retries or operations on shared
state.

Call the rtas_ibm_suspend_me() wrapper function directly from
pseries_suspend_enter() instead of using rtas_suspend_last_cpu().

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201207215200.1785968-23-nathanl@linux.ibm.com

authored by

Nathan Lynch and committed by
Michael Ellerman
366fb13b 395b2c09

+1 -5
+1 -5
arch/powerpc/platforms/pseries/suspend.c
··· 76 76 **/ 77 77 static int pseries_suspend_enter(suspend_state_t state) 78 78 { 79 - int rc = rtas_suspend_last_cpu(&suspend_data); 80 - 81 - atomic_set(&suspending, 0); 82 - atomic_set(&suspend_data.done, 1); 83 - return rc; 79 + return rtas_ibm_suspend_me(NULL); 84 80 } 85 81 86 82 /**