Received: by 2002:ac0:8845:0:0:0:0:0 with SMTP id g63csp2332297img; Wed, 27 Feb 2019 14:52:21 -0800 (PST) X-Google-Smtp-Source: AHgI3IavXcReF7gB5mRMvAuBw8fVp5qfP3Q7BrsAW57kJAEA7bRnbcGyed0iTrTL6ctycHNR9zdI X-Received: by 2002:a63:4f61:: with SMTP id p33mr5339018pgl.303.1551307941108; Wed, 27 Feb 2019 14:52:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551307941; cv=none; d=google.com; s=arc-20160816; b=t66osYuAOBrEtQI+rY0kMeYUaKk2kSHPo3iJylJGY8tRpeNyLc3f4SA9PRudUAWK1y qSSA5hHSZ82FufjFGs/EK4cg0eIrvl99vZPXwpCuMJ5kB0dcpRY+tHmIhGRa5+2Hx0HY BoFTYeyfadjSrJLc6Ybao9mUUQugBUqRrp4bcmalkA7FKnX/+e7FsJAxoOAdIanVybxG Yf5+k8Jj2/+wM4zKOu2o6WO5Bp3VLE8yW240kISHnSbTuU5IGZQGwByS20dBgYpn0Oui K7g6hF+PeLVROYagnsESViAT/PL6dt5WWHoB2uqoezTeTehxVa+XrryF8iNTYw4gAjgn VIfg== 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=nQuXJ7LNYRRxRkGtcByfgDjWm6trYb32V1csoO7OD/Q=; b=NYLjQ7PkNSd1ksPhW5G3OwioIV7JZDZ/SPtQPXSUxByacsTr7MZzcJbatjqDrke+j4 hlmeBcddfwj8cBqLDC1LaxQPGhGCGFgRZqjrUQsG3aoCSACVfrcWRzSwXyuRV4rNGlBz j1/NFxHWWawRASOJOg2l3TWJO0+RxHfev995lmqXAttd9A1k2y+nuRJuPcggTMRCJD28 N+iiaDF4NrYm5A+byaSYmy8IKuruUHiR/5oLj4/R0eC5+y5g1jl5SHtfCH+q+KO9xcMC zr9dXNHEP5rVXrv7f6J9HwhYxoJK2TemwiVBB1ky/OlGd008xPz/LUReztF/nVCPt2XY UDDw== 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 f21si11840435plr.297.2019.02.27.14.52.05; Wed, 27 Feb 2019 14:52:21 -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 S1730498AbfB0Wud (ORCPT + 99 others); Wed, 27 Feb 2019 17:50:33 -0500 Received: from mga03.intel.com ([134.134.136.65]:4754 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729412AbfB0Wua (ORCPT ); Wed, 27 Feb 2019 17:50:30 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2019 14:50:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,420,1544515200"; d="scan'208";a="121349389" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by orsmga008.jf.intel.com with ESMTP; 27 Feb 2019 14:50:28 -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: [PATCHv7 02/10] acpi: Add HMAT to generic parsing tables Date: Wed, 27 Feb 2019 15:50:30 -0700 Message-Id: <20190227225038.20438-3-keith.busch@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190227225038.20438-1-keith.busch@intel.com> References: <20190227225038.20438-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 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