Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2557681imu; Thu, 24 Jan 2019 15:11:46 -0800 (PST) X-Google-Smtp-Source: ALg8bN7DfinnUVVqUqTnPEKj1dsrRKnfeJmIEMAdmiQ4xES8kxb9/s3Dto3N6SIahrBKi632gyNy X-Received: by 2002:a63:e84c:: with SMTP id a12mr7636776pgk.241.1548371506578; Thu, 24 Jan 2019 15:11:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548371506; cv=none; d=google.com; s=arc-20160816; b=oE/RI2t0YqfnFTHkFtjYjdVtduz2sA4TcCMifOpVYtDxxtY31XR1pGvRDcHJkTliqM 0xl6WGThmv1lCLGzY601u9JYZrALBg8bAgnoUDlPXYa2rNL0AJUF9QPPzn+1ntvW74W5 oOuxiFDc1xNLhbea7SqUqGucjM2itx0JoXKUGmYoZEptkvcGzkGLIk3+LYEwj17fvw8A 2XZan3fBixDwLQ1FGR587k5owVVu4LNtT/4KOXB6o9aTQH/JK1a7nunNnHynMP67UdNd vt6+Y4WbpKLZXbkHBOulGtNWbDeESmcx8wkVX9J3FbTGYD9ZHYEPFtt1x9D+XolwE28z n9sw== 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=SS4WqYHbfQ3a4me8BXX6lKh6zDhUzPLxEXlCJkUKsjAMqeNu0KTvxvQiSEEEoll6BI KlmQapl6dL16HuFyHjjpFyIN/sEnjWaMiTolHZp3sjK5pmUBp/bX28Vx7k3adDFmCmnd e9tDGoWetKXz0iiUOVm0c2F9nLnYd858mR2T+WOyslO8rs9IhEvQ2qgTM6PkL0283InC vCYYciExF5tvvDoa0pACONw5BmATyiWE1icJ63xTsluUl+WC/1RbT9fpuCN7DwwDTWbc VlSAnUDdAI0GMfPKZZO6oaP1P0LwEGusxOSgHtaBmrso0i2XYqZZW1Ce1aP9MpqCOYNM uKYQ== 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 u8si24533300plh.385.2019.01.24.15.11.31; Thu, 24 Jan 2019 15:11:46 -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 S1728410AbfAXXJW (ORCPT + 99 others); Thu, 24 Jan 2019 18:09:22 -0500 Received: from mga03.intel.com ([134.134.136.65]:21167 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727639AbfAXXI3 (ORCPT ); Thu, 24 Jan 2019 18:08:29 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 15:08:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,518,1539673200"; d="scan'208";a="313295741" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by fmsmga006.fm.intel.com with ESMTP; 24 Jan 2019 15:08:23 -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: [PATCHv5 02/10] acpi: Add HMAT to generic parsing tables Date: Thu, 24 Jan 2019 16:07:16 -0700 Message-Id: <20190124230724.10022-3-keith.busch@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20190124230724.10022-1-keith.busch@intel.com> References: <20190124230724.10022-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