Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1000353imu; Wed, 9 Jan 2019 09:49:25 -0800 (PST) X-Google-Smtp-Source: ALg8bN5eInfOQtbTwwOcymMEhTWUzxco3Ld8IVKHfMy7Mq07XwW3mMNZwBHUUgLUXzhenMo1Sh9e X-Received: by 2002:a17:902:1e9:: with SMTP id b96mr6965798plb.150.1547056165478; Wed, 09 Jan 2019 09:49:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547056165; cv=none; d=google.com; s=arc-20160816; b=kDST+kl0qA6bKygO0xrn7CW8PZcTH44rqkzO47+fZk7Zegf2Cxj69RHsEQDVMYoVW0 XsUUihJ7uMLC2uT2jbfdyUSHoSBMAFJ3w0/yGUkxwtCRq7AzcWT/WC2EEg4O7sbJ0rgJ MJqAE9c0AWghJJTY7lmmiYNjoGvgu7kOOOZONL9/IcOpnxeuNKbLcERCtbVwh35lnGDC b4Rfv8vswcse0FZKfYSjE4ellb1MX9l5DtaGoaywy4YLam7owx1KJx/cqX2KkZpAN+LC X13W+kWSm61O4uB1BR4Vu5/X7XaDuHmbNm9BdituBis41Fz8V7/cE2G10cybswMeMCk1 xaKQ== 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=ExGNvcoKEZ/xzPwWGckO8sjrAYh7haWWgBU2TSXU3/0=; b=seLpgkQUiirIdJuypBpgzjS9yIbM/LL3N/PGhc5Tek+beIncHVIYRCmAv73afMKu1J 1bPlh6CcwlilUIjenDCgvsEMz9RUcNOa9VEsxXngUAgfeGL6UYLRMeHaQxR7hNmxJ1R7 wqIg1dvsnSeDs8RkPVYcDgnHeTVX4vni0PSzHjz9Nxbo9k0R7TZeoXG1cuC8VxUxE+/w 3vjKQEn8OLEXv2mdFgrh9w5gPxCJUJ7EgPIYKGne/6uru63/K3x99S2xh+79FctJJqDt 7d3icWP4Pi5rujH+MZ1Rl89auKWoiC+e65io+U53XcDNJdlw5U41AKW7Ha/Np5+qSDID dUXA== 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 k17si3152840pgl.62.2019.01.09.09.49.10; Wed, 09 Jan 2019 09:49:25 -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 S1727182AbfAIRrr (ORCPT + 99 others); Wed, 9 Jan 2019 12:47:47 -0500 Received: from mga17.intel.com ([192.55.52.151]:23479 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727082AbfAIRrq (ORCPT ); Wed, 9 Jan 2019 12:47:46 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2019 09:47:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,458,1539673200"; d="scan'208";a="115485579" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by fmsmga008.fm.intel.com with ESMTP; 09 Jan 2019 09:47:45 -0800 From: Keith Busch To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org Cc: Greg Kroah-Hartman , Rafael Wysocki , Dave Hansen , Dan Williams , Keith Busch Subject: [PATCHv3 02/13] acpi: Add HMAT to generic parsing tables Date: Wed, 9 Jan 2019 10:43:30 -0700 Message-Id: <20190109174341.19818-3-keith.busch@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190109174341.19818-1-keith.busch@intel.com> References: <20190109174341.19818-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 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