aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
authorKurt Garloff <kurt@garloff.de>2012-01-17 04:18:02 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2012-01-25 17:24:57 -0800
commit643147c50fde7eb0456953f468cc277d621f629e (patch)
tree7bc38c991b673bfeb2edfaec520f700403f485af /drivers/acpi
parente26a6033d0d0183e613a1ae5eafefd3baf7f3e6c (diff)
downloadkernel_samsung_smdk4412-643147c50fde7eb0456953f468cc277d621f629e.zip
kernel_samsung_smdk4412-643147c50fde7eb0456953f468cc277d621f629e.tar.gz
kernel_samsung_smdk4412-643147c50fde7eb0456953f468cc277d621f629e.tar.bz2
ACPI: Store SRAT table revision
commit 8df0eb7c9d96f9e82f233ee8b74e0f0c8471f868 upstream. In SRAT v1, we had 8bit proximity domain (PXM) fields; SRAT v2 provides 32bits for these. The new fields were reserved before. According to the ACPI spec, the OS must disregrard reserved fields. In order to know whether or not, we must know what version the SRAT table has. This patch stores the SRAT table revision for later consumption by arch specific __init functions. Signed-off-by: Kurt Garloff <kurt@garloff.de> Signed-off-by: Len Brown <len.brown@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/numa.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index 3b5c318..e56f3be 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -45,6 +45,8 @@ static int pxm_to_node_map[MAX_PXM_DOMAINS]
static int node_to_pxm_map[MAX_NUMNODES]
= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
+unsigned char acpi_srat_revision __initdata;
+
int pxm_to_node(int pxm)
{
if (pxm < 0)
@@ -255,9 +257,13 @@ acpi_parse_memory_affinity(struct acpi_subtable_header * header,
static int __init acpi_parse_srat(struct acpi_table_header *table)
{
+ struct acpi_table_srat *srat;
if (!table)
return -EINVAL;
+ srat = (struct acpi_table_srat *)table;
+ acpi_srat_revision = srat->header.revision;
+
/* Real work done in acpi_table_parse_srat below. */
return 0;