From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756855AbbJHUJX (ORCPT ); Thu, 8 Oct 2015 16:09:23 -0400 Received: from v094114.home.net.pl ([79.96.170.134]:52193 "HELO v094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752094AbbJHUJW (ORCPT ); Thu, 8 Oct 2015 16:09:22 -0400 From: "Rafael J. Wysocki" To: Al Stone Cc: Hanjun Guo , kernel test robot , lkp@01.org, LKML , "Rafael J. Wysocki" Subject: Re: [lkp] [ACPI] 7494b07eba: Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 0 Date: Thu, 08 Oct 2015 22:37:55 +0200 Message-ID: <2153324.tm1YTXhMTh@vostro.rjw.lan> User-Agent: KMail/4.11.5 (Linux/4.1.0-rc5+; KDE/4.11.5; x86_64; ; ) In-Reply-To: <56169B98.3070105@linaro.org> References: <871td6xcxc.fsf@yhuang-dev.intel.com> <56165701.90402@linaro.org> <56169B98.3070105@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thursday, October 08, 2015 10:36:40 AM Al Stone wrote: > On 10/08/2015 05:44 AM, Hanjun Guo wrote: > > On 10/08/2015 11:21 AM, kernel test robot wrote: > >> FYI, we noticed the below changes on > >> > >> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > >> commit 7494b07ebaae2117629024369365f7be7adc16c3 ("ACPI: add in a > >> bad_madt_entry() function to eventually replace the macro") > >> > >> [ 0.000000] ACPI: undefined MADT subtable type for FADT 4.0: 127 (length 12) > > > > Seems that the MADT table contains reserved subtable type (0x7F), > > so this is traded as a wrong type in our patch. > > > >> [ 0.000000] ACPI: Error parsing LAPIC address override entry > > > > This was called by early_acpi_parse_madt_lapic_addr_ovr() in > > arch/x86/kernel/acpi/boot.c, which is scanning MADT for the first > > time when booting, so it will fail the boot process when finding > > the reserved MADT subtable type. > > > >> [ 0.000000] ACPI: Invalid BIOS MADT, disabling ACPI > > > > As the spec said in Table 5-46 (ACPI 6.0): > > > > 0x10-0x7F Reserved. OSPM skips structures of the reserved type. > > > > Should we just ignore those reserved type when scanning the MADT > > table? In the patch "ACPI: add in a bad_madt_entry() function to > > eventually replace the macro", we just trade it as wrong, that's > > why we failed to boot the system. > > > > Thanks > > Hanjun > > Arrgh. This is why people get frustrated with ACPI. The spec is > saying that those sub-table types are reserved -- implying they can > and probably will be used for something else in the future -- but > then vendors are shipping firmware that uses those reserved values, > and an OS *expects* them to be used, and there is *no* documentation > of it other than a kernel workaround. > > So yet again, technically this MADT subtable *is* wrong, and someone > should slap the vendor for doing this. But, the practical side of > this is that we now have to workaround what is now a known violation > of the spec. > > The more ACPI allows this kind of nonsense, the less usable it will > become. Linux Kernel Developer's First Rule: You shall not break setups that worked previously, even if they worked by accident. IOW, if something booted and your commit made it not boot any more, it counts as a regression and needs to be modified or reverted. Thanks, Rafael