Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp1440771imc; Mon, 11 Mar 2019 13:56:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqwP9lz/9obMlQ80bqhw3J93bjIvw3pYearY/gluJrP53I7w4CQCtOuYTo8I6PJGl1usIuM3 X-Received: by 2002:a65:448b:: with SMTP id l11mr31582463pgq.450.1552337783468; Mon, 11 Mar 2019 13:56:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552337783; cv=none; d=google.com; s=arc-20160816; b=kY4CzFJpirE6wVSLlGYO3IpDmPGQDGJ1mHz1S/SuJUH7Dagf/epDFg93YLzmIOZYP0 z1AC6xNBhKZW+clXc625Gd8hKMd3Bq7K4v8KowmKaYwI+Dal3Dxf6MydX+YbswJbcXO3 1Tssn/5ITY/g4bsSIpny5xX1Emgi1ShCa50nQGfyZBpxK09kqyWWtxXPTvQ82FtFq9Yq V5DT47BXXruLLvRmeBzRHmbApFMfDZl4tbl08TDU8poI4JTbdOe8dBuKMv9GJRlp0lER Cd1C5dCJ9O4dieU5UDAaJGH+qbG7FvxaGd2JVnMEoZ+a9j6Yo1AN+b7wDNYoZVvVA3Zc eumA== 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=fMv/6P4dkMu7f+BQbRadexO0PfDerpth1q2Z9fsJHNs=; b=Q7XQhsR1NJ6It4XlQJDSRUGz2X85N/jqUuLUGqHnIzJUd3c852JCXzhXaOn0pa77w5 t6GMXJxUZVbiH5l8bBZoYBlI0efKSDvryLSFQOG38fhG5gqEyKav66aeFRJWdv4K0uaR 4Skky/M/rgmZZOvYyNpXLGSeCl6fsuBi22PbSbCrWvFbZ6EC2dmcwOa5tFxg6ouRkbSR 3GWWRO2cudxR2wGCuJmod6TliT5x/cspzkwYFj1b0mZaa+LCHD4dam2ubh/WkhY1Jip1 d3PxPfHzSPLrVcpwak1GwmKoXXF7PeYVAZTHEC85I5bdqdz8PmrzikIrQWMDLIyrbxAH dEpA== 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 co9si6534036plb.324.2019.03.11.13.56.07; Mon, 11 Mar 2019 13:56:23 -0700 (PDT) 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 S1728332AbfCKUzo (ORCPT + 99 others); Mon, 11 Mar 2019 16:55:44 -0400 Received: from mga18.intel.com ([134.134.136.126]:10471 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727773AbfCKUzl (ORCPT ); Mon, 11 Mar 2019 16:55:41 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Mar 2019 13:55:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,468,1544515200"; d="scan'208";a="139910159" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by FMSMGA003.fm.intel.com with ESMTP; 11 Mar 2019 13:55:40 -0700 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 , Jonathan Cameron , Brice Goglin , Keith Busch Subject: [PATCHv8 02/10] acpi: Add HMAT to generic parsing tables Date: Mon, 11 Mar 2019 14:55:58 -0600 Message-Id: <20190311205606.11228-3-keith.busch@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190311205606.11228-1-keith.busch@intel.com> References: <20190311205606.11228-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. Reviewed-by: Rafael J. Wysocki Acked-by: Jonathan Cameron Tested-by: Jonathan Cameron 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 7553774a22b7..3d0da38f94c6 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 9494d42bf507..7c7515b0767e 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