[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] ARM: xen: only set pm function ptrs for Xen guests
On Wed, Aug 28, 2013 at 11:32 AM, Julien Grall <julien.grall@xxxxxxxxxx> wrote: > On 08/28/2013 05:19 PM, Rob Herring wrote: >> From: Rob Herring <rob.herring@xxxxxxxxxxx> >> >> xen_pm_init was unconditionally setting pm_power_off and arm_pm_restart >> function pointers. This breaks multi-platform kernels. Move this >> initialization into xen_guest_init, so it is conditional on running as a >> Xen guest. >> >> Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> >> Signed-off-by: Rob Herring <rob.herring@xxxxxxxxxxx> >> --- >> This breaks reset and poweroff for Midway when Xen is enabled. This >> should go into 3.11 or stable. >> Rob >> >> arch/arm/xen/enlighten.c | 12 +++--------- >> 1 file changed, 3 insertions(+), 9 deletions(-) >> >> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c >> index 8a6295c..fa86452 100644 >> --- a/arch/arm/xen/enlighten.c >> +++ b/arch/arm/xen/enlighten.c >> @@ -263,6 +263,9 @@ static int __init xen_guest_init(void) >> if (xen_vcpu_info == NULL) >> return -ENOMEM; >> >> + pm_power_off = xen_power_off; >> + arm_pm_restart = xen_restart; >> + > > I think it's too early to set pm callbacks. If Linux is running as dom0, > xen needs to overwrite the power management callback. Otherwise, dom0 > could shutdown/restart the whole platform, that is annoying. > For instance, on the versatile express, the power management callback > are set very late (ie during driver initialization). > > pm callbacks should be updated by a late initcall and check if xen is > enabled. > >> gnttab_init(); >> if (!xen_initial_domain()) >> xenbus_probe(NULL); >> @@ -271,15 +274,6 @@ static int __init xen_guest_init(void) >> } >> core_initcall(xen_guest_init); >> >> -static int __init xen_pm_init(void) >> -{ >> - pm_power_off = xen_power_off; >> - arm_pm_restart = xen_restart; >> - >> - return 0; >> -} >> -subsys_initcall(xen_pm_init); >> - >> static irqreturn_t xen_arm_callback(int irq, void *arg) >> { >> xen_hvm_evtchn_do_upcall(); >> > > > -- > Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |