All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Éric Piel" <Eric.Piel@tremplin-utc.net>
To: Len Brown <lenb@kernel.org>
Cc: trenn@suse.de, Andrew Morton <akpm@linux-foundation.org>,
	Philippe Coval <rzr@users.sourceforge.net>,
	linux-acpi@vger.kernel.org, dsdt <dsdt@gaugusch.at>
Subject: Re: [PATCH 2/3] Taint kernel on ACPI table override (format corrected)
Date: Tue, 05 Feb 2008 00:04:50 +0100	[thread overview]
Message-ID: <47A79A12.8070202@tremplin-utc.net> (raw)
In-Reply-To: <47A5F9F7.2080901@tremplin-utc.net>

When an ACPI table is overridden (for now this can happen only for DSDT)
display a big warning and taint the kernel with flag A.

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
---
 drivers/acpi/osl.c     |    7 +++++++
 include/linux/kernel.h |    1 +
 kernel/panic.c         |    5 +++--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 4568a59..549daea 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -392,6 +392,13 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
 			*new_table = initrd_table;
 	}
 #endif
+	if (*new_table != NULL) {
+		printk(KERN_WARNING PREFIX "Override [%4.4s-%8.8s], "
+			   "this is unsafe: tainting kernel\n",
+		       existing_table->signature,
+		       existing_table->oem_table_id);
+		add_taint(TAINT_OVERRIDDEN_ACPI_TABLE);
+	}
 	return AE_OK;
 }
 
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index a7283c9..f51f8bd 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -240,6 +240,7 @@ extern enum system_states {
 #define TAINT_BAD_PAGE			(1<<5)
 #define TAINT_USER			(1<<6)
 #define TAINT_DIE			(1<<7)
+#define TAINT_OVERRIDDEN_ACPI_TABLE	(1<<8)
 
 extern void dump_stack(void) __cold;
 
diff --git a/kernel/panic.c b/kernel/panic.c
index da4d6ba..1b7a002 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -160,7 +160,7 @@ const char *print_tainted(void)
 {
 	static char buf[20];
 	if (tainted) {
-		snprintf(buf, sizeof(buf), "Tainted: %c%c%c%c%c%c%c%c",
+		snprintf(buf, sizeof(buf), "Tainted: %c%c%c%c%c%c%c%c%c",
 			tainted & TAINT_PROPRIETARY_MODULE ? 'P' : 'G',
 			tainted & TAINT_FORCED_MODULE ? 'F' : ' ',
 			tainted & TAINT_UNSAFE_SMP ? 'S' : ' ',
@@ -168,7 +168,8 @@ const char *print_tainted(void)
 			tainted & TAINT_MACHINE_CHECK ? 'M' : ' ',
 			tainted & TAINT_BAD_PAGE ? 'B' : ' ',
 			tainted & TAINT_USER ? 'U' : ' ',
-			tainted & TAINT_DIE ? 'D' : ' ');
+			tainted & TAINT_DIE ? 'D' : ' ',
+			tainted & TAINT_OVERRIDDEN_ACPI_TABLE ? 'A' : ' ');
 	}
 	else
 		snprintf(buf, sizeof(buf), "Not tainted");

  reply	other threads:[~2008-02-04 23:04 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4798E2A5.6020804@users.sf.net>
     [not found] ` <20080125063328.4e3b4752.akpm@linux-foundation.org>
2008-01-26  4:39   ` initrd DSDT override (Re: Feedback about your talk in Rennes France (20080124) : Evolution of the Linux kernel & virtualization technologies) Len Brown
2008-01-30 17:27     ` [PATCH] Override DSDT and SSDTs via initramfs Thomas Renninger
2008-01-30 22:36       ` Éric Piel
2008-01-31 19:17         ` Len Brown
2008-02-01  9:53           ` Thomas Renninger
2008-02-01 11:07             ` Alexey Starikovskiy
2008-02-01 11:29               ` Thomas Renninger
2008-02-02  4:36             ` Len Brown
2008-02-03 17:28               ` [PATCH 0/3] Override DSDT " Éric Piel
2008-02-04 17:53                 ` Thomas Renninger
2008-02-04 22:57                   ` Éric Piel
2008-02-07  0:15                 ` Len Brown
2008-02-07  0:23                   ` Éric Piel
2008-02-07  1:07                     ` Len Brown
2008-02-07  1:12                     ` initrd DSDT override patch series Len Brown
2008-02-07  1:12                     ` [PATCH] ACPI: basic initramfs DSDT override support Len Brown
2008-02-07  1:12                     ` [PATCH] ACPI: Taint kernel on ACPI table override (format corrected) Len Brown
2008-02-07  1:12                     ` [PATCH] ACPI: Add "acpi_no_initrd_override" kernel parameter Len Brown
2008-02-07  1:12                     ` [PATCH] ACPI: update DSDT override documentation Len Brown
2008-02-07  1:12                     ` [PATCH] ACPI: update intrd DSDT override console messages Len Brown
2008-02-03 17:28               ` [PATCH 1/3] The basics of DSDT from initramfs Éric Piel
2008-02-03 17:39                 ` Markus Gaugusch
2008-02-03 17:55                   ` Éric Piel
2008-02-04 23:04                     ` [PATCH 1/3] The basics of DSDT from initramfs (format corrected) Éric Piel
2008-02-06 23:54                       ` Len Brown
2008-02-05 14:43                 ` [PATCH 1/3] The basics of DSDT from initramfs Thomas Renninger
2008-02-05 14:56                   ` Carlos Corbacho
2008-02-03 17:29               ` [PATCH 2/3] Taint kernel on ACPI table override Éric Piel
2008-02-04 23:04                 ` Éric Piel [this message]
2008-02-03 17:29               ` [PATCH 3/3] Add acpi_no_initrd_override kernel parameter Éric Piel
2008-02-04 23:04                 ` [PATCH 3/3] Add acpi_no_initrd_override kernel parameter (format corrected) Éric Piel
2008-02-01 10:21         ` [PATCH] Override DSDT and SSDTs via initramfs Thomas Renninger
2008-02-01 10:38           ` Eric Piel
2008-02-07  2:51           ` Len Brown
2008-02-07  7:57             ` Éric Piel
2008-04-18 22:07             ` Philippe Coval
2008-04-18 23:25               ` Eric Piel
2008-02-07  2:49         ` Len Brown

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=47A79A12.8070202@tremplin-utc.net \
    --to=eric.piel@tremplin-utc.net \
    --cc=akpm@linux-foundation.org \
    --cc=dsdt@gaugusch.at \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=rzr@users.sourceforge.net \
    --cc=trenn@suse.de \
    /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.