All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Julien Grall <julien.grall@arm.com>
Cc: Daniel Kiper <daniel.kiper@oracle.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	sstabellini@kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, xen-devel@lists.xen.org,
	Matt Fleming <matt@codeblueprint.co.uk>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	linux-efi@vger.kernel.org
Subject: Re: [PATCH] arm64: xen: Implement EFI reset_system callback
Date: Thu, 6 Apr 2017 16:55:11 +0100	[thread overview]
Message-ID: <20170406155453.GA3966@leverpostej> (raw)
In-Reply-To: <e449f220-8db7-d58c-bdbf-47ccd6dd014b@arm.com>

[Adding the EFI maintainers]

Tl;DR: Xen's EFI wrappery doesn't implement reset_system, so when
invoked on arm64 we get a NULL dereference.

On Thu, Apr 06, 2017 at 04:39:13PM +0100, Julien Grall wrote:
> On 06/04/17 16:20, Daniel Kiper wrote:
> >On Thu, Apr 06, 2017 at 04:38:24PM +0200, Juergen Gross wrote:
> >>On 06/04/17 16:27, Daniel Kiper wrote:
> >>>On Thu, Apr 06, 2017 at 09:32:32AM +0100, Julien Grall wrote:
> >>>>Hi Juergen,
> >>>>
> >>>>On 06/04/17 07:23, Juergen Gross wrote:
> >>>>>On 05/04/17 21:49, Boris Ostrovsky wrote:
> >>>>>>On 04/05/2017 02:14 PM, Julien Grall wrote:
> >>>>>>>The x86 code has theoritically a similar issue, altought EFI does not
> >>>>>>>seem to be the preferred method. I have left it unimplemented on x86 and
> >>>>>>>CCed Linux Xen x86 maintainers to know their view here.
> >>>>>>
> >>>>>>(+Daniel)
> >>>>>>
> >>>>>>This could be a problem for x86 as well, at least theoretically.
> >>>>>>xen_machine_power_off() may call pm_power_off(), which is efi.reset_system.
> >>>>>>
> >>>>>>So I think we should have a similar routine there.
> >>>>>
> >>>>>+1
> >>>>>
> >>>>>I don't see any problem with such a routine added, in contrast to
> >>>>>potential "reboots" instead of power off without it.
> >>>>>
> >>>>>So I think this dummy xen_efi_reset_system() should be added to
> >>>>>drivers/xen/efi.c instead.
> >>>>
> >>>>I will resend the patch during day with xen_efi_reset_system moved
> >>>>to common code and implement the x86 counterpart (thought, I will
> >>>>not be able to test it).
> >>>
> >>>I think that this is ARM specific issue. On x86 machine_restart() calls
> >>>xen_restart(). Hence, everything works. So, I think that it should be
> >>>fixed only for ARM. Anyway, please CC me when you send a patch.
> >>
> >>What about xen_machine_power_off() (as stated in Boris' mail)?
> >
> >Guys what do you think about that:
> >
> >--- a/drivers/firmware/efi/reboot.c
> >+++ b/drivers/firmware/efi/reboot.c
> >@@ -55,7 +55,7 @@ static void efi_power_off(void)
> >
> > static int __init efi_shutdown_init(void)
> > {
> >-       if (!efi_enabled(EFI_RUNTIME_SERVICES))
> >+       if (!efi_enabled(EFI_RUNTIME_SERVICES) || efi_enabled(EFI_PARAVIRT))
> >                return -ENODEV;
> >
> >        if (efi_poweroff_required())
> >
> >
> >Julien, for ARM64 please take a look at arch/arm64/kernel/efi.c:efi_poweroff_required(void).
> >
> >I hope that tweaks for both files should solve our problem.
> 
> This sounds good for power off (I haven't tried to power off DOM0
> yet).

Please, let's keep the Xen knowledge constrained to the Xen EFI wrapper,
rather than spreading it further.

IMO, given reset_system is a *mandatory* function, the Xen wrapper
should provide an implementation.

I don't see why you can't implement a wrapper that calls the usual Xen
poweroff/reset functions.

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
To: Julien Grall <julien.grall-5wv7dgnIgG8@public.gmane.org>
Cc: Daniel Kiper
	<daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	Juergen Gross <jgross-IBi9RG/b67k@public.gmane.org>,
	Boris Ostrovsky
	<boris.ostrovsky-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	sstabellini-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	xen-devel-GuqFBffKawuEi8DpZVb4nw@public.gmane.org,
	Matt Fleming
	<matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>,
	Ard Biesheuvel
	<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] arm64: xen: Implement EFI reset_system callback
Date: Thu, 6 Apr 2017 16:55:11 +0100	[thread overview]
Message-ID: <20170406155453.GA3966@leverpostej> (raw)
In-Reply-To: <e449f220-8db7-d58c-bdbf-47ccd6dd014b-5wv7dgnIgG8@public.gmane.org>

[Adding the EFI maintainers]

Tl;DR: Xen's EFI wrappery doesn't implement reset_system, so when
invoked on arm64 we get a NULL dereference.

On Thu, Apr 06, 2017 at 04:39:13PM +0100, Julien Grall wrote:
> On 06/04/17 16:20, Daniel Kiper wrote:
> >On Thu, Apr 06, 2017 at 04:38:24PM +0200, Juergen Gross wrote:
> >>On 06/04/17 16:27, Daniel Kiper wrote:
> >>>On Thu, Apr 06, 2017 at 09:32:32AM +0100, Julien Grall wrote:
> >>>>Hi Juergen,
> >>>>
> >>>>On 06/04/17 07:23, Juergen Gross wrote:
> >>>>>On 05/04/17 21:49, Boris Ostrovsky wrote:
> >>>>>>On 04/05/2017 02:14 PM, Julien Grall wrote:
> >>>>>>>The x86 code has theoritically a similar issue, altought EFI does not
> >>>>>>>seem to be the preferred method. I have left it unimplemented on x86 and
> >>>>>>>CCed Linux Xen x86 maintainers to know their view here.
> >>>>>>
> >>>>>>(+Daniel)
> >>>>>>
> >>>>>>This could be a problem for x86 as well, at least theoretically.
> >>>>>>xen_machine_power_off() may call pm_power_off(), which is efi.reset_system.
> >>>>>>
> >>>>>>So I think we should have a similar routine there.
> >>>>>
> >>>>>+1
> >>>>>
> >>>>>I don't see any problem with such a routine added, in contrast to
> >>>>>potential "reboots" instead of power off without it.
> >>>>>
> >>>>>So I think this dummy xen_efi_reset_system() should be added to
> >>>>>drivers/xen/efi.c instead.
> >>>>
> >>>>I will resend the patch during day with xen_efi_reset_system moved
> >>>>to common code and implement the x86 counterpart (thought, I will
> >>>>not be able to test it).
> >>>
> >>>I think that this is ARM specific issue. On x86 machine_restart() calls
> >>>xen_restart(). Hence, everything works. So, I think that it should be
> >>>fixed only for ARM. Anyway, please CC me when you send a patch.
> >>
> >>What about xen_machine_power_off() (as stated in Boris' mail)?
> >
> >Guys what do you think about that:
> >
> >--- a/drivers/firmware/efi/reboot.c
> >+++ b/drivers/firmware/efi/reboot.c
> >@@ -55,7 +55,7 @@ static void efi_power_off(void)
> >
> > static int __init efi_shutdown_init(void)
> > {
> >-       if (!efi_enabled(EFI_RUNTIME_SERVICES))
> >+       if (!efi_enabled(EFI_RUNTIME_SERVICES) || efi_enabled(EFI_PARAVIRT))
> >                return -ENODEV;
> >
> >        if (efi_poweroff_required())
> >
> >
> >Julien, for ARM64 please take a look at arch/arm64/kernel/efi.c:efi_poweroff_required(void).
> >
> >I hope that tweaks for both files should solve our problem.
> 
> This sounds good for power off (I haven't tried to power off DOM0
> yet).

Please, let's keep the Xen knowledge constrained to the Xen EFI wrapper,
rather than spreading it further.

IMO, given reset_system is a *mandatory* function, the Xen wrapper
should provide an implementation.

I don't see why you can't implement a wrapper that calls the usual Xen
poweroff/reset functions.

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: xen: Implement EFI reset_system callback
Date: Thu, 6 Apr 2017 16:55:11 +0100	[thread overview]
Message-ID: <20170406155453.GA3966@leverpostej> (raw)
In-Reply-To: <e449f220-8db7-d58c-bdbf-47ccd6dd014b@arm.com>

[Adding the EFI maintainers]

Tl;DR: Xen's EFI wrappery doesn't implement reset_system, so when
invoked on arm64 we get a NULL dereference.

On Thu, Apr 06, 2017 at 04:39:13PM +0100, Julien Grall wrote:
> On 06/04/17 16:20, Daniel Kiper wrote:
> >On Thu, Apr 06, 2017 at 04:38:24PM +0200, Juergen Gross wrote:
> >>On 06/04/17 16:27, Daniel Kiper wrote:
> >>>On Thu, Apr 06, 2017 at 09:32:32AM +0100, Julien Grall wrote:
> >>>>Hi Juergen,
> >>>>
> >>>>On 06/04/17 07:23, Juergen Gross wrote:
> >>>>>On 05/04/17 21:49, Boris Ostrovsky wrote:
> >>>>>>On 04/05/2017 02:14 PM, Julien Grall wrote:
> >>>>>>>The x86 code has theoritically a similar issue, altought EFI does not
> >>>>>>>seem to be the preferred method. I have left it unimplemented on x86 and
> >>>>>>>CCed Linux Xen x86 maintainers to know their view here.
> >>>>>>
> >>>>>>(+Daniel)
> >>>>>>
> >>>>>>This could be a problem for x86 as well, at least theoretically.
> >>>>>>xen_machine_power_off() may call pm_power_off(), which is efi.reset_system.
> >>>>>>
> >>>>>>So I think we should have a similar routine there.
> >>>>>
> >>>>>+1
> >>>>>
> >>>>>I don't see any problem with such a routine added, in contrast to
> >>>>>potential "reboots" instead of power off without it.
> >>>>>
> >>>>>So I think this dummy xen_efi_reset_system() should be added to
> >>>>>drivers/xen/efi.c instead.
> >>>>
> >>>>I will resend the patch during day with xen_efi_reset_system moved
> >>>>to common code and implement the x86 counterpart (thought, I will
> >>>>not be able to test it).
> >>>
> >>>I think that this is ARM specific issue. On x86 machine_restart() calls
> >>>xen_restart(). Hence, everything works. So, I think that it should be
> >>>fixed only for ARM. Anyway, please CC me when you send a patch.
> >>
> >>What about xen_machine_power_off() (as stated in Boris' mail)?
> >
> >Guys what do you think about that:
> >
> >--- a/drivers/firmware/efi/reboot.c
> >+++ b/drivers/firmware/efi/reboot.c
> >@@ -55,7 +55,7 @@ static void efi_power_off(void)
> >
> > static int __init efi_shutdown_init(void)
> > {
> >-       if (!efi_enabled(EFI_RUNTIME_SERVICES))
> >+       if (!efi_enabled(EFI_RUNTIME_SERVICES) || efi_enabled(EFI_PARAVIRT))
> >                return -ENODEV;
> >
> >        if (efi_poweroff_required())
> >
> >
> >Julien, for ARM64 please take a look at arch/arm64/kernel/efi.c:efi_poweroff_required(void).
> >
> >I hope that tweaks for both files should solve our problem.
> 
> This sounds good for power off (I haven't tried to power off DOM0
> yet).

Please, let's keep the Xen knowledge constrained to the Xen EFI wrapper,
rather than spreading it further.

IMO, given reset_system is a *mandatory* function, the Xen wrapper
should provide an implementation.

I don't see why you can't implement a wrapper that calls the usual Xen
poweroff/reset functions.

Thanks,
Mark.

  parent reply	other threads:[~2017-04-06 15:55 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-05 18:14 [PATCH] arm64: xen: Implement EFI reset_system callback Julien Grall
2017-04-05 18:14 ` Julien Grall
2017-04-05 19:49 ` Boris Ostrovsky
2017-04-05 19:49 ` Boris Ostrovsky
2017-04-05 19:49   ` Boris Ostrovsky
2017-04-06  6:23   ` Juergen Gross
2017-04-06  6:23   ` Juergen Gross
2017-04-06  6:23     ` Juergen Gross
2017-04-06  8:32     ` Julien Grall
2017-04-06  8:32     ` Julien Grall
2017-04-06  8:32       ` Julien Grall
2017-04-06  8:37       ` Juergen Gross
2017-04-06  8:37         ` Juergen Gross
2017-04-06  8:37       ` Juergen Gross
2017-04-06 14:27       ` Daniel Kiper
2017-04-06 14:27         ` Daniel Kiper
2017-04-06 14:32         ` Julien Grall
2017-04-06 14:32           ` Julien Grall
2017-04-06 14:37           ` Boris Ostrovsky
2017-04-06 14:37           ` Boris Ostrovsky
2017-04-06 14:37             ` Boris Ostrovsky
2017-04-06 14:32         ` Julien Grall
2017-04-06 14:38         ` Juergen Gross
2017-04-06 14:38           ` Juergen Gross
2017-04-06 15:20           ` Daniel Kiper
2017-04-06 15:20             ` Daniel Kiper
2017-04-06 15:39             ` Julien Grall
2017-04-06 15:39               ` Julien Grall
2017-04-06 15:55               ` Mark Rutland
2017-04-06 15:55               ` Mark Rutland [this message]
2017-04-06 15:55                 ` Mark Rutland
2017-04-06 15:55                 ` Mark Rutland
2017-04-18 13:46                 ` Matt Fleming
2017-04-18 13:46                 ` Matt Fleming
2017-04-18 13:46                   ` Matt Fleming
2017-04-18 13:46                   ` Matt Fleming
2017-04-19 19:29                   ` Daniel Kiper
2017-04-19 19:29                   ` Daniel Kiper
2017-04-19 19:29                     ` Daniel Kiper
2017-04-19 19:29                     ` Daniel Kiper
2017-04-19 19:37                     ` Matt Fleming
2017-04-19 19:37                       ` Matt Fleming
2017-04-19 19:37                       ` Matt Fleming
2017-04-19 19:43                       ` Daniel Kiper
2017-04-19 19:43                       ` Daniel Kiper
2017-04-19 19:43                         ` Daniel Kiper
2017-04-19 19:43                         ` Daniel Kiper
2017-04-19 19:37                     ` Matt Fleming
2017-04-06 16:06               ` Daniel Kiper
2017-04-06 16:06               ` Daniel Kiper
2017-04-06 16:06                 ` Daniel Kiper
2017-04-06 16:22                 ` Juergen Gross
2017-04-06 16:22                 ` Juergen Gross
2017-04-06 16:22                   ` Juergen Gross
2017-04-06 16:43                   ` Daniel Kiper
2017-04-06 16:43                   ` Daniel Kiper
2017-04-06 16:43                     ` Daniel Kiper
2017-04-06 17:39                     ` Juergen Gross
2017-04-06 17:39                       ` Juergen Gross
2017-04-18 18:37                       ` Stefano Stabellini
2017-04-18 18:37                       ` Stefano Stabellini
2017-04-18 18:37                         ` Stefano Stabellini
2017-04-18 18:43                         ` Juergen Gross
2017-04-18 18:43                         ` Juergen Gross
2017-04-18 18:43                           ` Juergen Gross
2017-04-18 18:46                           ` Stefano Stabellini
2017-04-18 18:46                             ` Stefano Stabellini
2017-04-18 18:51                             ` Juergen Gross
2017-04-18 18:51                               ` Juergen Gross
2017-04-20 18:09                               ` Julien Grall
2017-04-20 18:09                                 ` Julien Grall
2017-04-20 18:09                                 ` Julien Grall
2017-04-20 18:09                               ` Julien Grall
2017-04-18 18:51                             ` Juergen Gross
2017-04-18 18:46                           ` Stefano Stabellini
2017-04-06 17:39                     ` Juergen Gross
2017-04-06 15:39             ` Julien Grall
2017-04-06 15:20           ` Daniel Kiper
2017-04-06 14:38         ` Juergen Gross
2017-04-06 14:27       ` Daniel Kiper
2017-04-05 21:26 ` Stefano Stabellini
2017-04-05 21:26 ` Stefano Stabellini
2017-04-05 21:26   ` Stefano Stabellini
  -- strict thread matches above, loose matches on Subject: below --
2017-04-05 18:14 Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170406155453.GA3966@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=boris.ostrovsky@oracle.com \
    --cc=daniel.kiper@oracle.com \
    --cc=jgross@suse.com \
    --cc=julien.grall@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.