linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/5] Provide better MADT subtable sanity checks
@ 2015-09-29 23:45 Al Stone
  2015-09-29 23:45 ` [PATCH v5 1/5] ACPI: add in a bad_madt_entry() function to eventually replace the macro Al Stone
                   ` (5 more replies)
  0 siblings, 6 replies; 26+ messages in thread
From: Al Stone @ 2015-09-29 23:45 UTC (permalink / raw)
  To: linux-acpi, linux-arm-kernel
  Cc: linux-kernel, linux-ia64, linux-pm, linaro-acpi, linaro-kernel,
	patches, Al Stone

NB: this patch set is for use against the linux-pm bleeding edge branch.

Currently, the BAD_MADT_ENTRY macro is used to do a very simple sanity
check on the various subtables that are defined for the MADT.  The check
compares the size of the subtable data structure as defined by ACPICA to
the length entry in the subtable.  If they are not the same, the assumption
is that the subtable is incorrect.

Over time, the ACPI spec has allowed for MADT subtables where this can
never be true (the local SAPIC subtable, for example).  Or, more recently,
the spec has accumulated some minor flaws where there are three possible 
sizes for a subtable, all of which are valid, but only for specific versions
of the spec (the GICC subtable).  In both cases, BAD_MADT_ENTRY reports these
subtables as bad when they are not.  In order to retain some sanity check
on the MADT subtables, we now have to special case these subtables.  Of
necessity, these special cases have ended up in arch-dependent code (arm64)
or an arch has simply decided to forgo the check (ia64).

This patch set replaces the BAD_MADT_ENTRY macro with a function called
bad_madt_entry().  This function uses a data set of details about the
subtables to provide more sanity checking than before:

	-- is the subtable legal for the version given in the FADT?

	-- is the subtable legal for the revision of the MADT in use?

	-- is the subtable of the proper length (including checking
	   on the one variable length subtable that is currently ignored),
	   given the FADT version and the MADT revision?

Further, this patch set adds in the call to bad_madt_entry() from the 
acpi_table_parse_madt() function, allowing it to be used consistently
by all architectures, for all subtables, and removing the need for each
of the subtable traversal callback functions to use BAD_MADT_ENTRY.

In theory, as the ACPI specification changes, we would only have to add
additional information to the data set describing the MADT subtables in
order to continue providing sanity checks, even when new subtables are
added.

These patches have been tested on an APM Mustang (arm64) and are known to
work there.  They have also been cross-compiled for x86 and ia64 with no
known failures.

Changes for v5:
   -- 0-day found incorrect data in the table describing allowed MADT
      subtables; this only affected ACPI 1.0 firmware.  Corrected the
      data to meet the 1.0b spec.
   -- Rebase to bleeding-edge branch for Rafael Wysocki; this patch set
      now requires that a patch set from Marc Zyngier be applied first:
      https://lkml.org/lkml/2015/9/28/421
   -- Tested on AMD Seattle (linux-pm tree) also

Changes for v4:
   -- Remove extraneous white space change (Graeme Gregory)
   -- acpi_parse_entries() changes also needed a check to make sure that
      only MADT entries used bad_madt_entry() (Sudeep Holla)
   -- inadvertent use of 01day build noted that bad_madt_entry() can be
      static, so added it (Sudeep Holla, Fengguang Wu)

Changes for v3:
   -- Reviewed-and-tested-by from Sudeep Holla for arm64 parts
   -- Clearer language in error messages (Graeme Gregory, Timur Tabi)
   -- Double checked that inserting call to bad_madt_entry() into the
      function acpi_parse_entries() does not impact current behavior
      (Sudeep Holla)
   
Changes for v2:
   -- Acked-by on 2/5 from Marc Zyngier and Catalin Marinas for ARM
   -- Correct faulty end of loop test found by Timur Tabi


Al Stone (5):
  ACPI: add in a bad_madt_entry() function to eventually replace the
    macro
  ACPI / ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY
  ACPI / IA64: remove usage of BAD_MADT_ENTRY
  ACPI / X86: remove usage of BAD_MADT_ENTRY
  ACPI: remove definition of BAD_MADT_ENTRY macro

 arch/arm64/include/asm/acpi.h |   8 --
 arch/arm64/kernel/smp.c       |   2 -
 arch/ia64/kernel/acpi.c       |  20 ----
 arch/x86/kernel/acpi/boot.c   |  27 -----
 drivers/acpi/tables.c         | 247 +++++++++++++++++++++++++++++++++++++++++-
 drivers/irqchip/irq-gic.c     |   3 -
 include/linux/acpi.h          |   4 -
 7 files changed, 246 insertions(+), 65 deletions(-)

-- 
2.4.3


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH v5 1/5] ACPI: add in a bad_madt_entry() function to eventually replace the macro
  2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
@ 2015-09-29 23:45 ` Al Stone
  2015-09-29 23:45 ` [PATCH v5 2/5] ACPI / ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY Al Stone
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-09-29 23:45 UTC (permalink / raw)
  To: linux-acpi, linux-arm-kernel
  Cc: linux-kernel, linux-ia64, linux-pm, linaro-acpi, linaro-kernel,
	patches, Al Stone, Rafael J. Wysocki, Len Brown

The existing BAD_MADT_ENTRY macro only checks that the size of the data
structure for an MADT subtable matches the length entry in the subtable.
This is, unfortunately, not reliable.  Nor, as it turns out, does it have
anything to do with what the length should be in any particular table.

We introduce the bad_madt_entry() function that uses a data set to
do some basic sanity checks on any given MADT subtable.  Over time, as
the spec changes, we should just be able to add entries to the data set
to reflect the changes.

What the data set captures is the allowed MADT subtable length for each
type of subtable, for each revision of the specification.  While there
is a revision number in the MADT that we should be able to use to figure
out the proper subtable length, it was not changed when subtables did.
And, while there is a major and minor revision in the FADT that could
also help, it was not always changed as the subtables changed either.
So, the data set captures for each published version of the ACPI spec
what the FADT revisions numbers should be, the corresponding MADT
revision number, and the subtable types and lengths that were defined
at that time.

The sanity checks done are:
	-- is the length non-zero?
	-- is the subtable type defined/allowed for the revision of
	   the FADT we're using?
	-- is the subtable type defined/allowed for the revision of
	   the MADT we're using?
	-- is the length entry what it should be for this revision
	   of the MADT and FADT?

These checks are more thorough than the previous macro provided, and
are now insulated from data structure size changes by ACPICA, which
have been the source of other patches in the past.

Now that the bad_madt_entry() function is available, we add code to
also invoke it before any subtable handlers are called to use the
info in the subtable.  Subsequent patches will remove the use of the
BAD_MADT_ENTRY macro which is now redundant as a result.  Any ACPI
functions that use acpi_parse_madt_entries() will always have all of
the MADT subtables checked from now on.

Signed-off-by: Al Stone <al.stone@linaro.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Len Brown <lenb@kernel.org>
---
 drivers/acpi/tables.c | 247 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 246 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 6c0f079..a2ed38a 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -210,6 +210,247 @@ void acpi_table_print_madt_entry(struct acpi_subtable_header *header)
 	}
 }
 
