From: Matt Fleming <matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
To: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
catalin.marinas-5wv7dgnIgG8@public.gmane.org,
hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org,
leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
will.deacon-5wv7dgnIgG8@public.gmane.org,
Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
Subject: Re: [PATCHv3 0/5] efi: detect erroneous firmware IRQ manipulation
Date: Mon, 25 Apr 2016 17:03:09 +0100 [thread overview]
Message-ID: <20160425160309.GD2829@codeblueprint.co.uk> (raw)
In-Reply-To: <1461591994-14918-1-git-send-email-mark.rutland-5wv7dgnIgG8@public.gmane.org>
On Mon, 25 Apr, at 02:46:29PM, Mark Rutland wrote:
> Note: this is largely a rework of the final patch from v2 [2], which now has a
> per-arch component (and hence additional patches). The rest of v2 has already
> been picked up, and hence dropped from this posting.
>
> Some firmware erroneously unmask IRQs (and potentially other architecture
> specific exceptions) during runtime services functions, in violation of both
> common sense and the UEFI specification. This can result in a number of issues
> if said exceptions are taken when they are expected to be masked, and
> additionally can confuse IRQ tracing if the original mask state is not
> restored prior to returning from firmware.
>
> In practice it's difficult to check that firmware never unmasks exceptions, but
> we can at least check that the IRQ flags are at least consistent upon entry to
> and return from a runtime services function call. This series implements said
> check in the shared EFI runtime wrappers code, after an initial round of
> refactoring (patches 1-5 of [2]).
>
> I have left ia64 as-is, without this check, as ia64 doesn't currently use the
> generic runtime wrappers, has many special cases for the runtime calls which
> don't fit well with the generic code, and I don't expect a new, buggy ia64
> firmware to appear soon.
>
> The first time corruption of the IRQ flags is detected, we dump a stack trace,
> and set TAINT_FIRMWARE_WORKAROUND. Additionally, and in all subsequent cases,
> we log (with ratelimiting) the specific corruption of the flags, and restore
> the expected flags to avoid redundant warnings elsewhere.
Thanks Mark. I've picked up the series and applied it to the v4.7
queue.
WARNING: multiple messages have this Message-ID (diff)
From: matt@codeblueprint.co.uk (Matt Fleming)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv3 0/5] efi: detect erroneous firmware IRQ manipulation
Date: Mon, 25 Apr 2016 17:03:09 +0100 [thread overview]
Message-ID: <20160425160309.GD2829@codeblueprint.co.uk> (raw)
In-Reply-To: <1461591994-14918-1-git-send-email-mark.rutland@arm.com>
On Mon, 25 Apr, at 02:46:29PM, Mark Rutland wrote:
> Note: this is largely a rework of the final patch from v2 [2], which now has a
> per-arch component (and hence additional patches). The rest of v2 has already
> been picked up, and hence dropped from this posting.
>
> Some firmware erroneously unmask IRQs (and potentially other architecture
> specific exceptions) during runtime services functions, in violation of both
> common sense and the UEFI specification. This can result in a number of issues
> if said exceptions are taken when they are expected to be masked, and
> additionally can confuse IRQ tracing if the original mask state is not
> restored prior to returning from firmware.
>
> In practice it's difficult to check that firmware never unmasks exceptions, but
> we can at least check that the IRQ flags are at least consistent upon entry to
> and return from a runtime services function call. This series implements said
> check in the shared EFI runtime wrappers code, after an initial round of
> refactoring (patches 1-5 of [2]).
>
> I have left ia64 as-is, without this check, as ia64 doesn't currently use the
> generic runtime wrappers, has many special cases for the runtime calls which
> don't fit well with the generic code, and I don't expect a new, buggy ia64
> firmware to appear soon.
>
> The first time corruption of the IRQ flags is detected, we dump a stack trace,
> and set TAINT_FIRMWARE_WORKAROUND. Additionally, and in all subsequent cases,
> we log (with ratelimiting) the specific corruption of the flags, and restore
> the expected flags to avoid redundant warnings elsewhere.
Thanks Mark. I've picked up the series and applied it to the v4.7
queue.
WARNING: multiple messages have this Message-ID (diff)
From: Matt Fleming <matt@codeblueprint.co.uk>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-efi@vger.kernel.org, ard.biesheuvel@linaro.org,
catalin.marinas@arm.com, hpa@zytor.com, leif.lindholm@linaro.org,
linux-arm-kernel@lists.infradead.org, linux@arm.linux.org.uk,
linux-kernel@vger.kernel.org, mingo@redhat.com,
tglx@linutronix.de, will.deacon@arm.com,
Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCHv3 0/5] efi: detect erroneous firmware IRQ manipulation
Date: Mon, 25 Apr 2016 17:03:09 +0100 [thread overview]
Message-ID: <20160425160309.GD2829@codeblueprint.co.uk> (raw)
In-Reply-To: <1461591994-14918-1-git-send-email-mark.rutland@arm.com>
On Mon, 25 Apr, at 02:46:29PM, Mark Rutland wrote:
> Note: this is largely a rework of the final patch from v2 [2], which now has a
> per-arch component (and hence additional patches). The rest of v2 has already
> been picked up, and hence dropped from this posting.
>
> Some firmware erroneously unmask IRQs (and potentially other architecture
> specific exceptions) during runtime services functions, in violation of both
> common sense and the UEFI specification. This can result in a number of issues
> if said exceptions are taken when they are expected to be masked, and
> additionally can confuse IRQ tracing if the original mask state is not
> restored prior to returning from firmware.
>
> In practice it's difficult to check that firmware never unmasks exceptions, but
> we can at least check that the IRQ flags are at least consistent upon entry to
> and return from a runtime services function call. This series implements said
> check in the shared EFI runtime wrappers code, after an initial round of
> refactoring (patches 1-5 of [2]).
>
> I have left ia64 as-is, without this check, as ia64 doesn't currently use the
> generic runtime wrappers, has many special cases for the runtime calls which
> don't fit well with the generic code, and I don't expect a new, buggy ia64
> firmware to appear soon.
>
> The first time corruption of the IRQ flags is detected, we dump a stack trace,
> and set TAINT_FIRMWARE_WORKAROUND. Additionally, and in all subsequent cases,
> we log (with ratelimiting) the specific corruption of the flags, and restore
> the expected flags to avoid redundant warnings elsewhere.
Thanks Mark. I've picked up the series and applied it to the v4.7
queue.
next prev parent reply other threads:[~2016-04-25 16:03 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-25 13:46 [PATCHv3 0/5] efi: detect erroneous firmware IRQ manipulation Mark Rutland
2016-04-25 13:46 ` Mark Rutland
2016-04-25 13:46 ` Mark Rutland
2016-04-25 13:46 ` [PATCHv3 1/5] efi/runtime-wrappers: detect FW irq flag corruption Mark Rutland
2016-04-25 13:46 ` Mark Rutland
[not found] ` <1461591994-14918-2-git-send-email-mark.rutland-5wv7dgnIgG8@public.gmane.org>
2016-04-25 14:12 ` Robin Murphy
2016-04-25 14:12 ` Robin Murphy
2016-04-25 14:12 ` Robin Murphy
2016-04-25 14:15 ` Matt Fleming
2016-04-25 14:15 ` Matt Fleming
[not found] ` <20160425141557.GA2829-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-04-25 14:18 ` Ard Biesheuvel
2016-04-25 14:18 ` Ard Biesheuvel
2016-04-25 14:18 ` Ard Biesheuvel
[not found] ` <CAKv+Gu8yH4u0-DNezUTk5b1DQJdEaH4RxR7YMQcwmkuRmEaNEw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-25 14:24 ` Matt Fleming
2016-04-25 14:24 ` Matt Fleming
2016-04-25 14:24 ` Matt Fleming
[not found] ` <20160425142435.GB2829-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-04-25 14:27 ` Mark Rutland
2016-04-25 14:27 ` Mark Rutland
2016-04-25 14:27 ` Mark Rutland
2016-04-25 15:59 ` Matt Fleming
2016-04-25 15:59 ` Matt Fleming
2016-04-25 15:59 ` Matt Fleming
2016-04-25 16:03 ` Mark Rutland
2016-04-25 16:03 ` Mark Rutland
2016-04-25 14:33 ` Robin Murphy
2016-04-25 14:33 ` Robin Murphy
2016-04-25 13:46 ` [PATCHv3 2/5] arm64/efi: enable runtime call flag checking Mark Rutland
2016-04-25 13:46 ` Mark Rutland
2016-04-25 13:46 ` Mark Rutland
2016-04-25 13:54 ` Will Deacon
2016-04-25 13:54 ` Will Deacon
2016-04-25 13:46 ` [PATCHv3 3/5] arm/efi: " Mark Rutland
2016-04-25 13:46 ` Mark Rutland
2016-04-25 13:46 ` [PATCHv3 4/5] x86/efi: " Mark Rutland
2016-04-25 13:46 ` Mark Rutland
2016-04-25 13:46 ` [PATCHv3 5/5] efi/runtime-wrappers: remove ARCH_EFI_IRQ_FLAGS_MASK ifdef Mark Rutland
2016-04-25 13:46 ` Mark Rutland
[not found] ` <1461591994-14918-1-git-send-email-mark.rutland-5wv7dgnIgG8@public.gmane.org>
2016-04-25 16:03 ` Matt Fleming [this message]
2016-04-25 16:03 ` [PATCHv3 0/5] efi: detect erroneous firmware IRQ manipulation Matt Fleming
2016-04-25 16:03 ` Matt Fleming
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=20160425160309.GD2829@codeblueprint.co.uk \
--to=matt-mf/unelci9gs6ibeejttw/xrex20p6io@public.gmane.org \
--cc=ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=robin.murphy-5wv7dgnIgG8@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@public.gmane.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.