Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp134265imj; Thu, 14 Feb 2019 17:03:52 -0800 (PST) X-Google-Smtp-Source: AHgI3IbhGbKO1glqMA7LUzkfp7DH9F9TsB0va7h/Odixy3L1UgnpCcNWz5X0hYzvPFtysz2WERzt X-Received: by 2002:a63:9712:: with SMTP id n18mr2691227pge.295.1550192632848; Thu, 14 Feb 2019 17:03:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550192632; cv=none; d=google.com; s=arc-20160816; b=p1mXsLTC6dNNst0K2ydrHYDbTd226uzg6LxWMhe4iRHbH0LjvKUR4pO7dONTxJ7F8S Y8sNnLhV64zUBDlTIxS+c5ZxQ1TdPNB8/89xWLrBtN6R+yZf65Cnl3Y/MXKEltemYwiI 1yBD4J7SyplM72jPxofLDbwN2Zvd8PiFAdqXS5fUXnEMCGyMv+KrRaiqRoyGfnGescwk YeH9cjHu/PHRO+a6Z/04SFT4TRI6HFNUb+IhvP+l2WAzSgmql8KoCcYWqU6iEt0obNLE KCu3IyBQFRZRb26AgIviUVVvjlDgzRPCwcbVFgnk/APRMINRVKQYp4hGA1xHH98iH3CH vyYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=lqRqlAUixHP/maDucUSoUigQ7wiAfswfBWQi2LO7g6Q=; b=gHC7GdJ1xiN6N1IzqxxRIp4L0qKUsF6OybasDiOrMQxqqsv5Jnw5/5KGockwv6fGha DHg4ywcVzcEsbjlI2EiJI9ZHEwF225uR00DFHfecBsl61LLMR2BJiW4C5LuXpxzd2YfL 83Ow9ElBcHsUzWK/GDJHu02QJZ+yIz0xdqaxG9ZhRUL0q0PdEvuIEXm65lq94ACROHW7 Ms0BKWkn/PCMx5zeIeALdFcmtUpA6489Y/2ThFs+lvG/7CsyhLQnoPeS55BOfTRPVL9h X8lK/r3ZFdhYOJMvGjMrTND1rrcNN36pQtoTbBcVtlx57NRyrhNZTdi3TQlxKSEvlfHl xV2Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 11si191726plc.383.2019.02.14.17.03.37; Thu, 14 Feb 2019 17:03:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389483AbfBNRKl (ORCPT + 99 others); Thu, 14 Feb 2019 12:10:41 -0500 Received: from mga05.intel.com ([192.55.52.43]:10385 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389008AbfBNRKk (ORCPT ); Thu, 14 Feb 2019 12:10:40 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Feb 2019 09:10:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,369,1544515200"; d="scan'208";a="133613102" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by FMSMGA003.fm.intel.com with ESMTP; 14 Feb 2019 09:10:39 -0800 From: Keith Busch To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org, linux-api@vger.kernel.org Cc: Greg Kroah-Hartman , Rafael Wysocki , Dave Hansen , Dan Williams , Keith Busch Subject: [PATCHv6 02/10] acpi: Add HMAT to generic parsing tables Date: Thu, 14 Feb 2019 10:10:09 -0700 Message-Id: <20190214171017.9362-3-keith.busch@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190214171017.9362-1-keith.busch@intel.com> References: <20190214171017.9362-1-keith.busch@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Heterogeneous Memory Attribute Table (HMAT) header has different field lengths than the existing parsing uses. Add the HMAT type to the parsing rules so it may be generically parsed. Cc: Dan Williams Reviewed-by: Rafael J. Wysocki Signed-off-by: Keith Busch --- drivers/acpi/tables.c | 9 +++++++++ include/linux/acpi.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c index 967e1168becf..d9911cd55edc 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c @@ -51,6 +51,7 @@ static int acpi_apic_instance __initdata; enum acpi_subtable_type { ACPI_SUBTABLE_COMMON, + ACPI_SUBTABLE_HMAT, }; struct acpi_subtable_entry { @@ -232,6 +233,8 @@ acpi_get_entry_type(struct acpi_subtable_entry *entry) switch (entry->type) { case ACPI_SUBTABLE_COMMON: return entry->hdr->common.type; + case ACPI_SUBTABLE_HMAT: + return entry->hdr->hmat.type; } return 0; } @@ -242,6 +245,8 @@ acpi_get_entry_length(struct acpi_subtable_entry *entry) switch (entry->type) { case ACPI_SUBTABLE_COMMON: return entry->hdr->common.length; + case ACPI_SUBTABLE_HMAT: + return entry->hdr->hmat.length; } return 0; } @@ -252,6 +257,8 @@ acpi_get_subtable_header_length(struct acpi_subtable_entry *entry) switch (entry->type) { case ACPI_SUBTABLE_COMMON: return sizeof(entry->hdr->common); + case ACPI_SUBTABLE_HMAT: + return sizeof(entry->hdr->hmat); } return 0; } @@ -259,6 +266,8 @@ acpi_get_subtable_header_length(struct acpi_subtable_entry *entry) static enum acpi_subtable_type __init acpi_get_subtable_type(char *id) { + if (strncmp(id, ACPI_SIG_HMAT, 4) == 0) + return ACPI_SUBTABLE_HMAT; return ACPI_SUBTABLE_COMMON; } diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7c3c4ebaded6..53f93dff171c 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -143,6 +143,7 @@ enum acpi_address_range_id { /* Table Handlers */ union acpi_subtable_headers { struct acpi_subtable_header common; + struct acpi_hmat_structure hmat; }; typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *table); -- 2.14.4