All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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.