Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1385919
| From | Matt Fleming <matt@codeblueprint.co.uk> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCHv2 1/6] efi/runtime-wrappers: add {__,}efi_call_virt templates |
| Date | 2016-04-24 23:20 +0200 |
| Message-ID | <rrzBE-2BD-13@gated-at.bofh.it> (permalink) |
| References | <rqJMK-2OK-3@gated-at.bofh.it> <rqJMN-2OK-55@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Fri, 22 Apr, at 02:51:18PM, Mark Rutland wrote: > Currently each architecture must implement two macros, efi_call_virt and > __efi_call_virt, which only differ by the presence or absence of a > return type. Otherwise, the logic surrounding the call is identical. > > As each architecture must define the entire body of each, we can't place > any generic manipulation (e.g. irq flag validation) in the middle. > > This patch adds template implementations of these macros. With these, > arch code can implement three template macros, avoiding reptition for > the void/non-void return cases: > > * arch_efi_call_virt_setup > > Sets up the environment for the call (e.g. switching page tables, > allowing kernel-mode use of floating point, if required). > > * arch_efi_call_virt > > Performs the call. The last expression in the macro must be the call > itself, allowing the logic to be shared by the void and non-void > cases. > > * arch_efi_call_virt_teardown > > Restores the usual kernel environment once the call has returned. > > While the savings from repition are minimal, we additionally gain the > ability to add common code around the call with the call environment set > up. This can be used to detect common firmware issues (e.g. bad irq mask > management). > > Signed-off-by: Mark Rutland <mark.rutland@arm.com> > Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Matt Fleming <matt@codeblueprint.co.uk> > Cc: linux-efi@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > --- > drivers/firmware/efi/runtime-wrappers.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) Applied. I incorporated the explanation of the 3 template macros next to the code because it is too useful to only have it exist in the git commit history.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Mark Rutland <mark.rutland@arm.com> - 2016-04-22 16:00 +0200
[PATCHv2 3/6] arm/efi: move to generic {__,}efi_call_virt Mark Rutland <mark.rutland@arm.com> - 2016-04-22 16:00 +0200
[PATCHv2 6/6] efi/runtime-wrappers: detect FW irq flag corruption Mark Rutland <mark.rutland@arm.com> - 2016-04-22 16:00 +0200
Re: [PATCHv2 6/6] efi/runtime-wrappers: detect FW irq flag corruption Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-24 23:20 +0200
[PATCHv2 2/6] arm64/efi: move to generic {__,}efi_call_virt Mark Rutland <mark.rutland@arm.com> - 2016-04-22 16:00 +0200
[PATCHv2 1/6] efi/runtime-wrappers: add {__,}efi_call_virt templates Mark Rutland <mark.rutland@arm.com> - 2016-04-22 16:00 +0200
Re: [PATCHv2 1/6] efi/runtime-wrappers: add {__,}efi_call_virt templates Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-24 23:20 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-04-22 16:20 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-24 23:30 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-25 12:20 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-04-25 12:30 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-25 12:30 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Mark Rutland <mark.rutland@arm.com> - 2016-04-25 12:50 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-25 13:00 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Mark Rutland <mark.rutland@arm.com> - 2016-04-25 13:10 +0200
Re: [PATCHv2 0/6] efi: detect erroneous firmware IRQ manipulation Matt Fleming <matt@codeblueprint.co.uk> - 2016-04-25 13:20 +0200
csiph-web