+/*
+ * The Long, Sad, True Story of the MADT
+ *    or
+ * What does bad_madt_entry() actually do?
+ *
+ * Once upon a time in ACPI 1.0, there was the MADT.  It was a nice table,
+ * and it had two subtables all of its own.  But, it was also a pretty
+ * busy table, too, so over time the MADT gathered up other nice little
+ * subtables.  By the time ACPI 6.0 came around, the MADT had 16 of the
+ * little guys.
+ *
+ * Now, the MADT kept a little counter around for the subtables.  In fact,
+ * it kept two counters: one was the revision level, which was supposed to
+ * change when new subtables came to be, or as the ones already around grew
+ * up. The second counter was a type number, because the MADT needed a unique
+ * type for each subtable so he could tell them apart.  But, sometimes the
+ * MADT got so busy, he forgot to increment the revision level when he needed
+ * to.  Fortunately, the type counter kept increasing since that's the only
+ * way the MADT could find each little subtable.  It just wouldn't do to have
+ * every subtable called Number 6.
+ *
+ * In the next valley over, a castle full of wizards was watching the MADT
+ * and made a pact to keep their own counter.  Every time the MADT found a
+ * new subtable, or a subtable grew up, the wizards promised they would
+ * increment their counter.  Well, wizards being the forgetful sort, they
+ * didn't alway do that.  And, since there quite a lot of them, they
+ * couldn't always remember who was supposed to keep track of the MADT,
+ * especially if dinner was coming up soon.  Their counter was called the
+ * spec version.
+ *
+ * Every now and then, the MADT would gather up all its little subtables
+ * and take them in to the cobbler to get new boots.  This was a very, very
+ * meticulous cobbler, so every time they came, he wrote down all the boot
+ * sizes for all of the little subtables.  The cobbler would ask each subtable
+ * for its length, check that against his careful notes, and then go get the
+ * right boots.  Sometimes, a little subtable would change a bit, and their
+ * length did not match what the cobbler had written down.  If the wizards
+ * or the MADT had incremented their counters, the cobbler would breath a
+ * sigh of relief and write down the new length as the right one.  But, if
+ * none of the counters had changed, this would make the cobbler very, very
+ * mad.  He couldn't tell if he had the right size boots or not for the
+ * little subtable.  He would have to *guess* and this really bugged him.
+ *
+ * Well, when the cobbler got mad like this, he would go into hiding.  He
+ * would not make or sell any boots.  He would not go out at all.  Pretty
+ * soon, the coffee shop would have to close because the cobbler wasn't
+ * coming by twice a day any more.  Then the grocery store would have to
+ * close because he wouldn't eat much.  After a while, everyone would panic
+ * and have to move from the village and go live with all their relatives
+ * (usually the ones they didn't like very much).
+ *
+ * Eventually, the cobbler would work his way out of his bad mood, and
+ * open up his boot business again.  Then, everyone else could move back
+ * to the village and restart their lives, too.
+ *
+ * Fortunately, we have been able to collect up all the cobbler's careful
+ * notes (and we wrote them down below).  We'll have to keep checking these
+ * notes over time, too, just as the cobbler does.  But, in the meantime,
+ * we can avoid the panic and the reboot since we can make sure that each
+ * subtable is doing okay.  And that's what bad_madt_entry() does.
+ *
+ *
+ * FADT Major Version ->       1    3    4     4     5     5     6
+ * FADT Minor Version ->       x    x    x     x     x     1     0
+ * MADT revision ->            1    1    2     3     3     3     3
+ * Spec Version ->            1.0  2.0  3.0b  4.0a  5.0b  5.1a  6.0
+ * Subtable Name	Type  Expected Length ->
+ * Processor Local APIC  0x0    8    8    8     8     8     8     8
+ * IO APIC               0x1   12   12   12    12    12    12    12
+ * Int Src Override      0x2   10   10   10    10    10    10    10
+ * NMI Src               0x3    8    8    8     8     8     8     8
+ * Local APIC NMI Struct 0x4    6    6    6     6     6     6     6
+ * Local APIC Addr Ovrrd 0x5        16   12    12    12    12    12
+ * IO SAPIC              0x6        20   16    16    16    16    16
+ * Local SAPIC           0x7         8  >16   >16   >16   >16   >16
+ * Platform Int Src      0x8        16   16    16    16    16    16
+ * Proc Local x2APIC     0x9                   16    16    16    16
+ * Local x2APIC NMI      0xa                   12    12    12    12
+ * GICC CPU I/F          0xb                         40    76    80
+ * GICD                  0xc                         24    24    24
+ * GICv2m MSI            0xd                               24    24
+ * GICR                  0xe                               16    16
+ * GIC ITS               0xf                                     16
+ *
+ * In the table, each length entry is what should be in the length
+ * field of the subtable, and -- in general -- it should match the
+ * size of the struct for the subtable.  Any value that is not set
+ * (i.e., is zero) indicates that the subtable is not defined for
+ * that version of the ACPI spec.
+ *
+ */
+#define SUBTABLE_UNDEFINED	0x00
+#define SUBTABLE_VARIABLE	0xff
+#define NUM_SUBTABLE_TYPES	16
+
+struct acpi_madt_subtable_lengths {
+	unsigned short major_version;	/* from revision in FADT header */
+	unsigned short minor_version;	/* FADT field starting with 5.1 */
+	unsigned short madt_version;	/* MADT revision */
+	unsigned short num_types;	/* types possible for this version */
+	unsigned short lengths[NUM_SUBTABLE_TYPES];
+					/* subtable lengths, indexed by type */
+};
+
+static struct acpi_madt_subtable_lengths spec_info[] = {
+	{ /* for ACPI 1.0b */
+		.major_version = 1,
+		.minor_version = 0,
+		.madt_version = 1,
+		.num_types = 5,
+		.lengths = { 8, 12, 10, 8, 6 }
+	},
+	{ /* for ACPI 2.0 */
+		.major_version = 3,
+		.minor_version = 0,
+		.madt_version = 1,
+		.num_types = 9,
+		.lengths = { 8, 12, 10, 8, 6, 16, 20, 8, 16 }
+	},
+	{ /* for ACPI 3.0b */
+		.major_version = 4,
+		.minor_version = 0,
+		.madt_version = 2,
+		.num_types = 9,
+		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE, 16 }
+	},
+	{ /* for ACPI 4.0a */
+		.major_version = 4,
+		.minor_version = 0,
+		.madt_version = 3,
+		.num_types = 11,
+		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
+			     16, 16, 12 }
+	},
+	{ /* for ACPI 5.0b */
+		.major_version = 5,
+		.minor_version = 0,
+		.madt_version = 3,
+		.num_types = 13,
+		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
+			     16, 16, 12, 40, 24 }
+	},
+	{ /* for ACPI 5.1a */
+		.major_version = 5,
+		.minor_version = 1,
+		.madt_version = 3,
+		.num_types = 15,
+		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
+			     16, 16, 12, 76, 24, 24, 16 }
+	},
+	{ /* for ACPI 6.0 */
+		.major_version = 6,
+		.minor_version = 0,
+		.madt_version = 3,
+		.num_types = 16,
+		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
+			     16, 16, 12, 80, 24, 24, 16, 16 }
+	},
+	{ /* terminator */
+		.major_version = 0,
+		.minor_version = 0,
+		.madt_version = 0,
+		.num_types = 0,
+		.lengths = { 0 }
+	}
+};
+
+static int __init bad_madt_entry(struct acpi_table_header *table,
+				 struct acpi_subtable_header *entry)
+{
+	struct acpi_madt_subtable_lengths *ms;
+	struct acpi_table_madt *madt;
+	unsigned short major;
+	unsigned short minor;
+	unsigned short len;
+
+	/* simple sanity checking on MADT subtable entries */
+	if (!entry || !table)
+		return 1;
+
+	/* FADT minor numbers were not introduced until ACPI 5.1 */
+	major = acpi_gbl_FADT.header.revision;
+	if (major >= 5 && acpi_gbl_FADT.header.length >= 268)
+		minor = acpi_gbl_FADT.minor_revision;
+	else
+		minor = 0;
+
+	madt = (struct acpi_table_madt *)table;
+	ms = spec_info;
+	while (ms->num_types != 0) {
+		if (ms->major_version == major &&
+		    ms->minor_version == minor &&
+		    ms->madt_version == madt->header.revision)
+			break;
+		ms++;
+	}
+	if (!ms->num_types) {
+		pr_err("undefined version for either FADT %d.%d or MADT %d\n",
+		       major, minor, madt->header.revision);
+		return 1;
+	}
+
+	if (entry->type >= ms->num_types) {
+		pr_err("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
+		       major, minor, entry->type, entry->length);
+		return 1;
+	}
+
+	/* verify that the table is allowed for this version of the spec */
+	len = ms->lengths[entry->type];
+	if (!len) {
+		pr_err("MADT subtable %d not defined for FADT %d.%d\n",
+			 entry->type, major, minor);
+		return 1;
+	}
+
+	/* verify that the length is what we expect */
+	if (len == SUBTABLE_VARIABLE) {
+		if (entry->type == ACPI_MADT_TYPE_LOCAL_SAPIC) {
+			struct acpi_madt_local_sapic *lsapic =
+				(struct acpi_madt_local_sapic *)entry;
+			int proper_len = sizeof(struct acpi_madt_local_sapic) +
+					 strlen(lsapic->uid_string) + 1;
+
+			if (proper_len != entry->length) {
+				pr_err("Variable length MADT subtable %d is wrong length: %d, should be: %d\n",
+				       entry->type, entry->length, proper_len);
+				return 1;
+			}
+		}
+	} else {
+		if (entry->length != len) {
+			pr_err("MADT subtable %d is wrong length: %d, should be: %d\n",
+			       entry->type, entry->length, len);
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
 /**
  * acpi_parse_entries_array - for each proc_num find a suitable subtable
  *
@@ -265,6 +506,10 @@ acpi_parse_entries_array(char *id, unsigned long table_size,
 		if (max_entries && count >= max_entries)
 			break;
 
+		if (!strncmp(id, ACPI_SIG_MADT, 4) &&
+		    bad_madt_entry(table_header, entry))
+			return -EINVAL;
+
 		for (i = 0; i < proc_num; i++) {
 			if (entry->type != proc[i].id)
 				continue;
@@ -407,7 +652,7 @@ int __init acpi_table_parse(char *id, acpi_tbl_table_handler handler)
 		return -ENODEV;
 }
 
-/* 
+/*
  * The BIOS is supposed to supply a single APIC/MADT,
  * but some report two.  Provide a knob to use either.
  * (don't you wish instance 0 and 1 were not the same?)
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH v5 2/5] ACPI / ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY
  2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
  2015-09-29 23:45 ` [PATCH v5 1/5] ACPI: add in a bad_madt_entry() function to eventually replace the macro Al Stone
@ 2015-09-29 23:45 ` Al Stone
  2015-09-29 23:45 ` [PATCH v5 3/5] ACPI / IA64: remove usage of BAD_MADT_ENTRY Al Stone
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-09-29 23:45 UTC (permalink / raw)
  To: linux-acpi, linux-arm-kernel
  Cc: linux-kernel, linux-ia64, linux-pm, linaro-acpi, linaro-kernel,
	patches, Al Stone, Will Deacon, Thomas Gleixner, Jason Cooper

Now that we have introduced the bad_madt_entry() function, and that
function is being invoked in acpi_table_parse_madt() for us, there
is no longer any need to use the BAD_MADT_ENTRY macro, or in the case
of arm64, the BAD_MADT_GICC_ENTRY, too.

Signed-off-by: Al Stone <al.stone@linaro.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-and-tested-by: Sudeep Holla <sudeep.holla@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
---
 arch/arm64/include/asm/acpi.h | 8 --------
 arch/arm64/kernel/smp.c       | 2 --
 drivers/irqchip/irq-gic.c     | 3 ---
 3 files changed, 13 deletions(-)

diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index 6894205..05656fc 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -18,14 +18,6 @@
 #include <asm/cputype.h>
 #include <asm/smp_plat.h>
 
-/* Macros for consistency checks of the GICC subtable of MADT */
-#define ACPI_MADT_GICC_LENGTH	\
-	(acpi_gbl_FADT.header.revision < 6 ? 76 : 80)
-
-#define BAD_MADT_GICC_ENTRY(entry, end)						\
-	(!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) ||	\
-	 (entry)->header.length != ACPI_MADT_GICC_LENGTH)
-
 /* Basic configuration for ACPI */
 #ifdef	CONFIG_ACPI
 /* ACPI table mapping after acpi_gbl_permanent_mmap is set */
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index dbdaacd..66cc8c4 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -451,8 +451,6 @@ acpi_parse_gic_cpu_interface(struct acpi_subtable_header *header,
 	struct acpi_madt_generic_interrupt *processor;
 
 	processor = (struct acpi_madt_generic_interrupt *)header;
-	if (BAD_MADT_GICC_ENTRY(processor, end))
-		return -EINVAL;
 
 	acpi_table_print_madt_entry(header);
 
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index d4add30..67b7b48 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -1206,9 +1206,6 @@ gic_acpi_parse_madt_cpu(struct acpi_subtable_header *header,
 
 	processor = (struct acpi_madt_generic_interrupt *)header;
 
-	if (BAD_MADT_GICC_ENTRY(processor, end))
-		return -EINVAL;
-
 	/*
 	 * There is no support for non-banked GICv1/2 register in ACPI spec.
 	 * All CPU interface addresses have to be the same.
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH v5 3/5] ACPI / IA64: remove usage of BAD_MADT_ENTRY
  2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
  2015-09-29 23:45 ` [PATCH v5 1/5] ACPI: add in a bad_madt_entry() function to eventually replace the macro Al Stone
  2015-09-29 23:45 ` [PATCH v5 2/5] ACPI / ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY Al Stone
@ 2015-09-29 23:45 ` Al Stone
  2015-09-29 23:45 ` [PATCH v5 4/5] ACPI / X86: " Al Stone
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-09-29 23:45 UTC (permalink / raw)
  To: linux-acpi, linux-arm-kernel
  Cc: linux-kernel, linux-ia64, linux-pm, linaro-acpi, linaro-kernel,
	patches, Al Stone, Tony Luck, Fenghua Yu

Now that we have introduced the bad_madt_entry() function, and that
function is being invoked in acpi_table_parse_madt() for us, there
is no longer any need to use the BAD_MADT_ENTRY macro.

Signed-off-by: Al Stone <al.stone@linaro.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
---
 arch/ia64/kernel/acpi.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index b1698bc..efa3f0a 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -184,9 +184,6 @@ acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
 
 	lapic = (struct acpi_madt_local_apic_override *)header;
 
-	if (BAD_MADT_ENTRY(lapic, end))
-		return -EINVAL;
-
 	if (lapic->address) {
 		iounmap(ipi_base_addr);
 		ipi_base_addr = ioremap(lapic->address, 0);
@@ -201,8 +198,6 @@ acpi_parse_lsapic(struct acpi_subtable_header * header, const unsigned long end)
 
 	lsapic = (struct acpi_madt_local_sapic *)header;
 
-	/*Skip BAD_MADT_ENTRY check, as lsapic size could vary */
-
 	if (lsapic->lapic_flags & ACPI_MADT_ENABLED) {
 #ifdef CONFIG_SMP
 		smp_boot_data.cpu_phys_id[available_cpus] =
@@ -222,9 +217,6 @@ acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long e
 
 	lacpi_nmi = (struct acpi_madt_local_apic_nmi *)header;
 
-	if (BAD_MADT_ENTRY(lacpi_nmi, end))
-		return -EINVAL;
-
 	/* TBD: Support lapic_nmi entries */
 	return 0;
 }
@@ -236,9 +228,6 @@ acpi_parse_iosapic(struct acpi_subtable_header * header, const unsigned long end
 
 	iosapic = (struct acpi_madt_io_sapic *)header;
 
-	if (BAD_MADT_ENTRY(iosapic, end))
-		return -EINVAL;
-
 	return iosapic_init(iosapic->address, iosapic->global_irq_base);
 }
 
@@ -253,9 +242,6 @@ acpi_parse_plat_int_src(struct acpi_subtable_header * header,
 
 	plintsrc = (struct acpi_madt_interrupt_source *)header;
 
-	if (BAD_MADT_ENTRY(plintsrc, end))
-		return -EINVAL;
-
 	/*
 	 * Get vector assignment for this interrupt, set attributes,
 	 * and program the IOSAPIC routing table.
@@ -336,9 +322,6 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
 
 	p = (struct acpi_madt_interrupt_override *)header;
 
-	if (BAD_MADT_ENTRY(p, end))
-		return -EINVAL;
-
 	iosapic_override_isa_irq(p->source_irq, p->global_irq,
 				 ((p->inti_flags & ACPI_MADT_POLARITY_MASK) ==
 				  ACPI_MADT_POLARITY_ACTIVE_LOW) ?
@@ -356,9 +339,6 @@ acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end
 
 	nmi_src = (struct acpi_madt_nmi_source *)header;
 
-	if (BAD_MADT_ENTRY(nmi_src, end))
-		return -EINVAL;
-
 	/* TBD: Support nimsrc entries */
 	return 0;
 }
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH v5 4/5] ACPI / X86: remove usage of BAD_MADT_ENTRY
  2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
                   ` (2 preceding siblings ...)
  2015-09-29 23:45 ` [PATCH v5 3/5] ACPI / IA64: remove usage of BAD_MADT_ENTRY Al Stone
@ 2015-09-29 23:45 ` Al Stone
  2015-09-29 23:45 ` [PATCH v5 5/5] ACPI: remove definition of BAD_MADT_ENTRY macro Al Stone
  2015-09-30  9:00 ` [PATCH v5 0/5] Provide better MADT subtable sanity checks Hanjun Guo
  5 siblings, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-09-29 23:45 UTC (permalink / raw)
  To: linux-acpi, linux-arm-kernel
  Cc: linux-kernel, linux-ia64, linux-pm, linaro-acpi, linaro-kernel,
	patches, Al Stone, Rafael J. Wysocki, Len Brown, Pavel Machek,
	Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86

Now that we have introduced the bad_madt_entry() function, and that
function is being invoked in acpi_table_parse_madt() for us, there
is no longer any need to use the BAD_MADT_ENTRY macro.

Signed-off-by: Al Stone <al.stone@linaro.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Len Brown <len.brown@intel.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: x86@kernel.org
---
 arch/x86/kernel/acpi/boot.c | 27 ---------------------------
 1 file changed, 27 deletions(-)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index e759076..e65bcea 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -194,9 +194,6 @@ acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned long end)
 
 	processor = (struct acpi_madt_local_x2apic *)header;
 
-	if (BAD_MADT_ENTRY(processor, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	apic_id = processor->local_apic_id;
@@ -227,9 +224,6 @@ acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end)
 
 	processor = (struct acpi_madt_local_apic *)header;
 
-	if (BAD_MADT_ENTRY(processor, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	/*
@@ -252,9 +246,6 @@ acpi_parse_sapic(struct acpi_subtable_header *header, const unsigned long end)
 
 	processor = (struct acpi_madt_local_sapic *)header;
 
-	if (BAD_MADT_ENTRY(processor, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	acpi_register_lapic((processor->id << 8) | processor->eid,/* APIC ID */
@@ -271,9 +262,6 @@ acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
 
 	lapic_addr_ovr = (struct acpi_madt_local_apic_override *)header;
 
-	if (BAD_MADT_ENTRY(lapic_addr_ovr, end))
-		return -EINVAL;
-
 	acpi_lapic_addr = lapic_addr_ovr->address;
 
 	return 0;
@@ -287,9 +275,6 @@ acpi_parse_x2apic_nmi(struct acpi_subtable_header *header,
 
 	x2apic_nmi = (struct acpi_madt_local_x2apic_nmi *)header;
 
-	if (BAD_MADT_ENTRY(x2apic_nmi, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	if (x2apic_nmi->lint != 1)
@@ -305,9 +290,6 @@ acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long e
 
 	lapic_nmi = (struct acpi_madt_local_apic_nmi *)header;
 
-	if (BAD_MADT_ENTRY(lapic_nmi, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	if (lapic_nmi->lint != 1)
@@ -411,9 +393,6 @@ acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end)
 
 	ioapic = (struct acpi_madt_io_apic *)header;
 
-	if (BAD_MADT_ENTRY(ioapic, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	/* Statically assign IRQ numbers for IOAPICs hosting legacy IRQs */
@@ -463,9 +442,6 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
 
 	intsrc = (struct acpi_madt_interrupt_override *)header;
 
-	if (BAD_MADT_ENTRY(intsrc, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	if (intsrc->source_irq == acpi_gbl_FADT.sci_interrupt) {
@@ -504,9 +480,6 @@ acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end
 
 	nmi_src = (struct acpi_madt_nmi_source *)header;
 
-	if (BAD_MADT_ENTRY(nmi_src, end))
-		return -EINVAL;
-
 	acpi_table_print_madt_entry(header);
 
 	/* TBD: Support nimsrc entries? */
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH v5 5/5] ACPI: remove definition of BAD_MADT_ENTRY macro
  2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
                   ` (3 preceding siblings ...)
  2015-09-29 23:45 ` [PATCH v5 4/5] ACPI / X86: " Al Stone
@ 2015-09-29 23:45 ` Al Stone
  2015-09-30  9:00 ` [PATCH v5 0/5] Provide better MADT subtable sanity checks Hanjun Guo
  5 siblings, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-09-29 23:45 UTC (permalink / raw)
  To: linux-acpi, linux-arm-kernel
  Cc: linux-kernel, linux-ia64, linux-pm, linaro-acpi, linaro-kernel,
	patches, Al Stone, Rafael J. Wysocki, Len Brown

Now that we have introduced to bad_madt_entry(), and we have removed
all the usages of the BAD_MADT_ENTRY macro from all of the various
architectures that use it (arm64, ia64, x86), we can remove the macro
definition since it is no longer used.

Signed-off-by: Al Stone <al.stone@linaro.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Len Brown <lenb@kernel.org>
---
 include/linux/acpi.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 51a96a8..dd5bd228 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -127,10 +127,6 @@ static inline void acpi_initrd_override(void *data, size_t size)
 }
 #endif
 
-#define BAD_MADT_ENTRY(entry, end) (					    \
-		(!entry) || (unsigned long)entry + sizeof(*entry) > end ||  \
-		((struct acpi_subtable_header *)entry)->length < sizeof(*entry))
-
 struct acpi_subtable_proc {
 	int id;
 	acpi_tbl_entry_handler handler;
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
                   ` (4 preceding siblings ...)
  2015-09-29 23:45 ` [PATCH v5 5/5] ACPI: remove definition of BAD_MADT_ENTRY macro Al Stone
@ 2015-09-30  9:00 ` Hanjun Guo
  2015-09-30 16:10   ` Al Stone
  5 siblings, 1 reply; 26+ messages in thread
From: Hanjun Guo @ 2015-09-30  9:00 UTC (permalink / raw)
  To: Al Stone, linux-acpi, linux-arm-kernel
  Cc: linaro-kernel, linux-ia64, patches, linux-pm, linaro-acpi, linux-kernel

On 2015/9/30 7:45, Al Stone wrote:
> NB: this patch set is for use against the linux-pm bleeding edge branch.
>
> Currently, the BAD_MADT_ENTRY macro is used to do a very simple sanity
> check on the various subtables that are defined for the MADT.  The check
> compares the size of the subtable data structure as defined by ACPICA to
> the length entry in the subtable.  If they are not the same, the assumption
> is that the subtable is incorrect.
>
> Over time, the ACPI spec has allowed for MADT subtables where this can
> never be true (the local SAPIC subtable, for example).  Or, more recently,
> the spec has accumulated some minor flaws where there are three possible 
> sizes for a subtable, all of which are valid, but only for specific versions
> of the spec (the GICC subtable).  In both cases, BAD_MADT_ENTRY reports these
> subtables as bad when they are not.  In order to retain some sanity check
> on the MADT subtables, we now have to special case these subtables.  Of
> necessity, these special cases have ended up in arch-dependent code (arm64)
> or an arch has simply decided to forgo the check (ia64).
>
> This patch set replaces the BAD_MADT_ENTRY macro with a function called
> bad_madt_entry().  This function uses a data set of details about the
> subtables to provide more sanity checking than before:
>
> 	-- is the subtable legal for the version given in the FADT?
>
> 	-- is the subtable legal for the revision of the MADT in use?
>
> 	-- is the subtable of the proper length (including checking
> 	   on the one variable length subtable that is currently ignored),
> 	   given the FADT version and the MADT revision?
>
> Further, this patch set adds in the call to bad_madt_entry() from the 
> acpi_table_parse_madt() function, allowing it to be used consistently
> by all architectures, for all subtables, and removing the need for each
> of the subtable traversal callback functions to use BAD_MADT_ENTRY.
>
> In theory, as the ACPI specification changes, we would only have to add
> additional information to the data set describing the MADT subtables in
> order to continue providing sanity checks, even when new subtables are
> added.
>
> These patches have been tested on an APM Mustang (arm64) and are known to
> work there.  They have also been cross-compiled for x86 and ia64 with no
> known failures.
>
> Changes for v5:
>    -- 0-day found incorrect data in the table describing allowed MADT
>       subtables; this only affected ACPI 1.0 firmware.  Corrected the
>       data to meet the 1.0b spec.
>    -- Rebase to bleeding-edge branch for Rafael Wysocki; this patch set
>       now requires that a patch set from Marc Zyngier be applied first:
>       https://lkml.org/lkml/2015/9/28/421
>    -- Tested on AMD Seattle (linux-pm tree) also
>
> Changes for v4:
>    -- Remove extraneous white space change (Graeme Gregory)
>    -- acpi_parse_entries() changes also needed a check to make sure that
>       only MADT entries used bad_madt_entry() (Sudeep Holla)
>    -- inadvertent use of 01day build noted that bad_madt_entry() can be
>       static, so added it (Sudeep Holla, Fengguang Wu)
>
> Changes for v3:
>    -- Reviewed-and-tested-by from Sudeep Holla for arm64 parts
>    -- Clearer language in error messages (Graeme Gregory, Timur Tabi)
>    -- Double checked that inserting call to bad_madt_entry() into the
>       function acpi_parse_entries() does not impact current behavior
>       (Sudeep Holla)
>    
> Changes for v2:
>    -- Acked-by on 2/5 from Marc Zyngier and Catalin Marinas for ARM
>    -- Correct faulty end of loop test found by Timur Tabi
>
>
> Al Stone (5):
>   ACPI: add in a bad_madt_entry() function to eventually replace the
>     macro
>   ACPI / ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY
>   ACPI / IA64: remove usage of BAD_MADT_ENTRY
>   ACPI / X86: remove usage of BAD_MADT_ENTRY
>   ACPI: remove definition of BAD_MADT_ENTRY macro

For this patch set,

Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>

Thanks
Hanjun


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-09-30  9:00 ` [PATCH v5 0/5] Provide better MADT subtable sanity checks Hanjun Guo
@ 2015-09-30 16:10   ` Al Stone
  2015-10-05 13:39     ` Rafael J. Wysocki
  0 siblings, 1 reply; 26+ messages in thread
From: Al Stone @ 2015-09-30 16:10 UTC (permalink / raw)
  To: Hanjun Guo, Al Stone, linux-acpi, linux-arm-kernel
  Cc: linaro-kernel, linux-ia64, patches, linux-pm, linaro-acpi, linux-kernel

On 09/30/2015 03:00 AM, Hanjun Guo wrote:
> On 2015/9/30 7:45, Al Stone wrote:
>> NB: this patch set is for use against the linux-pm bleeding edge branch.
>>

[snip...]

> 
> For this patch set,
> 
> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
> 
> Thanks
> Hanjun

Thanks, Hanjun!

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3@redhat.com
-----------------------------------

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-09-30 16:10   ` Al Stone
@ 2015-10-05 13:39     ` Rafael J. Wysocki
  2015-10-05 17:12       ` Al Stone
  0 siblings, 1 reply; 26+ messages in thread
From: Rafael J. Wysocki @ 2015-10-05 13:39 UTC (permalink / raw)
  To: Al Stone
  Cc: Hanjun Guo, Al Stone, linux-acpi, linux-arm-kernel,
	linaro-kernel, linux-ia64, patches, linux-pm, linaro-acpi,
	linux-kernel

On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
> > On 2015/9/30 7:45, Al Stone wrote:
> >> NB: this patch set is for use against the linux-pm bleeding edge branch.
> >>
> 
> [snip...]
> 
> > 
> > For this patch set,
> > 
> > Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
> > 
> > Thanks
> > Hanjun
> 
> Thanks, Hanjun!

Series applied, thanks!

Rafael


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-05 13:39     ` Rafael J. Wysocki
@ 2015-10-05 17:12       ` Al Stone
  2015-10-12  3:08         ` Pat Erley
  0 siblings, 1 reply; 26+ messages in thread
From: Al Stone @ 2015-10-05 17:12 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Hanjun Guo, Al Stone, linux-acpi, linux-arm-kernel,
	linaro-kernel, linux-ia64, patches, linux-pm, linaro-acpi,
	linux-kernel

On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>> On 2015/9/30 7:45, Al Stone wrote:
>>>> NB: this patch set is for use against the linux-pm bleeding edge branch.
>>>>
>>
>> [snip...]
>>
>>>
>>> For this patch set,
>>>
>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>
>>> Thanks
>>> Hanjun
>>
>> Thanks, Hanjun!
> 
> Series applied, thanks!
> 
> Rafael
> 

Thanks, Rafael!

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3@redhat.com
-----------------------------------

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-05 17:12       ` Al Stone
@ 2015-10-12  3:08         ` Pat Erley
  2015-10-12  3:49           ` [Linaro-acpi] " Hanjun Guo
  0 siblings, 1 reply; 26+ messages in thread
From: Pat Erley @ 2015-10-12  3:08 UTC (permalink / raw)
  To: Al Stone, Rafael J. Wysocki
  Cc: Hanjun Guo, Al Stone, linux-acpi, linux-arm-kernel,
	linaro-kernel, linux-ia64, patches, linux-pm, linaro-acpi,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 891 bytes --]

On 10/05/2015 10:12 AM, Al Stone wrote:
> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>> NB: this patch set is for use against the linux-pm bleeding edge branch.
>>>>>
>>>
>>> [snip...]
>>>
>>>>
>>>> For this patch set,
>>>>
>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>
>>>> Thanks
>>>> Hanjun
>>>
>>> Thanks, Hanjun!
>>
>> Series applied, thanks!
>>
>> Rafael
>>
>
> Thanks, Rafael!
>

Just decided to test out linux-next (to see the new nouveau cleanups). 
This change set prevents my Lenovo W510 from booting properly.

Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to 
eventually replace the macro"

Gets the system booting again.  I'm attaching my dmesg from the failed 
boot, who wants the acpidump?

[-- Attachment #2: broken-madt.txt --]
[-- Type: text/plain, Size: 81623 bytes --]

[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.3.0-rc4-next-20151009-linux+ (s0be@anvil) (gcc version 4.9.3 (Gentoo 4.9.3 p1.1, pie-0.6.2) ) #271 SMP Sun Oct 11 16:37:37 PDT 2015
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.3.0-rc4 root=UUID=815266d6-a8b9-4f63-a593-02fde178263f ro net.ifnames=0 rfkill.default_state=0 init=/sbin/init intel_iommu=on nouveau.pstate=1 nouveau.config=NvClkMode=3 zram.zram_num_devices=4 zram.num_devices=4 ro
[    0.000000] x86/fpu: Legacy x87 FPU detected.
[    0.000000] x86/fpu: Using 'lazy' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bba7bfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bba7c000-0x00000000bba81fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bba82000-0x00000000bbb47fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bbb48000-0x00000000bbb5afff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbb5b000-0x00000000bbbdbfff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbbdc000-0x00000000bbc0efff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbc0f000-0x00000000bbc5cfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bbc5d000-0x00000000bbe67fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbe68000-0x00000000bbee7fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbee8000-0x00000000bbf0efff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbf0f000-0x00000000bbf17fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bbf18000-0x00000000bbf1efff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bbf1f000-0x00000000bbf6bfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bbf6c000-0x00000000bbf79fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbf7a000-0x00000000bbf7cfff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bbf7d000-0x00000000bbf80fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbf81000-0x00000000bbf81fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bbf82000-0x00000000bbf8afff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbf8b000-0x00000000bbf8bfff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bbf8c000-0x00000000bbf9efff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bbf9f000-0x00000000bbffefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bbfff000-0x00000000bbffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bc000000-0x00000000bdffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bf800000-0x00000000bfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000feaff000-0x00000000feafffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed003ff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed8ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000043fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.6 present.
[    0.000000] DMI: LENOVO 4318CTO/4318CTO, BIOS 6NET84WW (1.45 ) 10/03/2012
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x440000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 disabled
[    0.000000]   1 base 000000000 mask F80000000 write-back
[    0.000000]   2 base 080000000 mask FC0000000 write-back
[    0.000000]   3 base 100000000 mask F00000000 write-back
[    0.000000]   4 base 200000000 mask E00000000 write-back
[    0.000000]   5 base 400000000 mask FC0000000 write-back
[    0.000000]   6 base 0BC000000 mask FFE000000 uncachable
[    0.000000]   7 disabled
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WC  UC- WT  
[    0.000000] original variable MTRRs
[    0.000000] reg 1, base: 0GB, range: 2GB, type WB
[    0.000000] reg 2, base: 2GB, range: 1GB, type WB
[    0.000000] reg 3, base: 4GB, range: 4GB, type WB
[    0.000000] reg 4, base: 8GB, range: 8GB, type WB
[    0.000000] reg 5, base: 16GB, range: 1GB, type WB
[    0.000000] reg 6, base: 3008MB, range: 32MB, type UC
[    0.000000] total RAM covered: 16352M
[    0.000000] Found optimal setting for mtrr clean up
[    0.000000]  gran_size: 64K 	chunk_size: 128M 	num_reg: 6  	lose cover RAM: 0G
[    0.000000] New variable MTRRs
[    0.000000] reg 0, base: 0GB, range: 2GB, type WB
[    0.000000] reg 1, base: 2GB, range: 1GB, type WB
[    0.000000] reg 2, base: 3008MB, range: 32MB, type UC
[    0.000000] reg 3, base: 4GB, range: 4GB, type WB
[    0.000000] reg 4, base: 8GB, range: 8GB, type WB
[    0.000000] reg 5, base: 16GB, range: 1GB, type WB
[    0.000000] e820: update [mem 0xbc000000-0xbdffffff] usable ==> reserved
[    0.000000] e820: update [mem 0xc0000000-0xffffffff] usable ==> reserved
[    0.000000] e820: last_pfn = 0xbc000 max_arch_pfn = 0x400000000
[    0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x0216d000, 0x0216dfff] PGTABLE
[    0.000000] BRK [0x0216e000, 0x0216efff] PGTABLE
[    0.000000] BRK [0x0216f000, 0x0216ffff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x43fe00000-0x43fffffff]
[    0.000000]  [mem 0x43fe00000-0x43fffffff] page 2M
[    0.000000] BRK [0x02170000, 0x02170fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x420000000-0x43fdfffff]
[    0.000000]  [mem 0x420000000-0x43fdfffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x00100000-0xbba7bfff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0xbb9fffff] page 2M
[    0.000000]  [mem 0xbba00000-0xbba7bfff] page 4k
[    0.000000] init_memory_mapping: [mem 0xbba82000-0xbbb47fff]
[    0.000000]  [mem 0xbba82000-0xbbb47fff] page 4k
[    0.000000] init_memory_mapping: [mem 0xbbc0f000-0xbbc5cfff]
[    0.000000]  [mem 0xbbc0f000-0xbbc5cfff] page 4k
[    0.000000] BRK [0x02171000, 0x02171fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0xbbf0f000-0xbbf17fff]
[    0.000000]  [mem 0xbbf0f000-0xbbf17fff] page 4k
[    0.000000] BRK [0x02172000, 0x02172fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0xbbf1f000-0xbbf6bfff]
[    0.000000]  [mem 0xbbf1f000-0xbbf6bfff] page 4k
[    0.000000] init_memory_mapping: [mem 0xbbfff000-0xbbffffff]
[    0.000000]  [mem 0xbbfff000-0xbbffffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x100000000-0x41fffffff]
[    0.000000]  [mem 0x100000000-0x41fffffff] page 2M
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000F6870 000024 (v02 LENOVO)
[    0.000000] ACPI: XSDT 0x00000000BBFF18B8 00009C (v01 LENOVO TP-6N    00001450  LTP 00000000)
[    0.000000] ACPI: FACP 0x00000000BBFF1A00 0000F4 (v04 LENOVO TP-6N    00001450 LNVO 00000001)
[    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Pm1aControlBlock: 16/32 (20150818/tbfadt-623)
[    0.000000] ACPI BIOS Warning (bug): Invalid length for FADT/Pm1aControlBlock: 32, using default 16 (20150818/tbfadt-704)
[    0.000000] ACPI: DSDT 0x00000000BBFF1C9B 00CEAE (v01 LENOVO TP-6N    00001450 MSFT 03000001)
[    0.000000] ACPI: FACS 0x00000000BBEE7000 000040
[    0.000000] ACPI: FACS 0x00000000BBEE7000 000040
[    0.000000] ACPI: SSDT 0x00000000BBFF1BB4 0000E7 (v01 LENOVO TP-6N    00001450 MSFT 03000001)
[    0.000000] ACPI: ECDT 0x00000000BBFFEB49 000052 (v01 LENOVO TP-6N    00001450 LNVO 00000001)
[    0.000000] ACPI: APIC 0x00000000BBFFEB9B 0000BC (v01 LENOVO TP-6N    00001450 LNVO 00000001)
[    0.000000] ACPI: MCFG 0x00000000BBFFEC57 00003C (v01 LENOVO TP-6N    00001450 LNVO 00000001)
[    0.000000] ACPI: HPET 0x00000000BBFFEC93 000038 (v01 LENOVO TP-6N    00001450 LNVO 00000001)
[    0.000000] ACPI: ASF! 0x00000000BBFFEDBE 0000A4 (v16 LENOVO TP-6N    00001450 PTL  00000001)
[    0.000000] ACPI: SLIC 0x00000000BBFFEE62 000176 (v01 LENOVO TP-6N    00001450  LTP 00000000)
[    0.000000] ACPI: BOOT 0x00000000BBFFEFD8 000028 (v01 LENOVO TP-6N    00001450  LTP 00000001)
[    0.000000] ACPI: SSDT 0x00000000BBEE591A 00084B (v01 LENOVO TP-6N    00001450 INTL 20050513)
[    0.000000] ACPI: TCPA 0x00000000BBF8B000 000032 (v02 PTL     CRESTLN 06040000      00005A52)
[    0.000000] ACPI: DMAR 0x00000000BBF81000 000068 (v01 INTEL  CP_FIELD 00000001 INTL 00000001)
[    0.000000] ACPI: SSDT 0x00000000BBF7C000 0009F1 (v01 PmRef  CpuPm    00003000 INTL 20060912)
[    0.000000] ACPI: SSDT 0x00000000BBF7B000 000259 (v01 PmRef  Cpu0Tst  00003000 INTL 20060912)
[    0.000000] ACPI: SSDT 0x00000000BBF7A000 00049F (v01 PmRef  ApTst    00003000 INTL 20060912)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
[    0.000000] ACPI: Error parsing LAPIC address override entry
[    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
[    0.000000]  [ffffea0000000000-ffffea0010ffffff] PMD -> [ffff88042f600000-ffff88043f5fffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000043fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009dfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x00000000bba7bfff]
[    0.000000]   node   0: [mem 0x00000000bba82000-0x00000000bbb47fff]
[    0.000000]   node   0: [mem 0x00000000bbc0f000-0x00000000bbc5cfff]
[    0.000000]   node   0: [mem 0x00000000bbf0f000-0x00000000bbf17fff]
[    0.000000]   node   0: [mem 0x00000000bbf1f000-0x00000000bbf6bfff]
[    0.000000]   node   0: [mem 0x00000000bbfff000-0x00000000bbffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000043fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000043fffffff]
[    0.000000] On node 0 totalpages: 4176772
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 11952 pages used for memmap
[    0.000000]   DMA32 zone: 764903 pages, LIFO batch:31
[    0.000000]   Normal zone: 53248 pages used for memmap
[    0.000000]   Normal zone: 3407872 pages, LIFO batch:31
[    0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009efff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dbfff]
[    0.000000] PM: Registered nosave memory: [mem 0x000dc000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xbba7c000-0xbba81fff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbb48000-0xbbb5afff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbb5b000-0xbbbdbfff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbbdc000-0xbbc0efff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbc5d000-0xbbe67fff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbe68000-0xbbee7fff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbee8000-0xbbf0efff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf18000-0xbbf1efff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf6c000-0xbbf79fff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf7a000-0xbbf7cfff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf7d000-0xbbf80fff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf81000-0xbbf81fff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf82000-0xbbf8afff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf8b000-0xbbf8bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf8c000-0xbbf9efff]
[    0.000000] PM: Registered nosave memory: [mem 0xbbf9f000-0xbbffefff]
[    0.000000] PM: Registered nosave memory: [mem 0xbc000000-0xbdffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xbe000000-0xbf7fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xbf800000-0xbfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xc0000000-0xdfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xe0000000-0xefffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xf0000000-0xfeafefff]
[    0.000000] PM: Registered nosave memory: [mem 0xfeaff000-0xfeafffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfeb00000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec0ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec10000-0xfecfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed00000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed8ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed90000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] e820: [mem 0xc0000000-0xdfffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] PERCPU: Embedded 33 pages/cpu @ffff88043fc00000 s96472 r8192 d30504 u2097152
[    0.000000] pcpu-alloc: s96472 r8192 d30504 u2097152 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 4111487
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.3.0-rc4 root=UUID=815266d6-a8b9-4f63-a593-02fde178263f ro net.ifnames=0 rfkill.default_state=0 init=/sbin/init intel_iommu=on nouveau.pstate=1 nouveau.config=NvClkMode=3 zram.zram_num_devices=4 zram.num_devices=4 ro
[    0.000000] DMAR: IOMMU enabled
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.000000] Memory: 16336016K/16707088K available (5365K kernel code, 873K rwdata, 2592K rodata, 5816K init, 876K bss, 371072K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=1
[    0.000000] NR_IRQS:4352 nr_irqs:32 16
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 1728.880 MHz processor
[    0.000024] Calibrating delay loop (skipped), value calculated using timer frequency.. 3457.76 BogoMIPS (lpj=1728880)
[    0.000443] pid_max: default: 32768 minimum: 301
[    0.000721] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.000938] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.001805] Initializing cgroup subsys io
[    0.002022] Initializing cgroup subsys memory
[    0.006846] Initializing cgroup subsys pids
[    0.007085] CPU: Physical Processor ID: 0
[    0.007293] CPU: Processor Core ID: 0
[    0.007503] mce: CPU supports 9 MCE banks
[    0.007742] CPU0: Thermal monitoring enabled (TM1)
[    0.007959] process: using mwait in idle threads
[    0.008171] Last level iTLB entries: 4KB 512, 2MB 7, 4MB 7
[    0.008380] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.021041] Freeing SMP alternatives memory: 24K (ffffffff8208a000 - ffffffff82090000)
[    0.024830] ftrace: allocating 24434 entries in 96 pages
[    0.046467] smpboot: weird, boot CPU (#0) not listed by the BIOS
[    0.046679] smpboot: SMP motherboard not detected
[    0.046905] smpboot: SMP disabled
[    0.047114] DMAR: Host address width 36
[    0.047319] DMAR: DRHD base: 0x000000fed90000 flags: 0x1
[    0.047543] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c90780106f0462 ecap f020e2
[    0.047946] DMAR: RMRR base: 0x000000bbee9000 end: 0x000000bbefffff
[    0.251719] Performance Events: PEBS fmt1+, 16-deep LBR, Nehalem events, Intel PMU driver.
[    0.252235] perf_event_intel: CPU erratum AAJ80 worked around
[    0.252445] perf_event_intel: CPUID marked event: 'bus cycles' unavailable
[    0.252656] ... version:                3
[    0.252866] ... bit width:              48
[    0.253071] ... generic registers:      4
[    0.253276] ... value mask:             0000ffffffffffff
[    0.253484] ... max period:             000000007fffffff
[    0.253693] ... fixed-purpose events:   3
[    0.253898] ... event mask:             000000070000000f
[    0.254387] x86: Booted up 1 node, 1 CPUs
[    0.254596] smpboot: Total of 1 processors activated (3457.76 BogoMIPS)
[    0.254934] devtmpfs: initialized
[    0.255733] PM: Registering ACPI NVS region [mem 0xbbb5b000-0xbbbdbfff] (528384 bytes)
[    0.256144] PM: Registering ACPI NVS region [mem 0xbbe68000-0xbbee7fff] (524288 bytes)
[    0.256552] PM: Registering ACPI NVS region [mem 0xbbf6c000-0xbbf79fff] (57344 bytes)
[    0.256946] PM: Registering ACPI NVS region [mem 0xbbf7d000-0xbbf80fff] (16384 bytes)
[    0.257331] PM: Registering ACPI NVS region [mem 0xbbf82000-0xbbf8afff] (36864 bytes)
[    0.257723] PM: Registering ACPI NVS region [mem 0xbbf8c000-0xbbf9efff] (77824 bytes)
[    0.258230] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.258744] xor: measuring software checksum speed
[    0.268685]    prefetch64-sse:  4748.000 MB/sec
[    0.278682]    generic_sse:  4216.000 MB/sec
[    0.278890] xor: using function: prefetch64-sse (4748.000 MB/sec)
[    0.279146] RTC time:  0:53:00, date: 10/12/15
[    0.279545] NET: Registered protocol family 16
[    0.280109] cpuidle: using governor ladder
[    0.280321] cpuidle: using governor menu
[    0.280698] Simple Boot Flag at 0x35 set to 0x1
[    0.280944] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    0.281419] PCI: Using configuration type 1 for base access
[    0.300695] raid6: sse2x1   gen()  2894 MB/s
[    0.317684] raid6: sse2x1   xor()  2128 MB/s
[    0.334671] raid6: sse2x2   gen()  3472 MB/s
[    0.351670] raid6: sse2x2   xor()  2607 MB/s
[    0.368666] raid6: sse2x4   gen()  3843 MB/s
[    0.385662] raid6: sse2x4   xor()  2818 MB/s
[    0.385871] raid6: using algorithm sse2x4 gen() 3843 MB/s
[    0.386082] raid6: .... xor() 2818 MB/s, rmw enabled
[    0.386289] raid6: using ssse3x2 recovery algorithm
[    0.386522] ACPI: Interpreter disabled.
[    0.386844] vgaarb: loaded
[    0.387170] SCSI subsystem initialized
[    0.387425] libata version 3.00 loaded.
[    0.387565] PCI: Probing PCI hardware
[    0.387779] PCI: root bus 00: using default resources
[    0.387782] PCI: Probing PCI hardware (bus 00)
[    0.387829] PCI host bridge to bus 0000:00
[    0.388039] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.388252] pci_bus 0000:00: root bus resource [mem 0x00000000-0xfffffffff]
[    0.388465] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.388865] pci 0000:00:00.0: [8086:d132] type 00 class 0x060000
[    0.388987] pci 0000:00:03.0: [8086:d138] type 01 class 0x060400
[    0.389045] pci 0000:00:03.0: PME# supported from D0 D3hot D3cold
[    0.389132] pci 0000:00:08.0: [8086:d155] type 00 class 0x088000
[    0.389244] pci 0000:00:08.1: [8086:d156] type 00 class 0x088000
[    0.389355] pci 0000:00:08.2: [8086:d157] type 00 class 0x088000
[    0.389463] pci 0000:00:08.3: [8086:d158] type 00 class 0x088000
[    0.389574] pci 0000:00:10.0: [8086:d150] type 00 class 0x088000
[    0.389683] pci 0000:00:10.1: [8086:d151] type 00 class 0x088000
[    0.389815] pci 0000:00:16.0: [8086:3b64] type 00 class 0x078000
[    0.389862] pci 0000:00:16.0: reg 0x10: [mem 0xf2627800-0xf262780f 64bit]
[    0.389944] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.390058] pci 0000:00:19.0: [8086:10ea] type 00 class 0x020000
[    0.390095] pci 0000:00:19.0: reg 0x10: [mem 0xf2600000-0xf261ffff]
[    0.390112] pci 0000:00:19.0: reg 0x14: [mem 0xf2625000-0xf2625fff]
[    0.390129] pci 0000:00:19.0: reg 0x18: [io  0x1820-0x183f]
[    0.390196] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold
[    0.390291] pci 0000:00:1a.0: [8086:3b3c] type 00 class 0x0c0320
[    0.390331] pci 0000:00:1a.0: reg 0x10: [mem 0xf2628000-0xf26283ff]
[    0.390423] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.390522] pci 0000:00:1b.0: [8086:3b56] type 00 class 0x040300
[    0.390564] pci 0000:00:1b.0: reg 0x10: [mem 0xf2620000-0xf2623fff 64bit]
[    0.390636] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.390742] pci 0000:00:1c.0: [8086:3b42] type 01 class 0x060400
[    0.390828] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.390866] pci 0000:00:1c.0: Enabling MPC IRBNCE
[    0.391082] pci 0000:00:1c.0: Intel PCH root port ACS workaround enabled
[    0.391381] pci 0000:00:1c.1: [8086:3b44] type 01 class 0x060400
[    0.391466] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.391506] pci 0000:00:1c.1: Enabling MPC IRBNCE
[    0.391723] pci 0000:00:1c.1: Intel PCH root port ACS workaround enabled
[    0.392024] pci 0000:00:1c.3: [8086:3b48] type 01 class 0x060400
[    0.392110] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[    0.392145] pci 0000:00:1c.3: Enabling MPC IRBNCE
[    0.392360] pci 0000:00:1c.3: Intel PCH root port ACS workaround enabled
[    0.392665] pci 0000:00:1c.4: [8086:3b4a] type 01 class 0x060400
[    0.392746] pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
[    0.392786] pci 0000:00:1c.4: Enabling MPC IRBNCE
[    0.393001] pci 0000:00:1c.4: Intel PCH root port ACS workaround enabled
[    0.393304] pci 0000:00:1c.6: [8086:3b4e] type 01 class 0x060400
[    0.393389] pci 0000:00:1c.6: PME# supported from D0 D3hot D3cold
[    0.393429] pci 0000:00:1c.6: Enabling MPC IRBNCE
[    0.393644] pci 0000:00:1c.6: Intel PCH root port ACS workaround enabled
[    0.393946] pci 0000:00:1c.7: [8086:3b50] type 01 class 0x060400
[    0.394027] pci 0000:00:1c.7: PME# supported from D0 D3hot D3cold
[    0.394066] pci 0000:00:1c.7: Enabling MPC IRBNCE
[    0.394277] pci 0000:00:1c.7: Intel PCH root port ACS workaround enabled
[    0.394570] pci 0000:00:1d.0: [8086:3b34] type 00 class 0x0c0320
[    0.394615] pci 0000:00:1d.0: reg 0x10: [mem 0xf2628400-0xf26287ff]
[    0.394714] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.394814] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401
[    0.394953] pci 0000:00:1f.0: [8086:3b07] type 00 class 0x060100
[    0.395158] pci 0000:00:1f.2: [8086:3b2f] type 00 class 0x010601
[    0.395195] pci 0000:00:1f.2: reg 0x10: [io  0x1818-0x181f]
[    0.395211] pci 0000:00:1f.2: reg 0x14: [io  0x180c-0x180f]
[    0.395227] pci 0000:00:1f.2: reg 0x18: [io  0x1810-0x1817]
[    0.395243] pci 0000:00:1f.2: reg 0x1c: [io  0x1808-0x180b]
[    0.395258] pci 0000:00:1f.2: reg 0x20: [io  0x1840-0x185f]
[    0.395274] pci 0000:00:1f.2: reg 0x24: [mem 0xf2627000-0xf26277ff]
[    0.395321] pci 0000:00:1f.2: PME# supported from D3hot
[    0.395414] pci 0000:00:1f.3: [8086:3b30] type 00 class 0x0c0500
[    0.395441] pci 0000:00:1f.3: reg 0x10: [mem 0xf2628800-0xf26288ff 64bit]
[    0.395468] pci 0000:00:1f.3: reg 0x20: [io  0x1860-0x187f]
[    0.395639] pci 0000:01:00.0: [10de:0a3c] type 00 class 0x030000
[    0.395679] pci 0000:01:00.0: reg 0x10: [mem 0xcc000000-0xccffffff]
[    0.395698] pci 0000:01:00.0: reg 0x14: [mem 0xd0000000-0xdfffffff 64bit pref]
[    0.395718] pci 0000:01:00.0: reg 0x1c: [mem 0xce000000-0xcfffffff 64bit pref]
[    0.395732] pci 0000:01:00.0: reg 0x24: [io  0x2000-0x207f]
[    0.395746] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0007ffff pref]
[    0.395839] vgaarb: setting as boot device: PCI:0000:01:00.0
[    0.396049] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.396463] pci 0000:01:00.1: [10de:0be2] type 00 class 0x040300
[    0.396496] pci 0000:01:00.1: reg 0x10: [mem 0xcdefc000-0xcdefffff]
[    0.396688] pci 0000:00:03.0: PCI bridge to [bus 01]
[    0.396900] pci 0000:00:03.0:   bridge window [io  0x2000-0x2fff]
[    0.396906] pci 0000:00:03.0:   bridge window [mem 0xcc000000-0xcdefffff]
[    0.396913] pci 0000:00:03.0:   bridge window [mem 0xce000000-0xdfffffff 64bit pref]
[    0.396986] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.397323] pci 0000:03:00.0: [8086:0089] type 00 class 0x028000
[    0.397439] pci 0000:03:00.0: reg 0x10: [mem 0xf2000000-0xf2001fff 64bit]
[    0.397701] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    0.399695] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.399916] pci 0000:00:1c.1:   bridge window [mem 0xf2000000-0xf20fffff]
[    0.400000] pci 0000:00:1c.3: PCI bridge to [bus 05-0c]
[    0.400219] pci 0000:00:1c.3:   bridge window [io  0x3000-0x3fff]
[    0.400225] pci 0000:00:1c.3:   bridge window [mem 0xf0000000-0xf1ffffff]
[    0.400239] pci 0000:00:1c.3:   bridge window [mem 0xf2700000-0xf27fffff 64bit pref]
[    0.400382] pci 0000:0d:00.0: [1180:e822] type 00 class 0x080500
[    0.400452] pci 0000:0d:00.0: MMC controller base frequency changed to 50Mhz.
[    0.400741] pci 0000:0d:00.0: reg 0x10: [mem 0xf2100000-0xf21000ff]
[    0.400871] pci 0000:0d:00.0: supports D1 D2
[    0.400875] pci 0000:0d:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.401069] pci 0000:0d:00.1: [1180:e230] type 00 class 0x088000
[    0.401142] pci 0000:0d:00.1: reg 0x10: [mem 0xf2100400-0xf21004ff]
[    0.401272] pci 0000:0d:00.1: supports D1 D2
[    0.401276] pci 0000:0d:00.1: PME# supported from D0 D1 D2 D3hot D3cold
[    0.402737] pci 0000:00:1c.4: PCI bridge to [bus 0d]
[    0.402952] pci 0000:00:1c.4:   bridge window [mem 0xf2100000-0xf21fffff]
[    0.403084] pci 0000:0f:00.0: [1033:0194] type 00 class 0x0c0330
[    0.403199] pci 0000:0f:00.0: reg 0x10: [mem 0xf2200000-0xf2201fff 64bit]
[    0.403406] pci 0000:0f:00.0: PME# supported from D0 D3hot D3cold
[    0.404695] pci 0000:00:1c.6: PCI bridge to [bus 0f-16]
[    0.404916] pci 0000:00:1c.6:   bridge window [mem 0xf2200000-0xf22fffff]
[    0.405069] pci 0000:17:00.0: [1180:e822] type 00 class 0x080500
[    0.405134] pci 0000:17:00.0: MMC controller base frequency changed to 50Mhz.
[    0.405418] pci 0000:17:00.0: reg 0x10: [mem 0xf2300000-0xf23000ff]
[    0.405548] pci 0000:17:00.0: supports D1 D2
[    0.405552] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.405755] pci 0000:17:00.3: [1180:e832] type 00 class 0x0c0010
[    0.405829] pci 0000:17:00.3: reg 0x10: [mem 0xf2300800-0xf2300fff]
[    0.405951] pci 0000:17:00.3: supports D1 D2
[    0.405956] pci 0000:17:00.3: PME# supported from D0 D1 D2 D3hot D3cold
[    0.407723] pci 0000:00:1c.7: PCI bridge to [bus 17-1e]
[    0.407942] pci 0000:00:1c.7:   bridge window [mem 0xf2300000-0xf23fffff]
[    0.408065] pci 0000:00:1e.0: PCI bridge to [bus 1f] (subtractive decode)
[    0.408289] pci 0000:00:1e.0:   bridge window [io  0x0000-0xffff] (subtractive decode)
[    0.408294] pci 0000:00:1e.0:   bridge window [mem 0x00000000-0xfffffffff] (subtractive decode)
[    0.408349] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 1f
[    0.408381] PCI: root bus 04: using default resources
[    0.408385] PCI: Probing PCI hardware (bus 04)
[    0.408431] PCI host bridge to bus 0000:04
[    0.408640] pci_bus 0000:04: root bus resource [io  0x0000-0xffff]
[    0.408857] pci_bus 0000:04: root bus resource [mem 0x00000000-0xfffffffff]
[    0.409073] pci_bus 0000:04: No busn resource found for root bus, will use [bus 04-ff]
[    0.409458] pci_bus 0000:04: busn_res: can not insert [bus 04-ff] under domain [bus 00-ff] (conflicts with (null) [bus 00-1f])
[    0.409501] pci_bus 0000:04: busn_res: [bus 04-ff] end is updated to 04
[    0.409507] pci_bus 0000:04: busn_res: can not insert [bus 04] under domain [bus 00-ff] (conflicts with (null) [bus 00-1f])
[    0.409698] PCI: pci_cache_line_size set to 64 bytes
[    0.410056] e820: reserve RAM buffer [mem 0x0009e800-0x0009ffff]
[    0.410060] e820: reserve RAM buffer [mem 0xbba7c000-0xbbffffff]
[    0.410066] e820: reserve RAM buffer [mem 0xbbb48000-0xbbffffff]
[    0.410071] e820: reserve RAM buffer [mem 0xbbc5d000-0xbbffffff]
[    0.410076] e820: reserve RAM buffer [mem 0xbbf18000-0xbbffffff]
[    0.410081] e820: reserve RAM buffer [mem 0xbbf6c000-0xbbffffff]
[    0.410468] clocksource: Switched to clocksource refined-jiffies
[    0.417601] pnp: PnP ACPI: disabled
[    0.421121] pci 0000:01:00.0: BAR 6: assigned [mem 0xcd000000-0xcd07ffff pref]
[    0.421509] pci 0000:00:03.0: PCI bridge to [bus 01]
[    0.421724] pci 0000:00:03.0:   bridge window [io  0x2000-0x2fff]
[    0.421940] pci 0000:00:03.0:   bridge window [mem 0xcc000000-0xcdefffff]
[    0.422154] pci 0000:00:03.0:   bridge window [mem 0xce000000-0xdfffffff 64bit pref]
[    0.422540] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.422765] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.422980] pci 0000:00:1c.1:   bridge window [mem 0xf2000000-0xf20fffff]
[    0.423198] pci 0000:00:1c.3: PCI bridge to [bus 05-0c]
[    0.423414] pci 0000:00:1c.3:   bridge window [io  0x3000-0x3fff]
[    0.423635] pci 0000:00:1c.3:   bridge window [mem 0xf0000000-0xf1ffffff]
[    0.423854] pci 0000:00:1c.3:   bridge window [mem 0xf2700000-0xf27fffff 64bit pref]
[    0.424245] pci 0000:00:1c.4: PCI bridge to [bus 0d]
[    0.424461] pci 0000:00:1c.4:   bridge window [mem 0xf2100000-0xf21fffff]
[    0.424688] pci 0000:00:1c.6: PCI bridge to [bus 0f-16]
[    0.424904] pci 0000:00:1c.6:   bridge window [mem 0xf2200000-0xf22fffff]
[    0.425125] pci 0000:00:1c.7: PCI bridge to [bus 17-1e]
[    0.425344] pci 0000:00:1c.7:   bridge window [mem 0xf2300000-0xf23fffff]
[    0.425570] pci 0000:00:1e.0: PCI bridge to [bus 1f]
[    0.425798] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    0.425802] pci_bus 0000:00: resource 5 [mem 0x00000000-0xfffffffff]
[    0.425807] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    0.425811] pci_bus 0000:01: resource 1 [mem 0xcc000000-0xcdefffff]
[    0.425815] pci_bus 0000:01: resource 2 [mem 0xce000000-0xdfffffff 64bit pref]
[    0.425820] pci_bus 0000:03: resource 1 [mem 0xf2000000-0xf20fffff]
[    0.425824] pci_bus 0000:05: resource 0 [io  0x3000-0x3fff]
[    0.425828] pci_bus 0000:05: resource 1 [mem 0xf0000000-0xf1ffffff]
[    0.425832] pci_bus 0000:05: resource 2 [mem 0xf2700000-0xf27fffff 64bit pref]
[    0.425836] pci_bus 0000:0d: resource 1 [mem 0xf2100000-0xf21fffff]
[    0.425841] pci_bus 0000:0f: resource 1 [mem 0xf2200000-0xf22fffff]
[    0.425845] pci_bus 0000:17: resource 1 [mem 0xf2300000-0xf23fffff]
[    0.425849] pci_bus 0000:1f: resource 4 [io  0x0000-0xffff]
[    0.425853] pci_bus 0000:1f: resource 5 [mem 0x00000000-0xfffffffff]
[    0.425858] pci_bus 0000:04: resource 4 [io  0x0000-0xffff]
[    0.425862] pci_bus 0000:04: resource 5 [mem 0x00000000-0xfffffffff]
[    0.425908] NET: Registered protocol family 2
[    0.426377] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.427443] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.428281] TCP: Hash tables configured (established 131072 bind 65536)
[    0.428526] UDP hash table entries: 8192 (order: 6, 262144 bytes)
[    0.428967] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes)
[    0.429460] NET: Registered protocol family 1
[    0.448816] pci 0000:01:00.0: Video device with shadowed ROM
[    0.456865] pci 0000:0f:00.0: xHCI BIOS handoff failed (BIOS bug ?) 00010401
[    0.457851] PCI: CLS 64 bytes, default 64
[    0.617371] DMAR: No ATSR found
[    0.617785] DMAR: dmar0: Using Queued invalidation
[    0.618012] DMAR: Setting RMRR:
[    0.618243] DMAR: Setting identity map for device 0000:00:1a.0 [0xbbee9000 - 0xbbefffff]
[    0.618677] DMAR: Setting identity map for device 0000:00:1d.0 [0xbbee9000 - 0xbbefffff]
[    0.619086] DMAR: Prepare 0-16MiB unity mapping for LPC
[    0.619309] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[    0.619936] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    0.620221] iommu: Adding device 0000:00:00.0 to group 0
[    0.620451] iommu: Adding device 0000:00:03.0 to group 1
[    0.620727] iommu: Adding device 0000:00:08.0 to group 2
[    0.620953] iommu: Adding device 0000:00:08.1 to group 2
[    0.621178] iommu: Adding device 0000:00:08.2 to group 2
[    0.621402] iommu: Adding device 0000:00:08.3 to group 2
[    0.621645] iommu: Adding device 0000:00:10.0 to group 3
[    0.621873] iommu: Adding device 0000:00:10.1 to group 3
[    0.622106] iommu: Adding device 0000:00:16.0 to group 4
[    0.622332] iommu: Adding device 0000:00:19.0 to group 5
[    0.622559] iommu: Adding device 0000:00:1a.0 to group 6
[    0.622791] iommu: Adding device 0000:00:1b.0 to group 7
[    0.623019] iommu: Adding device 0000:00:1c.0 to group 8
[    0.623249] iommu: Adding device 0000:00:1c.1 to group 9
[    0.623476] iommu: Adding device 0000:00:1c.3 to group 10
[    0.623708] iommu: Adding device 0000:00:1c.4 to group 11
[    0.623939] iommu: Adding device 0000:00:1c.6 to group 12
[    0.624167] iommu: Adding device 0000:00:1c.7 to group 13
[    0.624394] iommu: Adding device 0000:00:1d.0 to group 14
[    0.624627] iommu: Adding device 0000:00:1e.0 to group 15
[    0.624872] iommu: Adding device 0000:00:1f.0 to group 16
[    0.625099] iommu: Adding device 0000:00:1f.2 to group 16
[    0.625326] iommu: Adding device 0000:00:1f.3 to group 16
[    0.625544] iommu: Adding device 0000:01:00.0 to group 1
[    0.625765] iommu: Adding device 0000:01:00.1 to group 1
[    0.625994] iommu: Adding device 0000:03:00.0 to group 17
[    0.626234] iommu: Adding device 0000:0d:00.0 to group 18
[    0.626462] iommu: Adding device 0000:0d:00.1 to group 18
[    0.626693] iommu: Adding device 0000:0f:00.0 to group 19
[    0.631528] iommu: Adding device 0000:17:00.0 to group 20
[    0.631755] iommu: Adding device 0000:17:00.3 to group 20
[    0.635167] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.636115] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.636356] audit: initializing netlink subsys (disabled)
[    0.636585] audit: type=2000 audit(1444611180.511:1): initialized
[    0.640542] zbud: loaded
[    0.642301] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.642700] io scheduler noop registered
[    0.642910] io scheduler deadline registered
[    0.643180] io scheduler cfq registered (default)
[    0.644448] pcieport 0000:00:03.0: Signaling PME through PCIe PME interrupt
[    0.644678] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    0.644892] pci 0000:01:00.1: Signaling PME through PCIe PME interrupt
[    0.645106] pcie_pme 0000:00:03.0:pcie01: service driver pcie_pme loaded
[    0.645153] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt
[    0.645374] pcie_pme 0000:00:1c.0:pcie01: service driver pcie_pme loaded
[    0.645418] pcieport 0000:00:1c.1: Signaling PME through PCIe PME interrupt
[    0.645655] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[    0.645880] pcie_pme 0000:00:1c.1:pcie01: service driver pcie_pme loaded
[    0.645928] pcieport 0000:00:1c.3: Signaling PME through PCIe PME interrupt
[    0.646149] pcie_pme 0000:00:1c.3:pcie01: service driver pcie_pme loaded
[    0.646195] pcieport 0000:00:1c.4: Signaling PME through PCIe PME interrupt
[    0.646409] pci 0000:0d:00.0: Signaling PME through PCIe PME interrupt
[    0.646635] pci 0000:0d:00.1: Signaling PME through PCIe PME interrupt
[    0.646861] pcie_pme 0000:00:1c.4:pcie01: service driver pcie_pme loaded
[    0.646923] pcieport 0000:00:1c.6: Signaling PME through PCIe PME interrupt
[    0.647138] pci 0000:0f:00.0: Signaling PME through PCIe PME interrupt
[    0.647356] pcie_pme 0000:00:1c.6:pcie01: service driver pcie_pme loaded
[    0.647401] pcieport 0000:00:1c.7: Signaling PME through PCIe PME interrupt
[    0.647630] pci 0000:17:00.0: Signaling PME through PCIe PME interrupt
[    0.647843] pci 0000:17:00.3: Signaling PME through PCIe PME interrupt
[    0.648065] pcie_pme 0000:00:1c.7:pcie01: service driver pcie_pme loaded
[    0.648083] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    0.648321] pciehp 0000:00:1c.3:pcie04: Slot #3 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ LLActRep+
[    0.648776] pciehp 0000:00:1c.3:pcie04: service driver pciehp loaded
[    0.648788] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    0.649013] intel_idle: MWAIT substates: 0x1120
[    0.649024] intel_idle: v0.4 model 0x1E
[    0.649026] intel_idle: lapic_timer_reliable_states 0x2
[    0.649217] xenfs: not registering filesystem on non-xen platform
[    0.649635] Failed to find cpu0 device node
[    0.649844] Unable to detect cache hierarchy from DT for CPU 0
[    0.653440] brd: module loaded
[    0.653878] zram: Added device: zram0
[    0.654318] zram: Added device: zram1
[    0.654723] zram: Added device: zram2
[    0.655156] zram: Added device: zram3
[    0.655462] ahci 0000:00:1f.2: version 3.0
[    0.655584] ahci 0000:00:1f.2: SSS flag set, parallel bus scan disabled
[    0.666076] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 3 Gbps 0x33 impl SATA mode
[    0.666465] ahci 0000:00:1f.2: flags: 64bit ncq sntf ilck stag pm led clo pio slum part ems sxs apst 
[    0.672913] scsi host0: ahci
[    0.673285] scsi host1: ahci
[    0.673613] scsi host2: ahci
[    0.673941] scsi host3: ahci
[    0.674291] scsi host4: ahci
[    0.674617] scsi host5: ahci
[    0.674908] ata1: SATA max UDMA/133 abar m2048@0xf2627000 port 0xf2627100 irq 24
[    0.675322] ata2: SATA max UDMA/133 abar m2048@0xf2627000 port 0xf2627180 irq 24
[    0.675706] ata3: DUMMY
[    0.675907] ata4: DUMMY
[    0.676133] ata5: SATA max UDMA/133 abar m2048@0xf2627000 port 0xf2627300 irq 24
[    0.676523] ata6: SATA max UDMA/133 abar m2048@0xf2627000 port 0xf2627380 irq 24
[    0.677013] i8042: PNP: No PS/2 controller found. Probing ports directly.
[    0.682555] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.682772] serio: i8042 AUX port at 0x60,0x64 irq 12
[    0.683190] mousedev: PS/2 mouse device common for all mice
[    0.683535] input: PC Speaker as /devices/platform/pcspkr/input/input1
[    0.683929] device-mapper: ioctl: 4.33.0-ioctl (2015-8-18) initialised: dm-devel@redhat.com
[    0.684582] Initializing XFRM netlink socket
[    0.685167] NET: Registered protocol family 10
[    0.685731] NET: Registered protocol family 17
[    0.685949] NET: Registered protocol family 15
[    0.686766] registered taskstats version 1
[    0.687084] zswap: loaded using pool lzo/zbud
[    0.687313] ------------[ cut here ]------------
[    0.687555] WARNING: CPU: 0 PID: 1 at mm/early_ioremap.c:91 check_early_ioremap_leak+0x3f/0x45()
[    0.687940] Debug warning: early ioremap leak of 1 areas detected.
               please boot with early_ioremap_debug and report the dmesg.
[    0.688347] Modules linked in:
[    0.688579] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc4-next-20151009-linux+ #271
[    0.688962] Hardware name: LENOVO 4318CTO/4318CTO, BIOS 6NET84WW (1.45 ) 10/03/2012
[    0.689361]  0000000000000000 ffff88042d8afde8 ffffffff812ed22c ffff88042d8afe30
[    0.689847]  ffff88042d8afe20 ffffffff81056d88 ffffffff81b1e0a9 ffff88042c76d401
[    0.690347]  ffffffff81b1e06a 0000000000000000 ffffffff81a11080 ffff88042d8afe88
[    0.690830] Call Trace:
[    0.691053]  [<ffffffff812ed22c>] dump_stack+0x44/0x55
[    0.691266]  [<ffffffff81056d88>] warn_slowpath_common+0x9f/0xb8
[    0.691476]  [<ffffffff81b1e0a9>] ? check_early_ioremap_leak+0x3f/0x45
[    0.691688]  [<ffffffff81b1e06a>] ? early_ioremap_debug_setup+0x12/0x12
[    0.691901]  [<ffffffff81056de9>] warn_slowpath_fmt+0x48/0x50
[    0.692130]  [<ffffffff810020f5>] ? do_one_initcall+0x90/0x17a
[    0.692341]  [<ffffffff81b1e0a9>] check_early_ioremap_leak+0x3f/0x45
[    0.692552]  [<ffffffff81002152>] do_one_initcall+0xed/0x17a
[    0.692763]  [<ffffffff81af4fff>] kernel_init_freeable+0x10e/0x196
[    0.692977]  [<ffffffff81532eb2>] ? rest_init+0x79/0x79
[    0.693204]  [<ffffffff81532ec0>] kernel_init+0xe/0xda
[    0.693416]  [<ffffffff81538bcf>] ret_from_fork+0x3f/0x70
[    0.693626]  [<ffffffff81532eb2>] ? rest_init+0x79/0x79
[    0.693835] ---[ end trace dd833814130a8abe ]---
[    0.694147] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    0.695549] Btrfs loaded
[    0.696437]   Magic number: 3:262:860
[    0.696677] hctosys: unable to open rtc device (rtc0)
[    0.697807] device-tree: Duplicate name in testcase-data, renamed to "duplicate-name#1"
[    0.699117] ### dt-test ### start of unittest - you will see error messages
[    0.699435] /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
[    0.699828] /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
[    0.700273] /testcase-data/phandle-tests/consumer-a: could not find phandle
[    0.700489] /testcase-data/phandle-tests/consumer-a: could not find phandle
[    0.700703] /testcase-data/phandle-tests/consumer-a: arguments longer than property
[    0.701100] /testcase-data/phandle-tests/consumer-a: arguments longer than property
[    0.702314] irq: no irq domain found for /testcase-data/interrupts/intc0 !
[    0.704022] overlay_is_topmost: #5 clashes #6 @/testcase-data/overlay-node/test-bus/test-unittest8
[    0.704435] overlay_removal_is_ok: overlay #5 is not topmost
[    0.704647] of_overlay_destroy: removal check failed for overlay #5
[    0.706459] ### dt-test ### end of unittest - 148 passed, 0 failed
[    0.706691] PM: Hibernation image not present or could not be loaded.
[    0.986033] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.316661] ata1.00: ATA-9: ST1000LM014-1EJ164, SM11, max UDMA/133
[    1.316877] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.361049] ata1.00: configured for UDMA/133
[    1.361424] scsi 0:0:0:0: Direct-Access     ATA      ST1000LM014-1EJ1 SM11 PQ: 0 ANSI: 5
[    1.362147] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[    1.362535] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    1.362809] sd 0:0:0:0: [sda] Write Protect is off
[    1.363047] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.363077] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    1.363359] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.364354]  sda: sda1 sda2 sda3 sda4
[    1.365091] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.634966] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x18ebb92aef2, max_idle_ns: 440795243508 ns
[    1.635366] clocksource: Switched to clocksource tsc
[    1.667984] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.668409] ata2.00: ATA-8: Corsair CSSD-V128GB2, 2.2, max UDMA/133
[    1.668623] ata2.00: 250069680 sectors, multi 1: LBA48 NCQ (depth 31/32), AA
[    1.669699] ata2.00: configured for UDMA/133
[    1.670081] scsi 1:0:0:0: Direct-Access     ATA      Corsair CSSD-V12 2.2  PQ: 0 ANSI: 5
[    1.670751] sd 1:0:0:0: [sdb] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[    1.671246] sd 1:0:0:0: [sdb] Write Protect is off
[    1.671458] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    1.671486] sd 1:0:0:0: Attached scsi generic sg1 type 0
[    1.671756] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.674018]  sdb: sdb1 sdb2 sdb3 sdb4
[    1.674727] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[    1.976958] ata5: SATA link down (SStatus 0 SControl 300)
[    2.281932] ata6: SATA link down (SStatus 0 SControl 300)
[    2.285205] Freeing unused kernel memory: 5816K (ffffffff81adc000 - ffffffff8208a000)
[    2.285590] Write protecting the kernel read-only data: 10240k
[    2.286298] Freeing unused kernel memory: 768K (ffff880001540000 - ffff880001600000)
[    2.294834] Freeing unused kernel memory: 1504K (ffff880001888000 - ffff880001a00000)
[    2.322480] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    2.361095] zram0: detected capacity change from 0 to 134217728
[    2.370328] zram1: detected capacity change from 0 to 10737418240
[    2.371575] zram2: detected capacity change from 0 to 1073741824
[    2.378118] random: mkfs.ext4 urandom read with 42 bits of entropy available
[    2.379580] EXT4-fs (zram0): couldn't mount as ext3 due to feature incompatibilities
[    2.380136] EXT4-fs (zram0): couldn't mount as ext2 due to feature incompatibilities
[    2.380800] EXT4-fs (zram0): mounted filesystem without journal. Opts: (null)
[    2.643151] BTRFS: device fsid 815266d6-a8b9-4f63-a593-02fde178263f devid 1 transid 1347601 /dev/sdb3
[    2.643995] BTRFS info (device sdb3): disk space caching is enabled
[    2.647332] BTRFS: bdev /dev/sdb3 errs: wr 9, rd 0, flush 0, corrupt 0, gen 0
[    2.673418] BTRFS: detected SSD devices, enabling SSD mode
[    3.436455] systemd-udevd[380]: starting version 225
[    3.466578] systemd-udevd[381]: Network interface NamePolicy= disabled on kernel command line, ignoring.
[    3.579504] systemd-udevd[381]: Network interface NamePolicy= disabled on kernel command line, ignoring.
[    3.786055] usbcore: registered new interface driver usbfs
[    3.786080] usbcore: registered new interface driver hub
[    3.795527] usbcore: registered new device driver usb
[    3.816115] pps_core: LinuxPPS API ver. 1 registered
[    3.816119] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    3.823179] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.841112] PTP clock support registered
[    3.841591] ehci-pci: EHCI PCI platform driver
[    3.841690] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    3.841701] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    3.841728] ehci-pci 0000:00:1a.0: debug port 2
[    3.843369] Linux agpgart interface v0.103
[    3.854482] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    3.882090] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    3.882095] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    3.891174] sdhci: Secure Digital Host Controller Interface driver
[    3.891178] sdhci: Copyright(c) Pierre Ossman
[    3.895981] sdhci-pci 0000:0d:00.0: SDHCI controller found [1180:e822] (rev 1)
[    3.896124] sdhci-pci 0000:0d:00.0: Will use DMA mode even though HW doesn't fully claim to support it.
[    3.896135] sdhci-pci 0000:0d:00.0: No vmmc regulator found
[    3.896138] sdhci-pci 0000:0d:00.0: No vqmmc regulator found
[    3.906738] mmc0: SDHCI controller on PCI [0000:0d:00.0] using DMA
[    3.906896] sdhci-pci 0000:17:00.0: SDHCI controller found [1180:e822] (rev 1)
[    3.906996] sdhci-pci 0000:17:00.0: Will use DMA mode even though HW doesn't fully claim to support it.
[    3.907007] sdhci-pci 0000:17:00.0: No vmmc regulator found
[    3.907011] sdhci-pci 0000:17:00.0: No vqmmc regulator found
[    3.916875] mmc1: SDHCI controller on PCI [0000:17:00.0] using DMA
[    3.918491] ehci-pci 0000:00:1a.0: irq 11, io mem 0xf2628000
[    3.924144] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    3.924308] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    3.924314] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.924319] usb usb1: Product: EHCI Host Controller
[    3.924323] usb usb1: Manufacturer: Linux 4.3.0-rc4-next-20151009-linux+ ehci_hcd
[    3.924326] usb usb1: SerialNumber: 0000:00:1a.0
[    3.924998] hub 1-0:1.0: USB hub found
[    3.925012] hub 1-0:1.0: 3 ports detected
[    3.925411] xhci_hcd 0000:0f:00.0: xHCI Host Controller
[    3.925423] xhci_hcd 0000:0f:00.0: new USB bus registered, assigned bus number 2
[    3.925667] xhci_hcd 0000:0f:00.0: hcc params 0x014042cb hci version 0x96 quirks 0x00000004
[    3.925925] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    3.925930] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.925934] usb usb2: Product: xHCI Host Controller
[    3.925938] usb usb2: Manufacturer: Linux 4.3.0-rc4-next-20151009-linux+ xhci-hcd
[    3.925941] usb usb2: SerialNumber: 0000:0f:00.0
[    3.926142] hub 2-0:1.0: USB hub found
[    3.926158] hub 2-0:1.0: 2 ports detected
[    3.926344] xhci_hcd 0000:0f:00.0: xHCI Host Controller
[    3.926721] xhci_hcd 0000:0f:00.0: new USB bus registered, assigned bus number 3
[    3.929664] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[    3.929696] rtc_cmos rtc_cmos: alarms up to one day, 114 bytes nvram
[    3.936903] usb usb3: We don't know the algorithms for LPM for this host, disabling LPM.
[    3.936946] usb usb3: New USB device found, idVendor=1d6b, idProduct=0003
[    3.936952] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.936956] usb usb3: Product: xHCI Host Controller
[    3.936960] usb usb3: Manufacturer: Linux 4.3.0-rc4-next-20151009-linux+ xhci-hcd
[    3.936964] usb usb3: SerialNumber: 0000:0f:00.0
[    3.938346] hub 3-0:1.0: USB hub found
[    3.938407] hub 3-0:1.0: 2 ports detected
[    3.947067] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[    3.961313] snd_hda_codec_conexant hdaudioC0D0: CX20585: BIOS auto-probing.
[    3.961855] snd_hda_codec_conexant hdaudioC0D0: autoconfig for CX20585: line_outs=1 (0x1f/0x0/0x0/0x0/0x0) type:speaker
[    3.961861] snd_hda_codec_conexant hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    3.961866] snd_hda_codec_conexant hdaudioC0D0:    hp_outs=2 (0x1c/0x19/0x0/0x0/0x0)
[    3.961870] snd_hda_codec_conexant hdaudioC0D0:    mono: mono_out=0x0
[    3.961874] snd_hda_codec_conexant hdaudioC0D0:    inputs:
[    3.961878] snd_hda_codec_conexant hdaudioC0D0:      Internal Mic=0x23
[    3.961882] snd_hda_codec_conexant hdaudioC0D0:      Mic=0x1b
[    3.961886] snd_hda_codec_conexant hdaudioC0D0:      Dock Mic=0x1a
[    3.963603] snd_hda_codec_conexant hdaudioC0D0: Enable sync_write for stable communication
[    3.963613] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
[    3.963712] IP: [<ffffffff8135be41>] acpi_ns_walk_namespace+0x3d/0x18f
[    3.963787] PGD 42cb64067 PUD 42cb65067 PMD 0 
[    3.963901] Oops: 0000 [#1] SMP 
[    3.963985] Modules linked in: snd_hda_codec_conexant(+) mfd_core snd_hda_codec_generic firewire_ohci(+) firewire_core rtc_cmos crc_itu_t sdhci_pci drm(+) sdhci xhci_pci(+) e1000e(+) cfg80211 xhci_hcd snd_hda_intel mei_me ehci_pci(+) mmc_core ptp agpgart mei snd_hda_codec pps_core ehci_hcd syscopyarea rfkill sysfillrect snd_hda_core sysimgblt fb_sys_fops snd_pcm fb snd_timer fbdev usbcore usb_common snd soundcore
[    3.965088] CPU: 0 PID: 466 Comm: modprobe Tainted: G        W       4.3.0-rc4-next-20151009-linux+ #271
[    3.965134] Hardware name: LENOVO 4318CTO/4318CTO, BIOS 6NET84WW (1.45 ) 10/03/2012
[    3.965178] task: ffff88042c838000 ti: ffff88042d340000 task.ti: ffff88042d340000
[    3.965220] RIP: 0010:[<ffffffff8135be41>]  [<ffffffff8135be41>] acpi_ns_walk_namespace+0x3d/0x18f
[    3.965293] RSP: 0018:ffff88042d343a80  EFLAGS: 00010202
[    3.965332] RAX: ffff88042d343af0 RBX: 0000000000000001 RCX: 0000000000000001
[    3.965373] RDX: 00000000ffffffff RSI: ffffffffffffffff RDI: 0000000000000006
[    3.965415] RBP: ffff88042d343ad0 R08: ffffffff8135c425 R09: 0000000000000000
[    3.965456] R10: ffff8800baf31a00 R11: ffffffff820e2300 R12: 0000000000000001
[    3.965669] R13: ffff880429614000 R14: 0000000000000000 R15: 0000000000000000
[    3.965882] FS:  00007f756368b700(0000) GS:ffff88043fc00000(0000) knlGS:0000000000000000
[    3.966266] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    3.966474] CR2: 0000000000000018 CR3: 000000042cb67000 CR4: 00000000000006f0
[    3.966685] Stack:
[    3.966887]  0000000000000023 0000000000000001 ffff88042d343af0 00000001ffffffff
[    3.967369]  ffff880000000006 0000000000000000 ffff88042c7bf000 ffff880429614000
[    3.967852]  0000000000000001 0000000000000001 ffff88042d343b10 ffffffff8135c340
[    3.968334] Call Trace:
[    3.968540]  [<ffffffff8135c340>] acpi_get_devices+0x5b/0x71
[    3.968750]  [<ffffffffa03aa000>] ? 0xffffffffa03aa000
[    3.968963]  [<ffffffffa03aac7f>] hda_fixup_thinkpad_acpi+0x5a/0x186 [snd_hda_codec_conexant]
[    3.969372]  [<ffffffffa0142cbd>] apply_fixup+0xb6/0x127 [snd_hda_codec]
[    3.969594]  [<ffffffffa0142d50>] snd_hda_apply_fixup+0x22/0x24 [snd_hda_codec]
[    3.969982]  [<ffffffffa03aabe8>] patch_conexant_auto+0x365/0x382 [snd_hda_codec_conexant]
[    3.970371]  [<ffffffffa013d3f6>] hda_codec_driver_probe+0xb8/0x118 [snd_hda_codec]
[    3.970758]  [<ffffffff813be99d>] driver_probe_device+0xfc/0x26c
[    3.970970]  [<ffffffff813beb6a>] __driver_attach+0x5d/0x7f
[    3.971181]  [<ffffffff813beb0d>] ? driver_probe_device+0x26c/0x26c
[    3.971391]  [<ffffffff813bcf97>] bus_for_each_dev+0x6d/0x85
[    3.971601]  [<ffffffff813be544>] driver_attach+0x1e/0x20
[    3.971811]  [<ffffffff813be13f>] bus_add_driver+0xf1/0x1e9
[    3.972020]  [<ffffffffa03ae000>] ? 0xffffffffa03ae000
[    3.972228]  [<ffffffff813bf3f4>] driver_register+0x8e/0xca
[    3.972437]  [<ffffffffa03ae000>] ? 0xffffffffa03ae000
[    3.972650]  [<ffffffffa013d0c4>] __hda_codec_driver_register+0x5a/0x5c [snd_hda_codec]
[    3.973040]  [<ffffffffa03ae01e>] conexant_driver_init+0x1e/0x20 [snd_hda_codec_conexant]
[    3.973425]  [<ffffffff81002152>] do_one_initcall+0xed/0x17a
[    3.973635]  [<ffffffff81144861>] ? kmem_cache_alloc_trace+0x3d/0x16d
[    3.973848]  [<ffffffff8110175d>] ? do_init_module+0x27/0x1df
[    3.974059]  [<ffffffff81101795>] do_init_module+0x5f/0x1df
[    3.974270]  [<ffffffff810bb0f7>] load_module+0x185a/0x1c00
[    3.974481]  [<ffffffff81159de5>] ? vfs_read+0xf1/0xff
[    3.974691]  [<ffffffff810b86f7>] ? copy_module_from_fd+0x8e/0xef
[    3.974902]  [<ffffffff810bb5f2>] SyS_finit_module+0x5e/0x6b
[    3.975111]  [<ffffffff810bb5f2>] ? SyS_finit_module+0x5e/0x6b
[    3.975324]  [<ffffffff81538836>] entry_SYSCALL_64_fastpath+0x16/0x75
[    3.975535] Code: 41 54 41 89 cc 53 bb 01 00 00 00 48 83 ec 28 48 83 fe ff 89 7d d0 4c 0f 44 35 e4 6c df 00 89 55 c8 45 31 ff 41 83 e4 01 89 4d cc <4d> 8b 6e 18 4c 89 45 c0 4c 89 4d b8 c7 45 d4 00 00 00 00 4d 85 
[    3.977772] RIP  [<ffffffff8135be41>] acpi_ns_walk_namespace+0x3d/0x18f
[    3.978010]  RSP <ffff88042d343a80>
[    3.978214] CR2: 0000000000000018
[    3.978456] ---[ end trace dd833814130a8abf ]---
[    3.990613] [drm] Initialized drm 1.1.0 20060810
[    3.995416] Intel(R) Wireless WiFi driver for Linux
[    3.995647] Copyright(c) 2003- 2015 Intel Corporation
[    3.999310] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
[    4.001640] random: nonblocking pool is initialized
[    4.007844] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6050-exp.ucode failed with error -2
[    4.012450] iwlwifi 0000:03:00.0: loaded firmware version 41.28.5.1 build 33926 op_mode iwldvm
[    4.033843] firewire_ohci 0000:17:00.3: added OHCI v1.10 device as card 0, 4 IR + 4 IT contexts, quirks 0x11
[    4.058522] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG enabled
[    4.058740] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[    4.058977] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[    4.059192] iwlwifi 0000:03:00.0: Detected Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN, REV=0x84
[    4.059890] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[    4.125937] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[    4.159127] microcode: CPU0 sig=0x106e5, pf=0x10, revision=0x5
[    4.163835] microcode: CPU0 sig=0x106e5, pf=0x10, revision=0x5
[    4.164658] microcode: CPU0 updated to revision 0x7, date = 2013-08-20
[    4.169393] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    4.241769] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    4.246786] kvm: VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL does not work properly. Using workaround
[    4.357142] usb 1-1: New USB device found, idVendor=8087, idProduct=0020
[    4.357361] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.357951] hub 1-1:1.0: USB hub found
[    4.358390] hub 1-1:1.0: 6 ports detected
[    4.365742] cfg80211: World regulatory domain updated:
[    4.365955] cfg80211:  DFS Master region: unset
[    4.365992] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    4.366575] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    4.366982] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    4.367368] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[    4.367769] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[    4.368158] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[    4.368544] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[    4.368954] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[    4.369343] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[    4.397050] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) f0:de:f1:3e:ba:af
[    4.397439] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[    4.398981] e1000e 0000:00:19.0 eth0: MAC: 9, PHY: 10, PBA No: A002FF-0FF
[    4.400770] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    4.400992] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 4
[    4.401398] ehci-pci 0000:00:1d.0: debug port 2
[    4.405570] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    4.426766] ehci-pci 0000:00:1d.0: irq 7, io mem 0xf2628400
[    4.433258] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    4.433606] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
[    4.433854] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.434239] usb usb4: Product: EHCI Host Controller
[    4.434447] usb usb4: Manufacturer: Linux 4.3.0-rc4-next-20151009-linux+ ehci_hcd
[    4.434856] usb usb4: SerialNumber: 0000:00:1d.0
[    4.441478] hub 4-0:1.0: USB hub found
[    4.442757] hub 4-0:1.0: 3 ports detected
[    4.445016] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[    4.448702] ------------[ cut here ]------------
[    4.448954] WARNING: CPU: 0 PID: 433 at lib/kobject.c:597 kobject_get+0x33/0x6a()
[    4.449340] kobject: ' \x10' (ffff88042cef0e58): is not initialized, yet kobject_get() is being called.
[    4.449746] Modules linked in: gpio_ich(+) coretemp kvm_intel kvm irqbypass microcode arc4 psmouse evdev video fbcon bitblit i2c_algo_bit softcursor font i2c_i801 iwldvm drm_kms_helper mac80211 cfbfillrect cfbimgblt cfbcopyarea ttm iwlwifi lpc_ich snd_hda_codec_conexant(+) mfd_core snd_hda_codec_generic firewire_ohci firewire_core rtc_cmos crc_itu_t sdhci_pci drm sdhci xhci_pci e1000e cfg80211 xhci_hcd snd_hda_intel mei_me ehci_pci mmc_core ptp agpgart mei snd_hda_codec pps_core ehci_hcd syscopyarea rfkill sysfillrect snd_hda_core sysimgblt fb_sys_fops snd_pcm fb snd_timer fbdev usbcore usb_common snd soundcore
[    4.457537] CPU: 0 PID: 433 Comm: systemd-udevd Tainted: G      D W       4.3.0-rc4-next-20151009-linux+ #271
[    4.457941] Hardware name: LENOVO 4318CTO/4318CTO, BIOS 6NET84WW (1.45 ) 10/03/2012
[    4.458325]  0000000000000000 ffff88042c19fa40 ffffffff812ed22c ffff88042c19fa88
[    4.458828]  ffff88042c19fa78 ffffffff81056d88 ffffffff812eedb9 ffff88042cef0e58
[    4.459313]  ffff8804297bc000 0000000000000000 0000000000000003 ffff88042c19fae0
[    4.459811] Call Trace:
[    4.460018]  [<ffffffff812ed22c>] dump_stack+0x44/0x55
[    4.460229]  [<ffffffff81056d88>] warn_slowpath_common+0x9f/0xb8
[    4.460440]  [<ffffffff812eedb9>] ? kobject_get+0x33/0x6a
[    4.460652]  [<ffffffff81056de9>] warn_slowpath_fmt+0x48/0x50
[    4.460884]  [<ffffffff812eedb9>] kobject_get+0x33/0x6a
[    4.461097]  [<ffffffff8144f051>] of_node_get+0x1b/0x21
[    4.461310]  [<ffffffff813147de>] of_gpiochip_add+0x6b/0xdd
[    4.461520]  [<ffffffff81312e37>] gpiochip_add+0x22b/0x3f5
[    4.461749]  [<ffffffff81076a6c>] ? wake_up_q+0x56/0x56
[    4.461964]  [<ffffffffa00206ab>] ichx_gpio_probe+0x2cb/0x351 [gpio_ich]
[    4.462177]  [<ffffffff813c03c4>] platform_drv_probe+0x38/0x7d
[    4.462388]  [<ffffffff813be99d>] driver_probe_device+0xfc/0x26c
[    4.462601]  [<ffffffff813beb6a>] __driver_attach+0x5d/0x7f
[    4.462828]  [<ffffffff813beb0d>] ? driver_probe_device+0x26c/0x26c
[    4.463041]  [<ffffffff813bcf97>] bus_for_each_dev+0x6d/0x85
[    4.463251]  [<ffffffff813be544>] driver_attach+0x1e/0x20
[    4.463460]  [<ffffffff813be13f>] bus_add_driver+0xf1/0x1e9
[    4.463669]  [<ffffffffa0023000>] ? 0xffffffffa0023000
[    4.463896]  [<ffffffff813bf3f4>] driver_register+0x8e/0xca
[    4.464108]  [<ffffffffa0023000>] ? 0xffffffffa0023000
[    4.464316]  [<ffffffff813c031a>] __platform_driver_register+0x36/0x38
[    4.464529]  [<ffffffffa0023017>] ichx_gpio_driver_init+0x17/0x19 [gpio_ich]
[    4.464760]  [<ffffffff81002152>] do_one_initcall+0xed/0x17a
[    4.464972]  [<ffffffff81145a6e>] ? kfree+0xec/0x135
[    4.465180]  [<ffffffff81144861>] ? kmem_cache_alloc_trace+0x3d/0x16d
[    4.465391]  [<ffffffff8110175d>] ? do_init_module+0x27/0x1df
[    4.465602]  [<ffffffff81101795>] do_init_module+0x5f/0x1df
[    4.465830]  [<ffffffff810bb0f7>] load_module+0x185a/0x1c00
[    4.466043]  [<ffffffff81159de5>] ? vfs_read+0xf1/0xff
[    4.466253]  [<ffffffff810b86f7>] ? copy_module_from_fd+0x8e/0xef
[    4.466465]  [<ffffffff810bb5f2>] SyS_finit_module+0x5e/0x6b
[    4.466674]  [<ffffffff810bb5f2>] ? SyS_finit_module+0x5e/0x6b
[    4.466904]  [<ffffffff81538836>] entry_SYSCALL_64_fastpath+0x16/0x75
[    4.467118] ---[ end trace dd833814130a8ac0 ]---
[    4.467324] ------------[ cut here ]------------
[    4.467532] WARNING: CPU: 0 PID: 433 at include/linux/kref.h:47 kobject_get+0x5d/0x6a()
[    4.467932] Modules linked in: gpio_ich(+) coretemp kvm_intel kvm irqbypass microcode arc4 psmouse evdev video fbcon bitblit i2c_algo_bit softcursor font i2c_i801 iwldvm drm_kms_helper mac80211 cfbfillrect cfbimgblt cfbcopyarea ttm iwlwifi lpc_ich snd_hda_codec_conexant(+) mfd_core snd_hda_codec_generic firewire_ohci firewire_core rtc_cmos crc_itu_t sdhci_pci drm sdhci xhci_pci e1000e cfg80211 xhci_hcd snd_hda_intel mei_me ehci_pci mmc_core ptp agpgart mei snd_hda_codec pps_core ehci_hcd syscopyarea rfkill sysfillrect snd_hda_core sysimgblt fb_sys_fops snd_pcm fb snd_timer fbdev usbcore usb_common snd soundcore
[    4.471127] CPU: 0 PID: 433 Comm: systemd-udevd Tainted: G      D W       4.3.0-rc4-next-20151009-linux+ #271
[    4.471513] Hardware name: LENOVO 4318CTO/4318CTO, BIOS 6NET84WW (1.45 ) 10/03/2012
[    4.471913]  0000000000000000 ffff88042c19fa98 ffffffff812ed22c 0000000000000000
[    4.472398]  ffff88042c19fad0 ffffffff81056d88 ffffffff812eede3 ffff88042cef0e58
[    4.472898]  ffff8804297bc000 0000000000000000 0000000000000003 ffff88042c19fae0
[    4.473381] Call Trace:
[    4.473585]  [<ffffffff812ed22c>] dump_stack+0x44/0x55
[    4.473813]  [<ffffffff81056d88>] warn_slowpath_common+0x9f/0xb8
[    4.474024]  [<ffffffff812eede3>] ? kobject_get+0x5d/0x6a
[    4.474234]  [<ffffffff81056e54>] warn_slowpath_null+0x1a/0x1c
[    4.474444]  [<ffffffff812eede3>] kobject_get+0x5d/0x6a
[    4.474653]  [<ffffffff8144f051>] of_node_get+0x1b/0x21
[    4.474880]  [<ffffffff813147de>] of_gpiochip_add+0x6b/0xdd
[    4.475092]  [<ffffffff81312e37>] gpiochip_add+0x22b/0x3f5
[    4.475303]  [<ffffffff81076a6c>] ? wake_up_q+0x56/0x56
[    4.475514]  [<ffffffffa00206ab>] ichx_gpio_probe+0x2cb/0x351 [gpio_ich]
[    4.475743]  [<ffffffff813c03c4>] platform_drv_probe+0x38/0x7d
[    4.475956]  [<ffffffff813be99d>] driver_probe_device+0xfc/0x26c
[    4.476167]  [<ffffffff813beb6a>] __driver_attach+0x5d/0x7f
[    4.476376]  [<ffffffff813beb0d>] ? driver_probe_device+0x26c/0x26c
[    4.476587]  [<ffffffff813bcf97>] bus_for_each_dev+0x6d/0x85
[    4.476814]  [<ffffffff813be544>] driver_attach+0x1e/0x20
[    4.477025]  [<ffffffff813be13f>] bus_add_driver+0xf1/0x1e9
[    4.477235]  [<ffffffffa0023000>] ? 0xffffffffa0023000
[    4.477444]  [<ffffffff813bf3f4>] driver_register+0x8e/0xca
[    4.477653]  [<ffffffffa0023000>] ? 0xffffffffa0023000
[    4.477879]  [<ffffffff813c031a>] __platform_driver_register+0x36/0x38
[    4.478094]  [<ffffffffa0023017>] ichx_gpio_driver_init+0x17/0x19 [gpio_ich]
[    4.478306]  [<ffffffff81002152>] do_one_initcall+0xed/0x17a
[    4.478516]  [<ffffffff81145a6e>] ? kfree+0xec/0x135
[    4.478741]  [<ffffffff81144861>] ? kmem_cache_alloc_trace+0x3d/0x16d
[    4.478954]  [<ffffffff8110175d>] ? do_init_module+0x27/0x1df
[    4.479164]  [<ffffffff81101795>] do_init_module+0x5f/0x1df
[    4.479374]  [<ffffffff810bb0f7>] load_module+0x185a/0x1c00
[    4.479584]  [<ffffffff81159de5>] ? vfs_read+0xf1/0xff
[    4.479811]  [<ffffffff810b86f7>] ? copy_module_from_fd+0x8e/0xef
[    4.480024]  [<ffffffff810bb5f2>] SyS_finit_module+0x5e/0x6b
[    4.480234]  [<ffffffff810bb5f2>] ? SyS_finit_module+0x5e/0x6b
[    4.480445]  [<ffffffff81538836>] entry_SYSCALL_64_fastpath+0x16/0x75
[    4.480656] ---[ end trace dd833814130a8ac1 ]---
[    4.480885] general protection fault: 0000 [#2] SMP 
[    4.481144] Modules linked in: gpio_ich(+) coretemp kvm_intel kvm irqbypass microcode arc4 psmouse evdev video fbcon bitblit i2c_algo_bit softcursor font i2c_i801 iwldvm drm_kms_helper mac80211 cfbfillrect cfbimgblt cfbcopyarea ttm iwlwifi lpc_ich snd_hda_codec_conexant(+) mfd_core snd_hda_codec_generic firewire_ohci firewire_core rtc_cmos crc_itu_t sdhci_pci drm sdhci xhci_pci e1000e cfg80211 xhci_hcd snd_hda_intel mei_me ehci_pci mmc_core ptp agpgart mei snd_hda_codec pps_core ehci_hcd syscopyarea rfkill sysfillrect snd_hda_core sysimgblt fb_sys_fops snd_pcm fb snd_timer fbdev usbcore usb_common snd soundcore
[    4.484279] CPU: 0 PID: 433 Comm: systemd-udevd Tainted: G      D W       4.3.0-rc4-next-20151009-linux+ #271
[    4.484665] Hardware name: LENOVO 4318CTO/4318CTO, BIOS 6NET84WW (1.45 ) 10/03/2012
[    4.485050] task: ffff88042c1cb500 ti: ffff88042c19c000 task.ti: ffff88042c19c000
[    4.485432] RIP: 0010:[<ffffffff8144c257>]  [<ffffffff8144c257>] __of_find_property+0x24/0x51
[    4.485846] RSP: 0018:ffff88042c19fac8  EFLAGS: 00010006
[    4.486058] RAX: 0000000000000000 RBX: 3a30303a30303030 RCX: 00000000ffffffff
[    4.486270] RDX: 0000000000000000 RSI: ffffffff818072f8 RDI: ffff88042cfcd290
[    4.486482] RBP: ffff88042c19fae0 R08: 0000000000000000 R09: 0000000000000000
[    4.486694] R10: ffffffffa0020de0 R11: 000000000001ffe0 R12: 0000000000000000
[    4.486905] R13: ffffffff818072f8 R14: 0000000000000003 R15: ffffffffa0020f50
[    4.487118] FS:  00007f75d64247c0(0000) GS:ffff88043fc00000(0000) knlGS:0000000000000000
[    4.487502] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    4.487710] CR2: 00007f75d642e000 CR3: 000000042c1d9000 CR4: 00000000000006f0
[    4.487921] Stack:
[    4.488123]  ffff88042cfcd290 0000000000000286 0000000000000000 ffff88042c19fb10
[    4.488608]  ffffffff8144c2be ffffffff818072f8 0000000000000000 ffffffffa0020f50
[    4.489090]  ffff88042cfcd290 ffff88042c19fb40 ffffffff81314805 0000000000000003
[    4.489573] Call Trace:
[    4.489777]  [<ffffffff8144c2be>] of_find_property+0x3a/0x58
[    4.489988]  [<ffffffff81314805>] of_gpiochip_add+0x92/0xdd
[    4.490198]  [<ffffffff81312e37>] gpiochip_add+0x22b/0x3f5
[    4.490409]  [<ffffffff81076a6c>] ? wake_up_q+0x56/0x56
[    4.490621]  [<ffffffffa00206ab>] ichx_gpio_probe+0x2cb/0x351 [gpio_ich]
[    4.490834]  [<ffffffff813c03c4>] platform_drv_probe+0x38/0x7d
[    4.491044]  [<ffffffff813be99d>] driver_probe_device+0xfc/0x26c
[    4.491254]  [<ffffffff813beb6a>] __driver_attach+0x5d/0x7f
[    4.491464]  [<ffffffff813beb0d>] ? driver_probe_device+0x26c/0x26c
[    4.491674]  [<ffffffff813bcf97>] bus_for_each_dev+0x6d/0x85
[    4.491884]  [<ffffffff813be544>] driver_attach+0x1e/0x20
[    4.492094]  [<ffffffff813be13f>] bus_add_driver+0xf1/0x1e9
[    4.492303]  [<ffffffffa0023000>] ? 0xffffffffa0023000
[    4.492513]  [<ffffffff813bf3f4>] driver_register+0x8e/0xca
[    4.492721]  [<ffffffffa0023000>] ? 0xffffffffa0023000
[    4.492930]  [<ffffffff813c031a>] __platform_driver_register+0x36/0x38
[    4.493143]  [<ffffffffa0023017>] ichx_gpio_driver_init+0x17/0x19 [gpio_ich]
[    4.493355]  [<ffffffff81002152>] do_one_initcall+0xed/0x17a
[    4.493565]  [<ffffffff81145a6e>] ? kfree+0xec/0x135
[    4.493772]  [<ffffffff81144861>] ? kmem_cache_alloc_trace+0x3d/0x16d
[    4.493983]  [<ffffffff8110175d>] ? do_init_module+0x27/0x1df
[    4.494194]  [<ffffffff81101795>] do_init_module+0x5f/0x1df
[    4.494404]  [<ffffffff810bb0f7>] load_module+0x185a/0x1c00
[    4.494614]  [<ffffffff81159de5>] ? vfs_read+0xf1/0xff
[    4.494823]  [<ffffffff810b86f7>] ? copy_module_from_fd+0x8e/0xef
[    4.495035]  [<ffffffff810bb5f2>] SyS_finit_module+0x5e/0x6b
[    4.495244]  [<ffffffff810bb5f2>] ? SyS_finit_module+0x5e/0x6b
[    4.495457]  [<ffffffff81538836>] entry_SYSCALL_64_fastpath+0x16/0x75
[    4.495668] Code: 5c 41 5d 41 5e 5d c3 66 66 66 66 90 31 c0 48 85 ff 74 44 55 48 89 e5 41 55 49 89 f5 41 54 49 89 d4 53 48 8b 5f 30 48 85 db 74 23 <48> 8b 3b 4c 89 ee e8 c6 62 ea ff 85 c0 75 0e 4d 85 e4 74 0f 8b 
[    4.497905] RIP  [<ffffffff8144c257>] __of_find_property+0x24/0x51
[    4.498143]  RSP <ffff88042c19fac8>
[    4.498349] ---[ end trace dd833814130a8ac2 ]---
[    4.504085] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[    4.527577] systemd-udevd[424]: Process 'net.sh wlan0 start' failed with exit code 1.
[    4.533475] systemd-udevd[432]: Process 'net.sh eth0 start' failed with exit code 1.
[    4.554099] systemd-udevd[381]: worker [433] terminated by signal 11 (Segmentation fault)
[    4.554492] systemd-udevd[381]: worker [433] failed while handling '/devices/pci0000:00/0000:00:1f.0/gpio_ich.1.auto'
[    4.560860] firewire_core 0000:17:00.3: created device fw0: GUID f0def1ff3ebaafff, S400
[    4.676723] usb 1-1.1: new low-speed USB device number 3 using ehci-pci
[    4.765292] usb 1-1.1: New USB device found, idVendor=0765, idProduct=5001
[    4.765509] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.769716] usb 4-1: new high-speed USB device number 2 using ehci-pci
[    4.797719] hidraw: raw HID events driver (C) Jiri Kosina
[    4.804288] usbcore: registered new interface driver usbhid
[    4.804502] usbhid: USB HID core driver
[    4.810456] hid-generic 0003:0765:5001.0001: hiddev0,hidraw0: USB HID v1.00 Device [HID 0765:5001] on usb-0000:00:1a.0-1.1/input0
[    4.841710] usb 1-1.3: new full-speed USB device number 4 using ehci-pci
[    4.899804] usb 4-1: New USB device found, idVendor=8087, idProduct=0020
[    4.900042] usb 4-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.901069] hub 4-1:1.0: USB hub found
[    4.901478] hub 4-1:1.0: 8 ports detected
[    4.928180] usb 1-1.3: New USB device found, idVendor=147e, idProduct=2016
[    4.928400] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.928818] usb 1-1.3: Product: Biometric Coprocessor
[    4.929028] usb 1-1.3: Manufacturer: UPEK
[    5.002714] usb 1-1.6: new high-speed USB device number 5 using ehci-pci
[    5.008942] psmouse serio1: synaptics: queried max coordinates: x [..5888], y [..4820]
[    5.091849] tun: Universal TUN/TAP device driver, 1.6
[    5.092061] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    5.094196] usb 1-1.6: New USB device found, idVendor=17ef, idProduct=480f
[    5.094415] usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.094827] usb 1-1.6: Product: Integrated Camera
[    5.095038] usb 1-1.6: Manufacturer: Chicony Electronics Co., Ltd.
[    5.099475] psmouse serio1: synaptics: Touchpad model: 1, fw: 7.2, id: 0x1c0b1, caps: 0xd047b3/0xb40000/0xa0000/0x0, board id: 0, fw id: 578367
[    5.099906] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[    5.156709] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input3
[    5.177692] usb 4-1.3: new high-speed USB device number 3 using ehci-pci
[    5.195707] Linux video capture interface: v2.00
[    5.223319] uvcvideo: Found UVC 1.00 device Integrated Camera (17ef:480f)
[    5.228066] input: Integrated Camera as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/input/input5
[    5.229125] usbcore: registered new interface driver uvcvideo
[    5.229338] USB Video Class driver (1.1.1)
[    5.259241] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    5.262534] Bridge firewalling registered
[    5.263718] usb 4-1.3: New USB device found, idVendor=8086, idProduct=0187
[    5.263936] usb 4-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.264320] usb 4-1.3: Product: Intel(R) Centrino(R) Advanced-N + WiMAX 6250
[    5.264532] usb 4-1.3: Manufacturer: Intel(R) Corporation
[    5.340683] usb 4-1.4: new high-speed USB device number 4 using ehci-pci
[    5.428840] usb 4-1.4: config 1 has an invalid interface number: 1 but max is 0
[    5.429229] usb 4-1.4: config 1 has no interface number 0
[    5.431611] usb 4-1.4: New USB device found, idVendor=05c6, idProduct=9204
[    5.431849] usb 4-1.4: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[    5.432235] usb 4-1.4: Product: Qualcomm Gobi 2000
[    5.432443] usb 4-1.4: Manufacturer: Qualcomm Incorporated
[    5.497947] usbcore: registered new interface driver usbserial
[    5.498724] usb 4-1.8: new full-speed USB device number 5 using ehci-pci
[    5.500941] usbcore: registered new interface driver usbserial_generic
[    5.501843] usbserial: USB Serial support registered for generic
[    5.509010] usbcore: registered new interface driver qcserial
[    5.510044] usbserial: USB Serial support registered for Qualcomm USB modem
[    5.511031] qcserial 4-1.4:1.1: Qualcomm USB modem converter detected
[    5.511523] usb 4-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[    5.586103] usb 4-1.8: New USB device found, idVendor=056a, idProduct=00e2
[    5.586387] usb 4-1.8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.586864] usb 4-1.8: Product: ISD-V4
[    5.587073] usb 4-1.8: Manufacturer: Tablet
[    5.645372] BTRFS info (device sdb3): turning on discard
[    5.645677] BTRFS info (device sdb3): disk space caching is enabled
[    5.785120] input: Wacom ISDv4 E2 Finger as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.8/4-1.8:1.0/0003:056A:00E2.0002/input/input7
[    5.787199] wacom 0003:056A:00E2.0002: hidraw1: USB HID v1.11 Mouse [Tablet ISD-V4] on usb-0000:00:1d.0-1.8/input0
[    6.177108] EXT4-fs (sda3): mounted filesystem with writeback data mode. Opts: data=writeback,user_xattr
[    6.300631] EXT4-fs (sda4): mounted filesystem with writeback data mode. Opts: (null)
[    6.316854] EXT4-fs (zram0): mounted filesystem without journal. Opts: barrier=0,commit=240
[    6.319597] EXT4-fs (zram1): mounted filesystem without journal. Opts: barrier=0,commit=240
[    6.989531] snd_hda_intel 0000:01:00.1: azx_get_response timeout, switching to polling mode: last cmd=0x300f0000
[    7.282952] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/0000:01:00.1/sound/card1/input9
[    7.283464] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/0000:01:00.1/sound/card1/input10
[    7.284014] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/0000:01:00.1/sound/card1/input11
[    7.284536] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:03.0/0000:01:00.1/sound/card1/input12
[    8.781321] usb 4-1.4: USB disconnect, device number 4
[    8.781710] qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0
[    8.782115] qcserial 4-1.4:1.1: device disconnected
[    9.726303] usb 4-1.4: new high-speed USB device number 6 using ehci-pci
[    9.813892] usb 4-1.4: New USB device found, idVendor=05c6, idProduct=9205
[    9.814109] usb 4-1.4: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[    9.814507] usb 4-1.4: Product: Qualcomm Gobi 2000
[    9.814717] usb 4-1.4: Manufacturer: Qualcomm Incorporated
[    9.817947] qcserial 4-1.4:1.1: Qualcomm USB modem converter detected
[    9.818259] usb 4-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[    9.819231] qcserial 4-1.4:1.2: Qualcomm USB modem converter detected
[    9.819568] usb 4-1.4: Qualcomm USB modem converter now attached to ttyUSB1
[    9.820345] qcserial 4-1.4:1.3: Qualcomm USB modem converter detected
[    9.820652] usb 4-1.4: Qualcomm USB modem converter now attached to ttyUSB2
[   10.553641] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[   10.841876] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input4
[   14.433577] systemd-udevd[426]: Process '/usr/local/sbin/doBackup.sh' failed with exit code 127.
[   16.878894] Adding 16347080k swap on /media/swapfile.  Priority:-1 extents:212 across:196689920k FS
[   18.048248] Bluetooth: Core ver 2.20
[   18.048479] NET: Registered protocol family 31
[   18.048714] Bluetooth: HCI device and connection manager initialized
[   18.051672] Bluetooth: HCI socket layer initialized
[   18.051887] Bluetooth: L2CAP socket layer initialized
[   18.052102] Bluetooth: SCO socket layer initialized
[   18.060746] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   18.060959] Bluetooth: BNEP filters: protocol multicast
[   18.061170] Bluetooth: BNEP socket layer initialized
[   18.403762] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   19.584680] device eth0 entered promiscuous mode
[   19.597774] device dummy0 entered promiscuous mode
[   19.606123] device xenbr0 entered promiscuous mode
[   19.609172] xenbr0: port 2(dummy0) entered forwarding state
[   19.609398] xenbr0: port 2(dummy0) entered forwarding state
[   19.643803] systemd-udevd[424]: Process 'net.sh xenbr0 start' failed with exit code 1.
[   21.985454] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[   21.986081] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[   21.987308] iwlwifi 0000:03:00.0: Radio type=0x1-0x2-0x0
[   22.222432] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[   22.223086] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled
[   22.223701] iwlwifi 0000:03:00.0: Radio type=0x1-0x2-0x0
[   22.322039] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   24.968474] wlan0: authenticate with 04:a1:51:b8:7b:e5
[   24.972227] wlan0: send auth to 04:a1:51:b8:7b:e5 (try 1/3)
[   25.038717] wlan0: authenticated
[   25.040044] wlan0: associate with 04:a1:51:b8:7b:e5 (try 1/3)
[   25.042252] wlan0: RX AssocResp from 04:a1:51:b8:7b:e5 (capab=0x11 status=0 aid=1)
[   25.046885] wlan0: associated
[   25.047137] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   25.051153] cfg80211: Regulatory domain changed to country: US
[   25.051368] cfg80211:  DFS Master region: FCC
[   25.051403] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   25.051986] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
[   25.052407] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 1700 mBm), (N/A)
[   25.052797] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
[   25.053199] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s)
[   25.053586] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[   25.053970] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
[   34.633233] xenbr0: port 2(dummy0) entered forwarding state
[   63.480035] ata2.00: configured for UDMA/133
[   63.480249] ata2: EH complete
[   65.181739] systemd-udevd[381]: seq 1169 '/devices/pci0000:00/0000:00:1f.0/iTCO_wdt.0.auto' is taking a long time

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  3:08         ` Pat Erley
@ 2015-10-12  3:49           ` Hanjun Guo
  2015-10-12  3:58             ` Pat Erley
  0 siblings, 1 reply; 26+ messages in thread
From: Hanjun Guo @ 2015-10-12  3:49 UTC (permalink / raw)
  To: Pat Erley, Al Stone, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, patches, linux-pm, linux-kernel,
	linaro-acpi, linux-acpi, Hanjun Guo, linux-arm-kernel

On 10/12/2015 11:08 AM, Pat Erley wrote:
> On 10/05/2015 10:12 AM, Al Stone wrote:
>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>> branch.
>>>>>>
>>>>
>>>> [snip...]
>>>>
>>>>>
>>>>> For this patch set,
>>>>>
>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>
>>>>> Thanks
>>>>> Hanjun
>>>>
>>>> Thanks, Hanjun!
>>>
>>> Series applied, thanks!
>>>
>>> Rafael
>>>
>>
>> Thanks, Rafael!
>>
>
> Just decided to test out linux-next (to see the new nouveau cleanups).
> This change set prevents my Lenovo W510 from booting properly.
>
> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
> eventually replace the macro"
>
> Gets the system booting again.  I'm attaching my dmesg from the failed
> boot, who wants the acpidump?

[    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
[    0.000000] ACPI: Error parsing LAPIC address override entry
[    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI

Seems the MADT revision is not right, could you dump the ACPI MADT
(APIC) table and send it out? I will take a look :)

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  3:49           ` [Linaro-acpi] " Hanjun Guo
@ 2015-10-12  3:58             ` Pat Erley
  2015-10-12  7:04               ` Hanjun Guo
  2015-10-12 20:52               ` Al Stone
  0 siblings, 2 replies; 26+ messages in thread
From: Pat Erley @ 2015-10-12  3:58 UTC (permalink / raw)
  To: Hanjun Guo, Al Stone, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, patches, linux-pm, linux-kernel,
	linaro-acpi, linux-acpi, Hanjun Guo, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 1475 bytes --]

On 10/11/2015 08:49 PM, Hanjun Guo wrote:
> On 10/12/2015 11:08 AM, Pat Erley wrote:
>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>> branch.
>>>>>>>
>>>>>
>>>>> [snip...]
>>>>>
>>>>>>
>>>>>> For this patch set,
>>>>>>
>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>
>>>>>> Thanks
>>>>>> Hanjun
>>>>>
>>>>> Thanks, Hanjun!
>>>>
>>>> Series applied, thanks!
>>>>
>>>> Rafael
>>>>
>>>
>>> Thanks, Rafael!
>>>
>>
>> Just decided to test out linux-next (to see the new nouveau cleanups).
>> This change set prevents my Lenovo W510 from booting properly.
>>
>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>> eventually replace the macro"
>>
>> Gets the system booting again.  I'm attaching my dmesg from the failed
>> boot, who wants the acpidump?
>
> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
> [    0.000000] ACPI: Error parsing LAPIC address override entry
> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>
> Seems the MADT revision is not right, could you dump the ACPI MADT
> (APIC) table and send it out? I will take a look :)
>
> Thanks
> Hanjun

Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.

[-- Attachment #2: apic.dat --]
[-- Type: application/x-ns-proxy-autoconfig, Size: 188 bytes --]

[-- Attachment #3: apic.dsl --]
[-- Type: text/x-dsl, Size: 8720 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20150717-64
 * Copyright (c) 2000 - 2015 Intel Corporation
 * 
 * Disassembly of apic.dat, Sun Oct 11 20:55:40 2015
 *
 * ACPI Data Table [APIC]
 *
 * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
 */

[000h 0000   4]                    Signature : "APIC"    [Multiple APIC Description Table (MADT)]
[004h 0004   4]                 Table Length : 000000BC
[008h 0008   1]                     Revision : 01
[009h 0009   1]                     Checksum : FA
[00Ah 0010   6]                       Oem ID : "LENOVO"
[010h 0016   8]                 Oem Table ID : "TP-6N   "
[018h 0024   4]                 Oem Revision : 00001450
[01Ch 0028   4]              Asl Compiler ID : "LNVO"
[020h 0032   4]        Asl Compiler Revision : 00000001

[024h 0036   4]           Local Apic Address : FEE00000
[028h 0040   4]        Flags (decoded below) : 00000001
                         PC-AT Compatibility : 1

[02Ch 0044   1]                Subtable Type : 00 [Processor Local APIC]
[02Dh 0045   1]                       Length : 08
[02Eh 0046   1]                 Processor ID : 00
[02Fh 0047   1]                Local Apic ID : 00
[030h 0048   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[034h 0052   1]                Subtable Type : 00 [Processor Local APIC]
[035h 0053   1]                       Length : 08
[036h 0054   1]                 Processor ID : 01
[037h 0055   1]                Local Apic ID : 01
[038h 0056   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[03Ch 0060   1]                Subtable Type : 00 [Processor Local APIC]
[03Dh 0061   1]                       Length : 08
[03Eh 0062   1]                 Processor ID : 02
[03Fh 0063   1]                Local Apic ID : 02
[040h 0064   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[044h 0068   1]                Subtable Type : 00 [Processor Local APIC]
[045h 0069   1]                       Length : 08
[046h 0070   1]                 Processor ID : 03
[047h 0071   1]                Local Apic ID : 03
[048h 0072   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[04Ch 0076   1]                Subtable Type : 00 [Processor Local APIC]
[04Dh 0077   1]                       Length : 08
[04Eh 0078   1]                 Processor ID : 04
[04Fh 0079   1]                Local Apic ID : 04
[050h 0080   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[054h 0084   1]                Subtable Type : 00 [Processor Local APIC]
[055h 0085   1]                       Length : 08
[056h 0086   1]                 Processor ID : 05
[057h 0087   1]                Local Apic ID : 05
[058h 0088   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[05Ch 0092   1]                Subtable Type : 00 [Processor Local APIC]
[05Dh 0093   1]                       Length : 08
[05Eh 0094   1]                 Processor ID : 06
[05Fh 0095   1]                Local Apic ID : 06
[060h 0096   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[064h 0100   1]                Subtable Type : 00 [Processor Local APIC]
[065h 0101   1]                       Length : 08
[066h 0102   1]                 Processor ID : 07
[067h 0103   1]                Local Apic ID : 07
[068h 0104   4]        Flags (decoded below) : 00000001
                           Processor Enabled : 1

[06Ch 0108   1]                Subtable Type : 01 [I/O APIC]
[06Dh 0109   1]                       Length : 0C
[06Eh 0110   1]                  I/O Apic ID : 01
[06Fh 0111   1]                     Reserved : 00
[070h 0112   4]                      Address : FEC00000
[074h 0116   4]                    Interrupt : 00000000

[078h 0120   1]                Subtable Type : 02 [Interrupt Source Override]
[079h 0121   1]                       Length : 0A
[07Ah 0122   1]                          Bus : 00
[07Bh 0123   1]                       Source : 00
[07Ch 0124   4]                    Interrupt : 00000002
[080h 0128   2]        Flags (decoded below) : 0000
                                    Polarity : 0
                                Trigger Mode : 0

[082h 0130   1]                Subtable Type : 02 [Interrupt Source Override]
[083h 0131   1]                       Length : 0A
[084h 0132   1]                          Bus : 00
[085h 0133   1]                       Source : 09
[086h 0134   4]                    Interrupt : 00000009
[08Ah 0138   2]        Flags (decoded below) : 000D
                                    Polarity : 1
                                Trigger Mode : 3

[08Ch 0140   1]                Subtable Type : 04 [Local APIC NMI]
[08Dh 0141   1]                       Length : 06
[08Eh 0142   1]                 Processor ID : 00
[08Fh 0143   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[091h 0145   1]         Interrupt Input LINT : 01

[092h 0146   1]                Subtable Type : 04 [Local APIC NMI]
[093h 0147   1]                       Length : 06
[094h 0148   1]                 Processor ID : 01
[095h 0149   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[097h 0151   1]         Interrupt Input LINT : 01

[098h 0152   1]                Subtable Type : 04 [Local APIC NMI]
[099h 0153   1]                       Length : 06
[09Ah 0154   1]                 Processor ID : 02
[09Bh 0155   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[09Dh 0157   1]         Interrupt Input LINT : 01

[09Eh 0158   1]                Subtable Type : 04 [Local APIC NMI]
[09Fh 0159   1]                       Length : 06
[0A0h 0160   1]                 Processor ID : 03
[0A1h 0161   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[0A3h 0163   1]         Interrupt Input LINT : 01

[0A4h 0164   1]                Subtable Type : 04 [Local APIC NMI]
[0A5h 0165   1]                       Length : 06
[0A6h 0166   1]                 Processor ID : 04
[0A7h 0167   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[0A9h 0169   1]         Interrupt Input LINT : 01

[0AAh 0170   1]                Subtable Type : 04 [Local APIC NMI]
[0ABh 0171   1]                       Length : 06
[0ACh 0172   1]                 Processor ID : 05
[0ADh 0173   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[0AFh 0175   1]         Interrupt Input LINT : 01

[0B0h 0176   1]                Subtable Type : 04 [Local APIC NMI]
[0B1h 0177   1]                       Length : 06
[0B2h 0178   1]                 Processor ID : 06
[0B3h 0179   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[0B5h 0181   1]         Interrupt Input LINT : 01

[0B6h 0182   1]                Subtable Type : 04 [Local APIC NMI]
[0B7h 0183   1]                       Length : 06
[0B8h 0184   1]                 Processor ID : 07
[0B9h 0185   2]        Flags (decoded below) : 0005
                                    Polarity : 1
                                Trigger Mode : 1
[0BBh 0187   1]         Interrupt Input LINT : 01

Raw Table Data: Length 188 (0xBC)

  0000: 41 50 49 43 BC 00 00 00 01 FA 4C 45 4E 4F 56 4F  // APIC......LENOVO
  0010: 54 50 2D 36 4E 20 20 20 50 14 00 00 4C 4E 56 4F  // TP-6N   P...LNVO
  0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00  // ................
  0030: 01 00 00 00 00 08 01 01 01 00 00 00 00 08 02 02  // ................
  0040: 01 00 00 00 00 08 03 03 01 00 00 00 00 08 04 04  // ................
  0050: 01 00 00 00 00 08 05 05 01 00 00 00 00 08 06 06  // ................
  0060: 01 00 00 00 00 08 07 07 01 00 00 00 01 0C 01 00  // ................
  0070: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00  // ................
  0080: 00 00 02 0A 00 09 09 00 00 00 0D 00 04 06 00 05  // ................
  0090: 00 01 04 06 01 05 00 01 04 06 02 05 00 01 04 06  // ................
  00A0: 03 05 00 01 04 06 04 05 00 01 04 06 05 05 00 01  // ................
  00B0: 04 06 06 05 00 01 04 06 07 05 00 01              // ............

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  3:58             ` Pat Erley
@ 2015-10-12  7:04               ` Hanjun Guo
  2015-10-12  9:44                 ` Sudeep Holla
  2015-10-12 19:21                 ` Rafael J. Wysocki
  2015-10-12 20:52               ` Al Stone
  1 sibling, 2 replies; 26+ messages in thread
From: Hanjun Guo @ 2015-10-12  7:04 UTC (permalink / raw)
  To: Pat Erley, Al Stone, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, patches, linux-pm, linux-kernel,
	linaro-acpi, linux-acpi, Hanjun Guo, linux-arm-kernel

On 10/12/2015 11:58 AM, Pat Erley wrote:
> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>> branch.
>>>>>>>>
>>>>>>
>>>>>> [snip...]
>>>>>>
>>>>>>>
>>>>>>> For this patch set,
>>>>>>>
>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>
>>>>>>> Thanks
>>>>>>> Hanjun
>>>>>>
>>>>>> Thanks, Hanjun!
>>>>>
>>>>> Series applied, thanks!
>>>>>
>>>>> Rafael
>>>>>
>>>>
>>>> Thanks, Rafael!
>>>>
>>>
>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>> This change set prevents my Lenovo W510 from booting properly.
>>>
>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>> eventually replace the macro"
>>>
>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>> boot, who wants the acpidump?
>>
>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>
>> Seems the MADT revision is not right, could you dump the ACPI MADT
>> (APIC) table and send it out? I will take a look :)
>>
>> Thanks
>> Hanjun
>
> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.

Thanks! I think I had the right guess, the MADT revision is not right
for ACPI 4.0:

[000h 0000   4]                    Signature : "APIC"    [Multiple APIC 
Description Table (MADT)]
[004h 0004   4]                 Table Length : 000000BC
[008h 0008   1]                     *Revision : 01*

I encountered such problem before because the table was just copied from
previous version, and without the update for table revision.

I think we may need to ignore the table revision for x86, but restrict
it for ARM64, I'd like Al and Rafael's suggestion before I send out a
patch.

Thanks
Hanjun


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  7:04               ` Hanjun Guo
@ 2015-10-12  9:44                 ` Sudeep Holla
  2015-10-12 13:04                   ` Hanjun Guo
  2015-10-12 19:25                   ` Rafael J. Wysocki
  2015-10-12 19:21                 ` Rafael J. Wysocki
  1 sibling, 2 replies; 26+ messages in thread
From: Sudeep Holla @ 2015-10-12  9:44 UTC (permalink / raw)
  To: Hanjun Guo, Pat Erley, Al Stone, Rafael J. Wysocki
  Cc: Sudeep Holla, linaro-kernel, linux-ia64, patches, linux-pm,
	linux-kernel, linaro-acpi, linux-acpi, Hanjun Guo,
	linux-arm-kernel



On 12/10/15 08:04, Hanjun Guo wrote:
> On 10/12/2015 11:58 AM, Pat Erley wrote:
>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>> branch.
>>>>>>>>>
>>>>>>>
>>>>>>> [snip...]
>>>>>>>
>>>>>>>>
>>>>>>>> For this patch set,
>>>>>>>>
>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Hanjun
>>>>>>>
>>>>>>> Thanks, Hanjun!
>>>>>>
>>>>>> Series applied, thanks!
>>>>>>
>>>>>> Rafael
>>>>>>
>>>>>
>>>>> Thanks, Rafael!
>>>>>
>>>>
>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>
>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>> eventually replace the macro"
>>>>
>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>> boot, who wants the acpidump?
>>>
>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>
>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>> (APIC) table and send it out? I will take a look :)
>>>
>>> Thanks
>>> Hanjun
>>
>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>
> Thanks! I think I had the right guess, the MADT revision is not right
> for ACPI 4.0:
>
> [000h 0000   4]                    Signature : "APIC"    [Multiple APIC
> Description Table (MADT)]
> [004h 0004   4]                 Table Length : 000000BC
> [008h 0008   1]                     *Revision : 01*
>
> I encountered such problem before because the table was just copied from
> previous version, and without the update for table revision.
>
> I think we may need to ignore the table revision for x86, but restrict
> it for ARM64, I'd like Al and Rafael's suggestion before I send out a
> patch.
>

Instead of just removing the check completely on x86, IMO restrict it to
some newer/later version of ACPI so you can still force vendors to fix
their ACPI tables at-least in future.

It would be good to get such sanity check in the tools used to build
those tables, but yes since such static tables can be built in many
ways, its difficult to deal it in all those tools.

-- 
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  9:44                 ` Sudeep Holla
@ 2015-10-12 13:04                   ` Hanjun Guo
  2015-10-12 19:25                   ` Rafael J. Wysocki
  1 sibling, 0 replies; 26+ messages in thread
From: Hanjun Guo @ 2015-10-12 13:04 UTC (permalink / raw)
  To: Sudeep Holla, Pat Erley, Al Stone, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, patches, linux-pm, linux-kernel,
	linaro-acpi, linux-acpi, Hanjun Guo, linux-arm-kernel

On 10/12/2015 05:44 PM, Sudeep Holla wrote:
>
>
> On 12/10/15 08:04, Hanjun Guo wrote:
>> On 10/12/2015 11:58 AM, Pat Erley wrote:
>>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>>> branch.
>>>>>>>>>>
>>>>>>>>
>>>>>>>> [snip...]
>>>>>>>>
>>>>>>>>>
>>>>>>>>> For this patch set,
>>>>>>>>>
>>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Hanjun
>>>>>>>>
>>>>>>>> Thanks, Hanjun!
>>>>>>>
>>>>>>> Series applied, thanks!
>>>>>>>
>>>>>>> Rafael
>>>>>>>
>>>>>>
>>>>>> Thanks, Rafael!
>>>>>>
>>>>>
>>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>>
>>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>>> eventually replace the macro"
>>>>>
>>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>>> boot, who wants the acpidump?
>>>>
>>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>>
>>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>>> (APIC) table and send it out? I will take a look :)
>>>>
>>>> Thanks
>>>> Hanjun
>>>
>>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>>
>> Thanks! I think I had the right guess, the MADT revision is not right
>> for ACPI 4.0:
>>
>> [000h 0000   4]                    Signature : "APIC"    [Multiple APIC
>> Description Table (MADT)]
>> [004h 0004   4]                 Table Length : 000000BC
>> [008h 0008   1]                     *Revision : 01*
>>
>> I encountered such problem before because the table was just copied from
>> previous version, and without the update for table revision.
>>
>> I think we may need to ignore the table revision for x86, but restrict
>> it for ARM64, I'd like Al and Rafael's suggestion before I send out a
>> patch.
>>
>
> Instead of just removing the check completely on x86, IMO restrict it to
> some newer/later version of ACPI so you can still force vendors to fix
> their ACPI tables at-least in future.

I agree.

>
> It would be good to get such sanity check in the tools used to build
> those tables, but yes since such static tables can be built in many
> ways, its difficult to deal it in all those tools.

At least we can check that in the FWTS. :)

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12 19:25                   ` Rafael J. Wysocki
@ 2015-10-12 19:07                     ` Al Stone
  2015-10-13  8:43                     ` Sudeep Holla
  1 sibling, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-10-12 19:07 UTC (permalink / raw)
  To: Rafael J. Wysocki, Sudeep Holla
  Cc: Hanjun Guo, Pat Erley, linaro-kernel, linux-ia64, patches,
	linux-pm, linux-kernel, linaro-acpi, linux-acpi, Hanjun Guo,
	linux-arm-kernel

On 10/12/2015 01:25 PM, Rafael J. Wysocki wrote:
> On Monday, October 12, 2015 10:44:52 AM Sudeep Holla wrote:
>>
>> On 12/10/15 08:04, Hanjun Guo wrote:
>>> On 10/12/2015 11:58 AM, Pat Erley wrote:
>>>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>>>> branch.
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> [snip...]
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> For this patch set,
>>>>>>>>>>
>>>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> Hanjun
>>>>>>>>>
>>>>>>>>> Thanks, Hanjun!
>>>>>>>>
>>>>>>>> Series applied, thanks!
>>>>>>>>
>>>>>>>> Rafael
>>>>>>>>
>>>>>>>
>>>>>>> Thanks, Rafael!
>>>>>>>
>>>>>>
>>>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>>>
>>>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>>>> eventually replace the macro"
>>>>>>
>>>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>>>> boot, who wants the acpidump?

Thanks for sending this!

>>>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>>>
>>>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>>>> (APIC) table and send it out? I will take a look :)
>>>>>
>>>>> Thanks
>>>>> Hanjun
>>>>
>>>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>>>
>>> Thanks! I think I had the right guess, the MADT revision is not right
>>> for ACPI 4.0:
>>>
>>> [000h 0000   4]                    Signature : "APIC"    [Multiple APIC
>>> Description Table (MADT)]
>>> [004h 0004   4]                 Table Length : 000000BC
>>> [008h 0008   1]                     *Revision : 01*
>>>
>>> I encountered such problem before because the table was just copied from
>>> previous version, and without the update for table revision.
>>>
>>> I think we may need to ignore the table revision for x86, but restrict
>>> it for ARM64, I'd like Al and Rafael's suggestion before I send out a
>>> patch.
>>>
>>
>> Instead of just removing the check completely on x86, IMO restrict it to
>> some newer/later version of ACPI so you can still force vendors to fix
>> their ACPI tables at-least in future.
> 
> No, we can't force vendors to fix their ACPI tables.  This is completely
> unrealistic.
> 
> We simly need to deal with the bugs in the ACPI tables in the kernel.

Unfortunately true.  I've had a couple of reports to look at and think
through apart from this; it's really quite fascinating how much stuff
a slightly stricter table check is turning up.  A little surprising,
too, but fascinating.  A fix is in progress, still needs some testing...

>> It would be good to get such sanity check in the tools used to build
>> those tables, but yes since such static tables can be built in many
>> ways, its difficult to deal it in all those tools.
> 
> As I said to Al, we need those checks in firmware test suites.  Having
> them in the kernel is OK too, but they should cause warnings to be printed
> to the kernel log instead of causing the kernel to panic.
> 
> Thanks,
> Rafael
> 

Yup.  Agreed.  For x86, we can't induce kernel panics.  Since arm64 is new to
the game, we'll be stricter since we can afford to be for now.

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3@redhat.com
-----------------------------------

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  7:04               ` Hanjun Guo
  2015-10-12  9:44                 ` Sudeep Holla
@ 2015-10-12 19:21                 ` Rafael J. Wysocki
  2015-10-13  1:23                   ` Hanjun Guo
  1 sibling, 1 reply; 26+ messages in thread
From: Rafael J. Wysocki @ 2015-10-12 19:21 UTC (permalink / raw)
  To: Hanjun Guo
  Cc: Pat Erley, Al Stone, linaro-kernel, linux-ia64, patches,
	linux-pm, linux-kernel, linaro-acpi, linux-acpi, Hanjun Guo,
	linux-arm-kernel

On Monday, October 12, 2015 03:04:30 PM Hanjun Guo wrote:
> On 10/12/2015 11:58 AM, Pat Erley wrote:
> > On 10/11/2015 08:49 PM, Hanjun Guo wrote:
> >> On 10/12/2015 11:08 AM, Pat Erley wrote:
> >>> On 10/05/2015 10:12 AM, Al Stone wrote:
> >>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
> >>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
> >>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
> >>>>>>> On 2015/9/30 7:45, Al Stone wrote:
> >>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
> >>>>>>>> branch.
> >>>>>>>>
> >>>>>>
> >>>>>> [snip...]
> >>>>>>
> >>>>>>>
> >>>>>>> For this patch set,
> >>>>>>>
> >>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>> Hanjun
> >>>>>>
> >>>>>> Thanks, Hanjun!
> >>>>>
> >>>>> Series applied, thanks!
> >>>>>
> >>>>> Rafael
> >>>>>
> >>>>
> >>>> Thanks, Rafael!
> >>>>
> >>>
> >>> Just decided to test out linux-next (to see the new nouveau cleanups).
> >>> This change set prevents my Lenovo W510 from booting properly.
> >>>
> >>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
> >>> eventually replace the macro"
> >>>
> >>> Gets the system booting again.  I'm attaching my dmesg from the failed
> >>> boot, who wants the acpidump?
> >>
> >> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
> >> [    0.000000] ACPI: Error parsing LAPIC address override entry
> >> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
> >>
> >> Seems the MADT revision is not right, could you dump the ACPI MADT
> >> (APIC) table and send it out? I will take a look :)
> >>
> >> Thanks
> >> Hanjun
> >
> > Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
> 
> Thanks! I think I had the right guess, the MADT revision is not right
> for ACPI 4.0:
> 
> [000h 0000   4]                    Signature : "APIC"    [Multiple APIC 
> Description Table (MADT)]
> [004h 0004   4]                 Table Length : 000000BC
> [008h 0008   1]                     *Revision : 01*
> 
> I encountered such problem before because the table was just copied from
> previous version, and without the update for table revision.
> 
> I think we may need to ignore the table revision for x86, but restrict
> it for ARM64, I'd like Al and Rafael's suggestion before I send out a
> patch.

As I said before to Al, we definitely can't break systems that worked before
the commit in question.

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  9:44                 ` Sudeep Holla
  2015-10-12 13:04                   ` Hanjun Guo
@ 2015-10-12 19:25                   ` Rafael J. Wysocki
  2015-10-12 19:07                     ` Al Stone
  2015-10-13  8:43                     ` Sudeep Holla
  1 sibling, 2 replies; 26+ messages in thread
From: Rafael J. Wysocki @ 2015-10-12 19:25 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: Hanjun Guo, Pat Erley, Al Stone, linaro-kernel, linux-ia64,
	patches, linux-pm, linux-kernel, linaro-acpi, linux-acpi,
	Hanjun Guo, linux-arm-kernel

On Monday, October 12, 2015 10:44:52 AM Sudeep Holla wrote:
> 
> On 12/10/15 08:04, Hanjun Guo wrote:
> > On 10/12/2015 11:58 AM, Pat Erley wrote:
> >> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
> >>> On 10/12/2015 11:08 AM, Pat Erley wrote:
> >>>> On 10/05/2015 10:12 AM, Al Stone wrote:
> >>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
> >>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
> >>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
> >>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
> >>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
> >>>>>>>>> branch.
> >>>>>>>>>
> >>>>>>>
> >>>>>>> [snip...]
> >>>>>>>
> >>>>>>>>
> >>>>>>>> For this patch set,
> >>>>>>>>
> >>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
> >>>>>>>>
> >>>>>>>> Thanks
> >>>>>>>> Hanjun
> >>>>>>>
> >>>>>>> Thanks, Hanjun!
> >>>>>>
> >>>>>> Series applied, thanks!
> >>>>>>
> >>>>>> Rafael
> >>>>>>
> >>>>>
> >>>>> Thanks, Rafael!
> >>>>>
> >>>>
> >>>> Just decided to test out linux-next (to see the new nouveau cleanups).
> >>>> This change set prevents my Lenovo W510 from booting properly.
> >>>>
> >>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
> >>>> eventually replace the macro"
> >>>>
> >>>> Gets the system booting again.  I'm attaching my dmesg from the failed
> >>>> boot, who wants the acpidump?
> >>>
> >>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
> >>> [    0.000000] ACPI: Error parsing LAPIC address override entry
> >>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
> >>>
> >>> Seems the MADT revision is not right, could you dump the ACPI MADT
> >>> (APIC) table and send it out? I will take a look :)
> >>>
> >>> Thanks
> >>> Hanjun
> >>
> >> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
> >
> > Thanks! I think I had the right guess, the MADT revision is not right
> > for ACPI 4.0:
> >
> > [000h 0000   4]                    Signature : "APIC"    [Multiple APIC
> > Description Table (MADT)]
> > [004h 0004   4]                 Table Length : 000000BC
> > [008h 0008   1]                     *Revision : 01*
> >
> > I encountered such problem before because the table was just copied from
> > previous version, and without the update for table revision.
> >
> > I think we may need to ignore the table revision for x86, but restrict
> > it for ARM64, I'd like Al and Rafael's suggestion before I send out a
> > patch.
> >
> 
> Instead of just removing the check completely on x86, IMO restrict it to
> some newer/later version of ACPI so you can still force vendors to fix
> their ACPI tables at-least in future.

No, we can't force vendors to fix their ACPI tables.  This is completely
unrealistic.

We simly need to deal with the bugs in the ACPI tables in the kernel.

> It would be good to get such sanity check in the tools used to build
> those tables, but yes since such static tables can be built in many
> ways, its difficult to deal it in all those tools.

As I said to Al, we need those checks in firmware test suites.  Having
them in the kernel is OK too, but they should cause warnings to be printed
to the kernel log instead of causing the kernel to panic.

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12  3:58             ` Pat Erley
  2015-10-12  7:04               ` Hanjun Guo
@ 2015-10-12 20:52               ` Al Stone
  2015-10-13  4:06                 ` Pat Erley
  1 sibling, 1 reply; 26+ messages in thread
From: Al Stone @ 2015-10-12 20:52 UTC (permalink / raw)
  To: Pat Erley, Hanjun Guo, Al Stone, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, linaro-acpi, linux-pm, linux-kernel,
	linux-acpi, patches, Hanjun Guo, linux-arm-kernel

On 10/11/2015 09:58 PM, Pat Erley wrote:
> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>> branch.
>>>>>>>>
>>>>>>
>>>>>> [snip...]
>>>>>>
>>>>>>>
>>>>>>> For this patch set,
>>>>>>>
>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>
>>>>>>> Thanks
>>>>>>> Hanjun
>>>>>>
>>>>>> Thanks, Hanjun!
>>>>>
>>>>> Series applied, thanks!
>>>>>
>>>>> Rafael
>>>>>
>>>>
>>>> Thanks, Rafael!
>>>>
>>>
>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>> This change set prevents my Lenovo W510 from booting properly.
>>>
>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>> eventually replace the macro"
>>>
>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>> boot, who wants the acpidump?
>>
>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>
>> Seems the MADT revision is not right, could you dump the ACPI MADT
>> (APIC) table and send it out? I will take a look :)
>>
>> Thanks
>> Hanjun
> 
> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.

Pat,

Would you mind sending a copy of the FADT, also, please?  The first of the
ACPI messages is a check of version correspondence between the FADT and MADT,
while the second message is from looking at just an MADT subtable.  Thanks
for sending the MADT out -- that helps me quite a lot in thinking this through.

BTW, whoever is providing the BIOS (Lenovo, I assume) may want to have a look
at these, also:

[    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in
FADT/Pm1aControlBlock: 16/32 (20150818/tbfadt-623)
[    0.000000] ACPI BIOS Warning (bug): Invalid length for
FADT/Pm1aControlBlock: 32, using default 16 (20150818/tbfadt-704)

Not inherently dangerous, but definitely sloppy and mind-numbingly easy to
avoid, IIRC.

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Linaro Enterprise Group
al.stone@linaro.org
-----------------------------------

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12 19:21                 ` Rafael J. Wysocki
@ 2015-10-13  1:23                   ` Hanjun Guo
  0 siblings, 0 replies; 26+ messages in thread
From: Hanjun Guo @ 2015-10-13  1:23 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Pat Erley, Al Stone, linaro-kernel, linux-ia64, patches,
	linux-pm, linux-kernel, linaro-acpi, linux-acpi, Hanjun Guo,
	linux-arm-kernel

On 10/13/2015 03:21 AM, Rafael J. Wysocki wrote:
> On Monday, October 12, 2015 03:04:30 PM Hanjun Guo wrote:
>> On 10/12/2015 11:58 AM, Pat Erley wrote:
>>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>>> branch.
>>>>>>>>>>
>>>>>>>>
>>>>>>>> [snip...]
>>>>>>>>
>>>>>>>>>
>>>>>>>>> For this patch set,
>>>>>>>>>
>>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Hanjun
>>>>>>>>
>>>>>>>> Thanks, Hanjun!
>>>>>>>
>>>>>>> Series applied, thanks!
>>>>>>>
>>>>>>> Rafael
>>>>>>>
>>>>>>
>>>>>> Thanks, Rafael!
>>>>>>
>>>>>
>>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>>
>>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>>> eventually replace the macro"
>>>>>
>>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>>> boot, who wants the acpidump?
>>>>
>>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>>
>>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>>> (APIC) table and send it out? I will take a look :)
>>>>
>>>> Thanks
>>>> Hanjun
>>>
>>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>>
>> Thanks! I think I had the right guess, the MADT revision is not right
>> for ACPI 4.0:
>>
>> [000h 0000   4]                    Signature : "APIC"    [Multiple APIC
>> Description Table (MADT)]
>> [004h 0004   4]                 Table Length : 000000BC
>> [008h 0008   1]                     *Revision : 01*
>>
>> I encountered such problem before because the table was just copied from
>> previous version, and without the update for table revision.
>>
>> I think we may need to ignore the table revision for x86, but restrict
>> it for ARM64, I'd like Al and Rafael's suggestion before I send out a
>> patch.
>
> As I said before to Al, we definitely can't break systems that worked before
> the commit in question.

Sure :)

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12 20:52               ` Al Stone
@ 2015-10-13  4:06                 ` Pat Erley
  2015-10-14 20:20                   ` Al Stone
  0 siblings, 1 reply; 26+ messages in thread
From: Pat Erley @ 2015-10-13  4:06 UTC (permalink / raw)
  To: Al Stone, Hanjun Guo, Al Stone, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, linaro-acpi, linux-pm, linux-kernel,
	linux-acpi, patches, Hanjun Guo, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 2450 bytes --]

On 10/12/2015 01:52 PM, Al Stone wrote:
> On 10/11/2015 09:58 PM, Pat Erley wrote:
>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>> branch.
>>>>>>>>>
>>>>>>>
>>>>>>> [snip...]
>>>>>>>
>>>>>>>>
>>>>>>>> For this patch set,
>>>>>>>>
>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Hanjun
>>>>>>>
>>>>>>> Thanks, Hanjun!
>>>>>>
>>>>>> Series applied, thanks!
>>>>>>
>>>>>> Rafael
>>>>>>
>>>>>
>>>>> Thanks, Rafael!
>>>>>
>>>>
>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>
>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>> eventually replace the macro"
>>>>
>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>> boot, who wants the acpidump?
>>>
>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>
>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>> (APIC) table and send it out? I will take a look :)
>>>
>>> Thanks
>>> Hanjun
>>
>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>
> Pat,
>
> Would you mind sending a copy of the FADT, also, please?  The first of the
> ACPI messages is a check of version correspondence between the FADT and MADT,
> while the second message is from looking at just an MADT subtable.  Thanks
> for sending the MADT out -- that helps me quite a lot in thinking this through.
>
> BTW, whoever is providing the BIOS (Lenovo, I assume) may want to have a look
> at these, also:
>
> [    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in
> FADT/Pm1aControlBlock: 16/32 (20150818/tbfadt-623)
> [    0.000000] ACPI BIOS Warning (bug): Invalid length for
> FADT/Pm1aControlBlock: 32, using default 16 (20150818/tbfadt-704)
>
> Not inherently dangerous, but definitely sloppy and mind-numbingly easy to
> avoid, IIRC.
>

Here ya go.

[-- Attachment #2: facp.dsl --]
[-- Type: text/x-dsl, Size: 9173 bytes --]

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20150717-64
 * Copyright (c) 2000 - 2015 Intel Corporation
 * 
 * Disassembly of facp.dat, Mon Oct 12 21:06:03 2015
 *
 * ACPI Data Table [FACP]
 *
 * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
 */

[000h 0000   4]                    Signature : "FACP"    [Fixed ACPI Description Table (FADT)]
[004h 0004   4]                 Table Length : 000000F4
[008h 0008   1]                     Revision : 04
[009h 0009   1]                     Checksum : 59
[00Ah 0010   6]                       Oem ID : "LENOVO"
[010h 0016   8]                 Oem Table ID : "TP-6N   "
[018h 0024   4]                 Oem Revision : 00001450
[01Ch 0028   4]              Asl Compiler ID : "LNVO"
[020h 0032   4]        Asl Compiler Revision : 00000001

[024h 0036   4]                 FACS Address : BBEE7000
[028h 0040   4]                 DSDT Address : BBFF1C9B
[02Ch 0044   1]                        Model : 00
[02Dh 0045   1]                   PM Profile : 02 [Mobile]
[02Eh 0046   2]                SCI Interrupt : 0009
[030h 0048   4]             SMI Command Port : 000000B2
[034h 0052   1]            ACPI Enable Value : F0
[035h 0053   1]           ACPI Disable Value : F1
[036h 0054   1]               S4BIOS Command : 00
[037h 0055   1]              P-State Control : 80
[038h 0056   4]     PM1A Event Block Address : 00001000
[03Ch 0060   4]     PM1B Event Block Address : 00000000
[040h 0064   4]   PM1A Control Block Address : 00001004
[044h 0068   4]   PM1B Control Block Address : 00000000
[048h 0072   4]    PM2 Control Block Address : 00001050
[04Ch 0076   4]       PM Timer Block Address : 00001008
[050h 0080   4]           GPE0 Block Address : 00001020
[054h 0084   4]           GPE1 Block Address : 00000000
[058h 0088   1]       PM1 Event Block Length : 04
[059h 0089   1]     PM1 Control Block Length : 02
[05Ah 0090   1]     PM2 Control Block Length : 01
[05Bh 0091   1]        PM Timer Block Length : 04
[05Ch 0092   1]            GPE0 Block Length : 10
[05Dh 0093   1]            GPE1 Block Length : 00
[05Eh 0094   1]             GPE1 Base Offset : 00
[05Fh 0095   1]                 _CST Support : 85
[060h 0096   2]                   C2 Latency : 0001
[062h 0098   2]                   C3 Latency : 0039
[064h 0100   2]               CPU Cache Size : 0000
[066h 0102   2]           Cache Flush Stride : 0000
[068h 0104   1]            Duty Cycle Offset : 01
[069h 0105   1]             Duty Cycle Width : 03
[06Ah 0106   1]          RTC Day Alarm Index : 0D
[06Bh 0107   1]        RTC Month Alarm Index : 00
[06Ch 0108   1]            RTC Century Index : 32
[06Dh 0109   2]   Boot Flags (decoded below) : 0012
               Legacy Devices Supported (V2) : 0
            8042 Present on ports 60/64 (V2) : 1
                        VGA Not Present (V4) : 0
                      MSI Not Supported (V4) : 0
                PCIe ASPM Not Supported (V4) : 1
                   CMOS RTC Not Present (V5) : 0
[06Fh 0111   1]                     Reserved : 00
[070h 0112   4]        Flags (decoded below) : 0000C2AD
      WBINVD instruction is operational (V1) : 1
              WBINVD flushes all caches (V1) : 0
                    All CPUs support C1 (V1) : 1
                  C2 works on MP system (V1) : 1
            Control Method Power Button (V1) : 0
            Control Method Sleep Button (V1) : 1
        RTC wake not in fixed reg space (V1) : 0
            RTC can wake system from S4 (V1) : 1
                        32-bit PM Timer (V1) : 0
                      Docking Supported (V1) : 1
               Reset Register Supported (V2) : 0
                            Sealed Case (V3) : 0
                    Headless - No Video (V3) : 0
        Use native instr after SLP_TYPx (V3) : 0
              PCIEXP_WAK Bits Supported (V4) : 1
                     Use Platform Timer (V4) : 1
               RTC_STS valid on S4 wake (V4) : 0
                Remote Power-on capable (V4) : 0
                 Use APIC Cluster Model (V4) : 0
     Use APIC Physical Destination Mode (V4) : 0
                       Hardware Reduced (V5) : 0
                      Low Power S0 Idle (V5) : 0

[074h 0116  12]               Reset Register : [Generic Address Structure]
[074h 0116   1]                     Space ID : 01 [SystemIO]
[075h 0117   1]                    Bit Width : 08
[076h 0118   1]                   Bit Offset : 00
[077h 0119   1]         Encoded Access Width : 00 [Undefined/Legacy]
[078h 0120   8]                      Address : 0000000000000CF9

[080h 0128   1]         Value to cause reset : 06
[081h 0129   2]    ARM Flags (decoded below) : 0000
                              PSCI Compliant : 0
                       Must use HVC for PSCI : 0

[083h 0131   1]          FADT Minor Revision : 00
[084h 0132   8]                 FACS Address : 00000000BBEE7000
[08Ch 0140   8]                 DSDT Address : 00000000BBFF1C9B
[094h 0148  12]             PM1A Event Block : [Generic Address Structure]
[094h 0148   1]                     Space ID : 01 [SystemIO]
[095h 0149   1]                    Bit Width : 20
[096h 0150   1]                   Bit Offset : 00
[097h 0151   1]         Encoded Access Width : 00 [Undefined/Legacy]
[098h 0152   8]                      Address : 0000000000001000

[0A0h 0160  12]             PM1B Event Block : [Generic Address Structure]
[0A0h 0160   1]                     Space ID : 00 [SystemMemory]
[0A1h 0161   1]                    Bit Width : 00
[0A2h 0162   1]                   Bit Offset : 00
[0A3h 0163   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0A4h 0164   8]                      Address : 0000000000000000

[0ACh 0172  12]           PM1A Control Block : [Generic Address Structure]
[0ACh 0172   1]                     Space ID : 01 [SystemIO]
[0ADh 0173   1]                    Bit Width : 20
[0AEh 0174   1]                   Bit Offset : 00
[0AFh 0175   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0B0h 0176   8]                      Address : 0000000000001004

[0B8h 0184  12]           PM1B Control Block : [Generic Address Structure]
[0B8h 0184   1]                     Space ID : 00 [SystemMemory]
[0B9h 0185   1]                    Bit Width : 00
[0BAh 0186   1]                   Bit Offset : 00
[0BBh 0187   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0BCh 0188   8]                      Address : 0000000000000000

[0C4h 0196  12]            PM2 Control Block : [Generic Address Structure]
[0C4h 0196   1]                     Space ID : 01 [SystemIO]
[0C5h 0197   1]                    Bit Width : 08
[0C6h 0198   1]                   Bit Offset : 00
[0C7h 0199   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0C8h 0200   8]                      Address : 0000000000001050

[0D0h 0208  12]               PM Timer Block : [Generic Address Structure]
[0D0h 0208   1]                     Space ID : 01 [SystemIO]
[0D1h 0209   1]                    Bit Width : 20
[0D2h 0210   1]                   Bit Offset : 00
[0D3h 0211   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0D4h 0212   8]                      Address : 0000000000001008

[0DCh 0220  12]                   GPE0 Block : [Generic Address Structure]
[0DCh 0220   1]                     Space ID : 01 [SystemIO]
[0DDh 0221   1]                    Bit Width : 80
[0DEh 0222   1]                   Bit Offset : 00
[0DFh 0223   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0E0h 0224   8]                      Address : 0000000000001020

[0E8h 0232  12]                   GPE1 Block : [Generic Address Structure]
[0E8h 0232   1]                     Space ID : 00 [SystemMemory]
[0E9h 0233   1]                    Bit Width : 00
[0EAh 0234   1]                   Bit Offset : 00
[0EBh 0235   1]         Encoded Access Width : 00 [Undefined/Legacy]
[0ECh 0236   8]                      Address : 0000000000000000


Raw Table Data: Length 244 (0xF4)

  0000: 46 41 43 50 F4 00 00 00 04 59 4C 45 4E 4F 56 4F  // FACP.....YLENOVO
  0010: 54 50 2D 36 4E 20 20 20 50 14 00 00 4C 4E 56 4F  // TP-6N   P...LNVO
  0020: 01 00 00 00 00 70 EE BB 9B 1C FF BB 00 02 09 00  // .....p..........
  0030: B2 00 00 00 F0 F1 00 80 00 10 00 00 00 00 00 00  // ................
  0040: 04 10 00 00 00 00 00 00 50 10 00 00 08 10 00 00  // ........P.......
  0050: 20 10 00 00 00 00 00 00 04 02 01 04 10 00 00 85  //  ...............
  0060: 01 00 39 00 00 00 00 00 01 03 0D 00 32 12 00 00  // ..9.........2...
  0070: AD C2 00 00 01 08 00 00 F9 0C 00 00 00 00 00 00  // ................
  0080: 06 00 00 00 00 70 EE BB 00 00 00 00 9B 1C FF BB  // .....p..........
  0090: 00 00 00 00 01 20 00 00 00 10 00 00 00 00 00 00  // ..... ..........
  00A0: 00 00 00 00 00 00 00 00 00 00 00 00 01 20 00 00  // ............. ..
  00B0: 04 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00  // ................
  00C0: 00 00 00 00 01 08 00 00 50 10 00 00 00 00 00 00  // ........P.......
  00D0: 01 20 00 00 08 10 00 00 00 00 00 00 01 80 00 00  // . ..............
  00E0: 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //  ...............
  00F0: 00 00 00 00                                      // ....

[-- Attachment #3: facp.dat --]
[-- Type: application/x-ns-proxy-autoconfig, Size: 244 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-12 19:25                   ` Rafael J. Wysocki
  2015-10-12 19:07                     ` Al Stone
@ 2015-10-13  8:43                     ` Sudeep Holla
  1 sibling, 0 replies; 26+ messages in thread
From: Sudeep Holla @ 2015-10-13  8:43 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Sudeep Holla, Hanjun Guo, Pat Erley, Al Stone, linaro-kernel,
	linux-ia64, patches, linux-pm, linux-kernel, linaro-acpi,
	linux-acpi, Hanjun Guo, linux-arm-kernel



On 12/10/15 20:25, Rafael J. Wysocki wrote:
> On Monday, October 12, 2015 10:44:52 AM Sudeep Holla wrote:

[...]

>>
>> Instead of just removing the check completely on x86, IMO restrict
>> it to some newer/later version of ACPI so you can still force
>> vendors to fix their ACPI tables at-least in future.
>
> No, we can't force vendors to fix their ACPI tables.  This is
> completely unrealistic.
>

No, I was referring to the future platforms *only*

> We simly need to deal with the bugs in the ACPI tables in the
> kernel.
>

Yes sadly true for existing systems, but if we now place a check for
ACPIv6.0 and above, we might avoid seeing such broken tables sometime in
future once the kernel with this check in place is used for validation.

>> It would be good to get such sanity check in the tools used to
>> build those tables, but yes since such static tables can be built
>> in many ways, its difficult to deal it in all those tools.
>
> As I said to Al, we need those checks in firmware test suites.
> Having them in the kernel is OK too, but they should cause warnings
> to be printed to the kernel log instead of causing the kernel to
> panic.
>

Agreed

-- 
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-13  4:06                 ` Pat Erley
@ 2015-10-14 20:20                   ` Al Stone
  2015-10-14 21:25                     ` Rafael J. Wysocki
  0 siblings, 1 reply; 26+ messages in thread
From: Al Stone @ 2015-10-14 20:20 UTC (permalink / raw)
  To: Pat Erley, Al Stone, Hanjun Guo, Rafael J. Wysocki
  Cc: linaro-kernel, linux-ia64, linaro-acpi, linux-pm, linux-kernel,
	linux-acpi, patches, Hanjun Guo, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 3355 bytes --]

On 10/12/2015 10:06 PM, Pat Erley wrote:
> On 10/12/2015 01:52 PM, Al Stone wrote:
>> On 10/11/2015 09:58 PM, Pat Erley wrote:
>>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>>> branch.
>>>>>>>>>>
>>>>>>>>
>>>>>>>> [snip...]
>>>>>>>>
>>>>>>>>>
>>>>>>>>> For this patch set,
>>>>>>>>>
>>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Hanjun
>>>>>>>>
>>>>>>>> Thanks, Hanjun!
>>>>>>>
>>>>>>> Series applied, thanks!
>>>>>>>
>>>>>>> Rafael
>>>>>>>
>>>>>>
>>>>>> Thanks, Rafael!
>>>>>>
>>>>>
>>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>>
>>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>>> eventually replace the macro"
>>>>>
>>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>>> boot, who wants the acpidump?
>>>>
>>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>>
>>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>>> (APIC) table and send it out? I will take a look :)
>>>>
>>>> Thanks
>>>> Hanjun
>>>
>>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>>
>> Pat,
>>
>> Would you mind sending a copy of the FADT, also, please?  The first of the
>> ACPI messages is a check of version correspondence between the FADT and MADT,
>> while the second message is from looking at just an MADT subtable.  Thanks
>> for sending the MADT out -- that helps me quite a lot in thinking this through.
>>
>> BTW, whoever is providing the BIOS (Lenovo, I assume) may want to have a look
>> at these, also:
>>
>> [    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in
>> FADT/Pm1aControlBlock: 16/32 (20150818/tbfadt-623)
>> [    0.000000] ACPI BIOS Warning (bug): Invalid length for
>> FADT/Pm1aControlBlock: 32, using default 16 (20150818/tbfadt-704)
>>
>> Not inherently dangerous, but definitely sloppy and mind-numbingly easy to
>> avoid, IIRC.
>>
> 
> Here ya go.

Okay.  There's just a lot of weird stuff out there in ACPI-land.  I've
attached four minor fixes for the special cases that have been reported
(well, the last one is actually a fix for a typo in the spec, but just
the same...).

These should apply on top of linux-next; would you mind trying them out
to make sure I didn't break anything else on your laptop?  If they behave
as I hope they will, I think I'll have covered all the places where the
checking of MADT subtables needs to be be relaxed a bit.  These work for
me on arm64, but if they work for you and a couple of other testers, then
I'll send them to Rafael properly.

Many thanks!

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3@redhat.com
-----------------------------------

[-- Attachment #2: 0001-ACPI-workaround-x86-firmware-using-reserved-MADT-sub.patch --]
[-- Type: text/x-patch, Size: 1788 bytes --]

>From 52a2011c4998674d80c4456e6fd8ba11beaee65c Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3@redhat.com>
Date: Tue, 13 Oct 2015 15:29:15 -0600
Subject: [PATCH 1/4] ACPI: workaround x86 firmware using reserved MADT
 subtable IDs

According to the ACPI specification, version 6.0, table 5-46,  MADT
subtable IDs in the range of 0x10-0x7f are reserved for possible
future use by the specification.  The function bad_madt_entry() tries
to enforce the spec, but it turns out there are x86 machines that use
0x7f even though they should not.

So, continue to enforce this rule for arm64, since we're starting out
fresh, but relax it for systems already out there so we don't keep them
from booting.

Signed-off-by: Al Stone <al.stone@linaro.org>
---
 drivers/acpi/tables.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index a2ed38a..e5cfd72 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -413,9 +413,17 @@ static int __init bad_madt_entry(struct acpi_table_header *table,
 	}
 
 	if (entry->type >= ms->num_types) {
-		pr_err("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
-		       major, minor, entry->type, entry->length);
-		return 1;
+		if (IS_ENABLED(CONFIG_ARM64)) {
+			/* Enforce this stricture on arm64... */
+			pr_err("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
+			       major, minor, entry->type, entry->length);
+			return 1;
+		} else {
+			/* ... but relax it on legacy systems so they boot */
+			pr_warn("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
+			         major, minor, entry->type, entry->length);
+			return 0;
+		}
 	}
 
 	/* verify that the table is allowed for this version of the spec */
-- 
2.4.3


[-- Attachment #3: 0002-ACPI-workaround-x86-firmware-with-mis-matched-FADT-M.patch --]
[-- Type: text/x-patch, Size: 1756 bytes --]

>From 8b7e93421a1bd3a35ed6200fb778b87e9bff34c5 Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3@redhat.com>
Date: Tue, 13 Oct 2015 15:51:13 -0600
Subject: [PATCH 2/4] ACPI: workaround x86 firmware with mis-matched FADT/MADT
 revisions

Looking across multiple versions of the ACPI specification, certain
versions introduce new revision numbers for the FADT and/or MADT
tables.  So, for example, an FADT indicating it is revision 4 should
not be paired with an MADT revision of anything less than 2.

However, there are systems out there that do not update the revision
fields in the FADT and MADT tables as they should.  So, for arm64, we
can be stricter in complying with the specification, but we need to
relax the checking for legacy systems.

Signed-off-by: Al Stone <al.stone@linaro.org>
---
 drivers/acpi/tables.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index e5cfd72..3b5ddfb 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -407,9 +407,17 @@ static int __init bad_madt_entry(struct acpi_table_header *table,
 		ms++;
 	}
 	if (!ms->num_types) {
-		pr_err("undefined version for either FADT %d.%d or MADT %d\n",
-		       major, minor, madt->header.revision);
-		return 1;
+		if (IS_ENABLED(CONFIG_ARM64)) {
+			/* Enforce this stricture on arm64... */
+			pr_err("undefined version for either FADT %d.%d or MADT %d\n",
+			       major, minor, madt->header.revision);
+			return 1;
+		} else {
+			/* ... but relax it on legacy systems so they boot */
+			pr_warn("undefined version for either FADT %d.%d or MADT %d\n",
+			        major, minor, madt->header.revision);
+			return 0;
+		}
 	}
 
 	if (entry->type >= ms->num_types) {
-- 
2.4.3


[-- Attachment #4: 0003-ACPI-workaround-FADT-always-being-revision-2.patch --]
[-- Type: text/x-patch, Size: 2909 bytes --]

>From 773dd448360098b6faf6c171dd716371d603f3ef Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3@redhat.com>
Date: Tue, 13 Oct 2015 16:23:21 -0600
Subject: [PATCH 3/4] ACPI: workaround FADT always being revision 2

In some environments, the FADT revision number is always 2, independent
of any other factors indicating that it may be a newer revision.  So,
we cannot rely on the FADT and MADT revisions being in proper step.  For
those environments, relax the checking so we only enforce the size check,
even if we do issue warnings on other problems.

If we do not relax the rules, these systems will not boot as they have in
the past.

Signed-off-by: Al Stone <al.stone@linaro.org>
---
 drivers/acpi/tables.c | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 3b5ddfb..790d4b0 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -416,7 +416,6 @@ static int __init bad_madt_entry(struct acpi_table_header *table,
 			/* ... but relax it on legacy systems so they boot */
 			pr_warn("undefined version for either FADT %d.%d or MADT %d\n",
 			        major, minor, madt->header.revision);
-			return 0;
 		}
 	}
 
@@ -430,16 +429,41 @@ static int __init bad_madt_entry(struct acpi_table_header *table,
 			/* ... but relax it on legacy systems so they boot */
 			pr_warn("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
 			         major, minor, entry->type, entry->length);
-			return 0;
 		}
 	}
 
 	/* verify that the table is allowed for this version of the spec */
 	len = ms->lengths[entry->type];
 	if (!len) {
-		pr_err("MADT subtable %d not defined for FADT %d.%d\n",
-			 entry->type, major, minor);
-		return 1;
+		if (IS_ENABLED(CONFIG_ARM64)) {
+			pr_err("MADT subtable %d not defined for FADT %d.%d\n",
+			       entry->type, major, minor);
+			return 1;
+		} else {
+			pr_warn("MADT subtable %d not defined for FADT %d.%d\n",
+			        entry->type, major, minor);
+		}
+	}
+
+	/*
+	 * When we get this far, we may have issued warnings on either
+	 * a mismatch in FADT/MADT revisions, or have noted that the subtable
+	 * ID is not defined for the MADT revision we're using.  On some
+	 * architectures, this is an error, but for legacy systems, we need
+	 * to push on with other checks of the subtable.
+	 *
+	 * In fact, there are environments where the *only* value the FADT
+	 * revision will ever have is 2, regardless of anything else.  So,
+	 * for those systems to boot, we have to pretend the MADT is the
+	 * latest version to allow all known subtables since we have no way
+	 * to determine what revision it should be.
+	 */
+	if (!IS_ENABLED(CONFIG_ARM64) && major == 2) {
+		ms = spec_info;
+		while (ms->num_types != 0)
+			ms++;
+		ms--;
+		len = ms->lengths[entry->type];
 	}
 
 	/* verify that the length is what we expect */
-- 
2.4.3


[-- Attachment #5: 0004-ACPI-for-bad_madt_entry-the-GIC-ITS-table-is-20-byte.patch --]
[-- Type: text/x-patch, Size: 1627 bytes --]

>From 6d3189ccfcbac9a61e6502df70499bd2ee808509 Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3@redhat.com>
Date: Tue, 13 Oct 2015 16:31:50 -0600
Subject: [PATCH 4/4] ACPI: for bad_madt_entry(), the GIC ITS table is 20 bytes
 long, not 16

Correct a typo where bad_madt_entry() expected the MADT GIC ITS subtable
to be 16 bytes long, but it is actually 20 bytes.  This is a cut'n'paste
error picked up from the spec and inadvertently replicated in code.

Signed-off-by: Al Stone <al.stone@linaro.org>
---
 drivers/acpi/tables.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 790d4b0..1b7c13e 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -292,7 +292,7 @@ void acpi_table_print_madt_entry(struct acpi_subtable_header *header)
  * GICD                  0xc                         24    24    24
  * GICv2m MSI            0xd                               24    24
  * GICR                  0xe                               16    16
- * GIC ITS               0xf                                     16
+ * GIC ITS               0xf                                     20
  *
  * In the table, each length entry is what should be in the length
  * field of the subtable, and -- in general -- it should match the
@@ -366,7 +366,7 @@ static struct acpi_madt_subtable_lengths spec_info[] = {
 		.madt_version = 3,
 		.num_types = 16,
 		.lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
-			     16, 16, 12, 80, 24, 24, 16, 16 }
+			     16, 16, 12, 80, 24, 24, 16, 20 }
 	},
 	{ /* terminator */
 		.major_version = 0,
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-14 20:20                   ` Al Stone
@ 2015-10-14 21:25                     ` Rafael J. Wysocki
  2015-10-14 21:27                       ` Al Stone
  0 siblings, 1 reply; 26+ messages in thread
From: Rafael J. Wysocki @ 2015-10-14 21:25 UTC (permalink / raw)
  To: Al Stone
  Cc: Pat Erley, Al Stone, Hanjun Guo, linaro-kernel, linux-ia64,
	linaro-acpi, linux-pm, linux-kernel, linux-acpi, patches,
	Hanjun Guo, linux-arm-kernel

On Wednesday, October 14, 2015 02:20:51 PM Al Stone wrote:
> This is a multi-part message in MIME format.
> --------------020400080004050109020606
> Content-Type: text/plain; charset=utf-8
> Content-Transfer-Encoding: 7bit
> 
> On 10/12/2015 10:06 PM, Pat Erley wrote:
> > On 10/12/2015 01:52 PM, Al Stone wrote:
> >> On 10/11/2015 09:58 PM, Pat Erley wrote:
> >>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
> >>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
> >>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
> >>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
> >>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
> >>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
> >>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
> >>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
> >>>>>>>>>> branch.
> >>>>>>>>>>
> >>>>>>>>
> >>>>>>>> [snip...]
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>> For this patch set,
> >>>>>>>>>
> >>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
> >>>>>>>>>
> >>>>>>>>> Thanks
> >>>>>>>>> Hanjun
> >>>>>>>>
> >>>>>>>> Thanks, Hanjun!
> >>>>>>>
> >>>>>>> Series applied, thanks!
> >>>>>>>
> >>>>>>> Rafael
> >>>>>>>
> >>>>>>
> >>>>>> Thanks, Rafael!
> >>>>>>
> >>>>>
> >>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
> >>>>> This change set prevents my Lenovo W510 from booting properly.
> >>>>>
> >>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
> >>>>> eventually replace the macro"
> >>>>>
> >>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
> >>>>> boot, who wants the acpidump?
> >>>>
> >>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
> >>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
> >>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
> >>>>
> >>>> Seems the MADT revision is not right, could you dump the ACPI MADT
> >>>> (APIC) table and send it out? I will take a look :)
> >>>>
> >>>> Thanks
> >>>> Hanjun
> >>>
> >>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
> >>
> >> Pat,
> >>
> >> Would you mind sending a copy of the FADT, also, please?  The first of the
> >> ACPI messages is a check of version correspondence between the FADT and MADT,
> >> while the second message is from looking at just an MADT subtable.  Thanks
> >> for sending the MADT out -- that helps me quite a lot in thinking this through.
> >>
> >> BTW, whoever is providing the BIOS (Lenovo, I assume) may want to have a look
> >> at these, also:
> >>
> >> [    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in
> >> FADT/Pm1aControlBlock: 16/32 (20150818/tbfadt-623)
> >> [    0.000000] ACPI BIOS Warning (bug): Invalid length for
> >> FADT/Pm1aControlBlock: 32, using default 16 (20150818/tbfadt-704)
> >>
> >> Not inherently dangerous, but definitely sloppy and mind-numbingly easy to
> >> avoid, IIRC.
> >>
> > 
> > Here ya go.
> 
> Okay.  There's just a lot of weird stuff out there in ACPI-land.  I've
> attached four minor fixes for the special cases that have been reported
> (well, the last one is actually a fix for a typo in the spec, but just
> the same...).
> 
> These should apply on top of linux-next; would you mind trying them out
> to make sure I didn't break anything else on your laptop?  If they behave
> as I hope they will, I think I'll have covered all the places where the
> checking of MADT subtables needs to be be relaxed a bit.  These work for
> me on arm64, but if they work for you and a couple of other testers, then
> I'll send them to Rafael properly.

Well, you might as well submit them properly right away, so I could pick
them up and put them into my linux-next branch, which then might make it
easier for some people to test them.

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linaro-acpi] [PATCH v5 0/5] Provide better MADT subtable sanity checks
  2015-10-14 21:25                     ` Rafael J. Wysocki
@ 2015-10-14 21:27                       ` Al Stone
  0 siblings, 0 replies; 26+ messages in thread
From: Al Stone @ 2015-10-14 21:27 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Pat Erley, Al Stone, Hanjun Guo, linaro-kernel, linux-ia64,
	linaro-acpi, linux-pm, linux-kernel, linux-acpi, patches,
	Hanjun Guo, linux-arm-kernel

On 10/14/2015 03:25 PM, Rafael J. Wysocki wrote:
> On Wednesday, October 14, 2015 02:20:51 PM Al Stone wrote:
>> This is a multi-part message in MIME format.
>> --------------020400080004050109020606
>> Content-Type: text/plain; charset=utf-8
>> Content-Transfer-Encoding: 7bit
>>
>> On 10/12/2015 10:06 PM, Pat Erley wrote:
>>> On 10/12/2015 01:52 PM, Al Stone wrote:
>>>> On 10/11/2015 09:58 PM, Pat Erley wrote:
>>>>> On 10/11/2015 08:49 PM, Hanjun Guo wrote:
>>>>>> On 10/12/2015 11:08 AM, Pat Erley wrote:
>>>>>>> On 10/05/2015 10:12 AM, Al Stone wrote:
>>>>>>>> On 10/05/2015 07:39 AM, Rafael J. Wysocki wrote:
>>>>>>>>> On Wednesday, September 30, 2015 10:10:16 AM Al Stone wrote:
>>>>>>>>>> On 09/30/2015 03:00 AM, Hanjun Guo wrote:
>>>>>>>>>>> On 2015/9/30 7:45, Al Stone wrote:
>>>>>>>>>>>> NB: this patch set is for use against the linux-pm bleeding edge
>>>>>>>>>>>> branch.
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> [snip...]
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> For this patch set,
>>>>>>>>>>>
>>>>>>>>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Hanjun
>>>>>>>>>>
>>>>>>>>>> Thanks, Hanjun!
>>>>>>>>>
>>>>>>>>> Series applied, thanks!
>>>>>>>>>
>>>>>>>>> Rafael
>>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks, Rafael!
>>>>>>>>
>>>>>>>
>>>>>>> Just decided to test out linux-next (to see the new nouveau cleanups).
>>>>>>> This change set prevents my Lenovo W510 from booting properly.
>>>>>>>
>>>>>>> Reverting: 7494b0 "ACPI: add in a bad_madt_entry() function to
>>>>>>> eventually replace the macro"
>>>>>>>
>>>>>>> Gets the system booting again.  I'm attaching my dmesg from the failed
>>>>>>> boot, who wants the acpidump?
>>>>>>
>>>>>> [    0.000000] ACPI: undefined version for either FADT 4.0 or MADT 1
>>>>>> [    0.000000] ACPI: Error parsing LAPIC address override entry
>>>>>> [    0.000000] ACPI: Invalid BIOS MADT, disabling ACPI
>>>>>>
>>>>>> Seems the MADT revision is not right, could you dump the ACPI MADT
>>>>>> (APIC) table and send it out? I will take a look :)
>>>>>>
>>>>>> Thanks
>>>>>> Hanjun
>>>>>
>>>>> Here ya go, enjoy.  Feel free to CC me on any patches that might fix it.
>>>>
>>>> Pat,
>>>>
>>>> Would you mind sending a copy of the FADT, also, please?  The first of the
>>>> ACPI messages is a check of version correspondence between the FADT and MADT,
>>>> while the second message is from looking at just an MADT subtable.  Thanks
>>>> for sending the MADT out -- that helps me quite a lot in thinking this through.
>>>>
>>>> BTW, whoever is providing the BIOS (Lenovo, I assume) may want to have a look
>>>> at these, also:
>>>>
>>>> [    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in
>>>> FADT/Pm1aControlBlock: 16/32 (20150818/tbfadt-623)
>>>> [    0.000000] ACPI BIOS Warning (bug): Invalid length for
>>>> FADT/Pm1aControlBlock: 32, using default 16 (20150818/tbfadt-704)
>>>>
>>>> Not inherently dangerous, but definitely sloppy and mind-numbingly easy to
>>>> avoid, IIRC.
>>>>
>>>
>>> Here ya go.
>>
>> Okay.  There's just a lot of weird stuff out there in ACPI-land.  I've
>> attached four minor fixes for the special cases that have been reported
>> (well, the last one is actually a fix for a typo in the spec, but just
>> the same...).
>>
>> These should apply on top of linux-next; would you mind trying them out
>> to make sure I didn't break anything else on your laptop?  If they behave
>> as I hope they will, I think I'll have covered all the places where the
>> checking of MADT subtables needs to be be relaxed a bit.  These work for
>> me on arm64, but if they work for you and a couple of other testers, then
>> I'll send them to Rafael properly.
> 
> Well, you might as well submit them properly right away, so I could pick
> them up and put them into my linux-next branch, which then might make it
> easier for some people to test them.
> 
> Thanks,
> Rafael
> 

Fair enough.  I was just being overly cautious about possible further breakage.

Done.  Patch series sent to the list.

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3@redhat.com
-----------------------------------

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2015-10-14 21:27 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-29 23:45 [PATCH v5 0/5] Provide better MADT subtable sanity checks Al Stone
2015-09-29 23:45 ` [PATCH v5 1/5] ACPI: add in a bad_madt_entry() function to eventually replace the macro Al Stone
2015-09-29 23:45 ` [PATCH v5 2/5] ACPI / ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY Al Stone
2015-09-29 23:45 ` [PATCH v5 3/5] ACPI / IA64: remove usage of BAD_MADT_ENTRY Al Stone
2015-09-29 23:45 ` [PATCH v5 4/5] ACPI / X86: " Al Stone
2015-09-29 23:45 ` [PATCH v5 5/5] ACPI: remove definition of BAD_MADT_ENTRY macro Al Stone
2015-09-30  9:00 ` [PATCH v5 0/5] Provide better MADT subtable sanity checks Hanjun Guo
2015-09-30 16:10   ` Al Stone
2015-10-05 13:39     ` Rafael J. Wysocki
2015-10-05 17:12       ` Al Stone
2015-10-12  3:08         ` Pat Erley
2015-10-12  3:49           ` [Linaro-acpi] " Hanjun Guo
2015-10-12  3:58             ` Pat Erley
2015-10-12  7:04               ` Hanjun Guo
2015-10-12  9:44                 ` Sudeep Holla
2015-10-12 13:04                   ` Hanjun Guo
2015-10-12 19:25                   ` Rafael J. Wysocki
2015-10-12 19:07                     ` Al Stone
2015-10-13  8:43                     ` Sudeep Holla
2015-10-12 19:21                 ` Rafael J. Wysocki
2015-10-13  1:23                   ` Hanjun Guo
2015-10-12 20:52               ` Al Stone
2015-10-13  4:06                 ` Pat Erley
2015-10-14 20:20                   ` Al Stone
2015-10-14 21:25                     ` Rafael J. Wysocki
2015-10-14 21:27                       ` Al Stone

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).