public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [tip:core/efi] x86/efi-bgrt: Switch pr_err() to pr_debug() for invalid BGRT
       [not found] <1438936621-5215-2-git-send-email-matt@codeblueprint.co.uk>
@ 2015-08-09 10:23 ` tip-bot for Matt Fleming
  0 siblings, 0 replies; only message in thread
From: tip-bot for Matt Fleming @ 2015-08-09 10:23 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: mjg59, tglx, mingo, hpa, linux-kernel, josh, tom.ty89, torvalds,
	matt.fleming, peterz

Commit-ID:  248fbcd5aee00f6519a12c5ed3bc3dc0f5e84de5
Gitweb:     http://git.kernel.org/tip/248fbcd5aee00f6519a12c5ed3bc3dc0f5e84de5
Author:     Matt Fleming <matt.fleming@intel.com>
AuthorDate: Fri, 7 Aug 2015 09:36:55 +0100
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 8 Aug 2015 10:37:39 +0200

x86/efi-bgrt: Switch pr_err() to pr_debug() for invalid BGRT

It's totally legitimate, per the ACPI spec, for the firmware to
set the BGRT 'status' field to zero to indicate that the BGRT
image isn't being displayed, and we shouldn't be printing an
error message in that case because it's just noise for users. So
swap pr_err() for pr_debug().

However, Josh points that out it still makes sense to test the
validity of the upper 7 bits of the 'status' field, since
they're marked as "reserved" in the spec and must be zero. If
firmware violates this it really *is* an error.

Reported-by: Tom Yan <tom.ty89@gmail.com>
Tested-by: Tom Yan <tom.ty89@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1438936621-5215-2-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/platform/efi/efi-bgrt.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/x86/platform/efi/efi-bgrt.c b/arch/x86/platform/efi/efi-bgrt.c
index d7f997f..ea48449 100644
--- a/arch/x86/platform/efi/efi-bgrt.c
+++ b/arch/x86/platform/efi/efi-bgrt.c
@@ -50,11 +50,16 @@ void __init efi_bgrt_init(void)
 		       bgrt_tab->version);
 		return;
 	}
-	if (bgrt_tab->status != 1) {
-		pr_err("Ignoring BGRT: invalid status %u (expected 1)\n",
+	if (bgrt_tab->status & 0xfe) {
+		pr_err("Ignoring BGRT: reserved status bits are non-zero %u\n",
 		       bgrt_tab->status);
 		return;
 	}
+	if (bgrt_tab->status != 1) {
+		pr_debug("Ignoring BGRT: invalid status %u (expected 1)\n",
+			 bgrt_tab->status);
+		return;
+	}
 	if (bgrt_tab->image_type != 0) {
 		pr_err("Ignoring BGRT: invalid image type %u (expected 0)\n",
 		       bgrt_tab->image_type);

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-08-09 10:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1438936621-5215-2-git-send-email-matt@codeblueprint.co.uk>
2015-08-09 10:23 ` [tip:core/efi] x86/efi-bgrt: Switch pr_err() to pr_debug() for invalid BGRT tip-bot for Matt Fleming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox