Home Home > GIT Browse > SLE12-SP5-AZURE
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlaf Hering <ohering@suse.de>2019-09-06 13:38:45 +0200
committerOlaf Hering <ohering@suse.de>2019-09-06 13:38:45 +0200
commit52c17bb196ed9bd04f472eaf09667ccab7df0912 (patch)
tree102cbcd52f340f6404e8069b14396dc11b47eb83
parent24f66da101241f3e9111233bae9e3f4c80ec5e69 (diff)
parentf8790faee7db329d9fdf49e884efddf5402ff1e8 (diff)
Merge remote-tracking branch 'kerncvs/SLE12-SP5' into SLE12-SP5-AZURE
-rw-r--r--patches.fixes/0001-ACPICA-Increase-total-number-of-possible-Owner-IDs.patch278
-rw-r--r--series.conf1
2 files changed, 279 insertions, 0 deletions
diff --git a/patches.fixes/0001-ACPICA-Increase-total-number-of-possible-Owner-IDs.patch b/patches.fixes/0001-ACPICA-Increase-total-number-of-possible-Owner-IDs.patch
new file mode 100644
index 0000000000..7b7bf7eb9f
--- /dev/null
+++ b/patches.fixes/0001-ACPICA-Increase-total-number-of-possible-Owner-IDs.patch
@@ -0,0 +1,278 @@
+From 67a72420a326b45514deb3f212085fb2cd1595b5 Mon Sep 17 00:00:00 2001
+From: Bob Moore <robert.moore@intel.com>
+Date: Fri, 16 Aug 2019 14:43:21 -0700
+Subject: [PATCH] ACPICA: Increase total number of possible Owner IDs
+Patch-mainline: Not yet, merged to linux-next
+References: bsc#1148859
+
+ACPICA commit 1f1652dad88b9d767767bc1f7eb4f7d99e6b5324
+
+From 255 to 4095 possible IDs.
+
+Link: https://github.com/acpica/acpica/commit/1f1652da
+Reported-by: Hedi Berriche <hedi.berriche @hpe.com>
+Signed-off-by: Bob Moore <robert.moore@intel.com>
+Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Acked-by: Lee, Chun-Yi <jlee@suse.com>
+---
+ drivers/acpi/acpica/aclocal.h | 4 ++--
+ drivers/acpi/acpica/acobject.h | 2 +-
+ drivers/acpi/acpica/acstruct.h | 2 +-
+ drivers/acpi/acpica/acutils.h | 7 ++++---
+ drivers/acpi/acpica/dbmethod.c | 4 ++++
+ drivers/acpi/acpica/exdump.c | 6 +++---
+ drivers/acpi/acpica/nsalloc.c | 2 +-
+ drivers/acpi/acpica/nsdump.c | 2 +-
+ drivers/acpi/acpica/tbdata.c | 1 +
+ drivers/acpi/acpica/uterror.c | 6 +++---
+ drivers/acpi/acpica/utownerid.c | 12 ++++++------
+ include/acpi/acconfig.h | 4 ++--
+ include/acpi/actypes.h | 4 ++--
+ 13 files changed, 31 insertions(+), 25 deletions(-)
+
+--- a/drivers/acpi/acpica/aclocal.h
++++ b/drivers/acpi/acpica/aclocal.h
+@@ -168,12 +168,12 @@ struct acpi_namespace_node {
+ union acpi_operand_object *object; /* Interpreter object */
+ u8 descriptor_type; /* Differentiate object descriptor types */
+ u8 type; /* ACPI Type associated with this name */
+- u8 flags; /* Miscellaneous flags */
+- acpi_owner_id owner_id; /* Node creator */
++ u16 flags; /* Miscellaneous flags */
+ union acpi_name_union name; /* ACPI Name, always 4 chars per ACPI spec */
+ struct acpi_namespace_node *parent; /* Parent node */
+ struct acpi_namespace_node *child; /* First child */
+ struct acpi_namespace_node *peer; /* First peer */
++ acpi_owner_id owner_id; /* Node creator */
+
+ /*
+ * The following fields are used by the ASL compiler and disassembler only
+--- a/drivers/acpi/acpica/acobject.h
++++ b/drivers/acpi/acpica/acobject.h
+@@ -185,8 +185,8 @@ struct acpi_object_method {
+ } dispatch;
+
+ u32 aml_length;
+- u8 thread_count;
+ acpi_owner_id owner_id;
++ u8 thread_count;
+ };
+
+ /* Flags for info_flags field above */
+--- a/drivers/acpi/acpica/acstruct.h
++++ b/drivers/acpi/acpica/acstruct.h
+@@ -198,9 +198,9 @@ struct acpi_evaluate_info {
+ u32 return_flags; /* Used for return value analysis */
+ u32 return_btype; /* Bitmapped type of the returned object */
+ u16 param_count; /* Count of the input argument list */
++ u16 node_flags; /* Same as Node->Flags */
+ u8 pass_number; /* Parser pass number */
+ u8 return_object_type; /* Object type of the returned object */
+- u8 node_flags; /* Same as Node->Flags */
+ u8 flags; /* General flags */
+ };
+
+--- a/drivers/acpi/acpica/acutils.h
++++ b/drivers/acpi/acpica/acutils.h
+@@ -694,18 +694,19 @@ void ACPI_INTERNAL_VAR_XFACE
+ acpi_ut_predefined_warning(const char *module_name,
+ u32 line_number,
+ char *pathname,
+- u8 node_flags, const char *format, ...);
++ u16 node_flags, const char *format, ...);
+
+ void ACPI_INTERNAL_VAR_XFACE
+ acpi_ut_predefined_info(const char *module_name,
+ u32 line_number,
+- char *pathname, u8 node_flags, const char *format, ...);
++ char *pathname,
++ u16 node_flags, const char *format, ...);
+
+ void ACPI_INTERNAL_VAR_XFACE
+ acpi_ut_predefined_bios_error(const char *module_name,
+ u32 line_number,
+ char *pathname,
+- u8 node_flags, const char *format, ...);
++ u16 node_flags, const char *format, ...);
+
+ void
+ acpi_ut_prefixed_namespace_error(const char *module_name,
+--- a/drivers/acpi/acpica/dbmethod.c
++++ b/drivers/acpi/acpica/dbmethod.c
+@@ -338,6 +338,10 @@ acpi_status acpi_db_disassemble_method(c
+ }
+
+ status = acpi_ut_allocate_owner_id(&obj_desc->method.owner_id);
++ if (ACPI_FAILURE(status)) {
++ return (status);
++ }
++
+ walk_state->owner_id = obj_desc->method.owner_id;
+
+ /* Push start scope on scope stack and make it current */
+--- a/drivers/acpi/acpica/exdump.c
++++ b/drivers/acpi/acpica/exdump.c
+@@ -128,7 +128,7 @@ static struct acpi_exdump_info acpi_ex_d
+ "Parameter Count"},
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.sync_level), "Sync Level"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(method.mutex), "Mutex"},
+- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.owner_id), "Owner Id"},
++ {ACPI_EXD_UINT16, ACPI_EXD_OFFSET(method.owner_id), "Owner Id"},
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.thread_count), "Thread Count"},
+ {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(method.aml_length), "Aml Length"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(method.aml_start), "Aml Start"}
+@@ -303,8 +303,8 @@ static struct acpi_exdump_info acpi_ex_d
+
+ static struct acpi_exdump_info acpi_ex_dump_node[7] = {
+ {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_node), NULL},
+- {ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET(flags), "Flags"},
+- {ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET(owner_id), "Owner Id"},
++ {ACPI_EXD_UINT16, ACPI_EXD_NSOFFSET(flags), "Flags"},
++ {ACPI_EXD_UINT16, ACPI_EXD_NSOFFSET(owner_id), "Owner Id"},
+ {ACPI_EXD_LIST, ACPI_EXD_NSOFFSET(object), "Object List"},
+ {ACPI_EXD_NODE, ACPI_EXD_NSOFFSET(parent), "Parent"},
+ {ACPI_EXD_NODE, ACPI_EXD_NSOFFSET(child), "Child"},
+--- a/drivers/acpi/acpica/nsalloc.c
++++ b/drivers/acpi/acpica/nsalloc.c
+@@ -273,7 +273,7 @@ void acpi_ns_install_node(struct acpi_wa
+ node->type = (u8) type;
+
+ ACPI_DEBUG_PRINT((ACPI_DB_NAMES,
+- "%4.4s (%s) [Node %p Owner %X] added to %4.4s (%s) [Node %p]\n",
++ "%4.4s (%s) [Node %p Owner %3.3X] added to %4.4s (%s) [Node %p]\n",
+ acpi_ut_get_node_name(node),
+ acpi_ut_get_type_name(node->type), node, owner_id,
+ acpi_ut_get_node_name(parent_node),
+--- a/drivers/acpi/acpica/nsdump.c
++++ b/drivers/acpi/acpica/nsdump.c
+@@ -230,7 +230,7 @@ acpi_ns_dump_one_object(acpi_handle obj_
+
+ /* Now we can print out the pertinent information */
+
+- acpi_os_printf(" %-12s %p %2.2X ",
++ acpi_os_printf(" %-12s %p %3.3X ",
+ acpi_ut_get_type_name(type), this_node,
+ this_node->owner_id);
+
+--- a/drivers/acpi/acpica/tbdata.c
++++ b/drivers/acpi/acpica/tbdata.c
+@@ -618,6 +618,7 @@ acpi_status acpi_tb_delete_namespace_by_
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
++
+ acpi_ns_delete_namespace_by_owner(owner_id);
+ acpi_ut_release_write_lock(&acpi_gbl_namespace_rw_lock);
+ return_ACPI_STATUS(status);
+--- a/drivers/acpi/acpica/uterror.c
++++ b/drivers/acpi/acpica/uterror.c
+@@ -75,7 +75,7 @@ void ACPI_INTERNAL_VAR_XFACE
+ acpi_ut_predefined_warning(const char *module_name,
+ u32 line_number,
+ char *pathname,
+- u8 node_flags, const char *format, ...)
++ u16 node_flags, const char *format, ...)
+ {
+ va_list arg_list;
+
+@@ -117,7 +117,7 @@ acpi_ut_predefined_warning(const char *m
+ void ACPI_INTERNAL_VAR_XFACE
+ acpi_ut_predefined_info(const char *module_name,
+ u32 line_number,
+- char *pathname, u8 node_flags, const char *format, ...)
++ char *pathname, u16 node_flags, const char *format, ...)
+ {
+ va_list arg_list;
+
+@@ -160,7 +160,7 @@ void ACPI_INTERNAL_VAR_XFACE
+ acpi_ut_predefined_bios_error(const char *module_name,
+ u32 line_number,
+ char *pathname,
+- u8 node_flags, const char *format, ...)
++ u16 node_flags, const char *format, ...)
+ {
+ va_list arg_list;
+
+--- a/drivers/acpi/acpica/utownerid.c
++++ b/drivers/acpi/acpica/utownerid.c
+@@ -74,7 +74,7 @@ acpi_status acpi_ut_allocate_owner_id(ac
+
+ if (*owner_id) {
+ ACPI_ERROR((AE_INFO,
+- "Owner ID [0x%2.2X] already exists", *owner_id));
++ "Owner ID [0x%3.3X] already exists", *owner_id));
+ return_ACPI_STATUS(AE_ALREADY_EXISTS);
+ }
+
+@@ -118,14 +118,14 @@ acpi_status acpi_ut_allocate_owner_id(ac
+ /*
+ * Construct encoded ID from the index and bit position
+ *
+- * Note: Last [j].k (bit 255) is never used and is marked
++ * Note: Last [j].k (bit 4095) is never used and is marked
+ * permanently allocated (prevents +1 overflow)
+ */
+ *owner_id =
+ (acpi_owner_id)((k + 1) + ACPI_MUL_32(j));
+
+ ACPI_DEBUG_PRINT((ACPI_DB_VALUES,
+- "Allocated OwnerId: %2.2X\n",
++ "Allocated OwnerId: 0x%3.3X\n",
+ (unsigned int)*owner_id));
+ goto exit;
+ }
+@@ -146,7 +146,7 @@ acpi_status acpi_ut_allocate_owner_id(ac
+ */
+ status = AE_OWNER_ID_LIMIT;
+ ACPI_ERROR((AE_INFO,
+- "Could not allocate new OwnerId (255 max), AE_OWNER_ID_LIMIT"));
++ "Could not allocate new OwnerId (4095 max), AE_OWNER_ID_LIMIT"));
+
+ exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_CACHES);
+@@ -183,7 +183,7 @@ void acpi_ut_release_owner_id(acpi_owner
+ /* Zero is not a valid owner_ID */
+
+ if (owner_id == 0) {
+- ACPI_ERROR((AE_INFO, "Invalid OwnerId: 0x%2.2X", owner_id));
++ ACPI_ERROR((AE_INFO, "Invalid OwnerId: 0x%3.3X", owner_id));
+ return_VOID;
+ }
+
+@@ -209,7 +209,7 @@ void acpi_ut_release_owner_id(acpi_owner
+ acpi_gbl_owner_id_mask[index] ^= bit;
+ } else {
+ ACPI_ERROR((AE_INFO,
+- "Release of non-allocated OwnerId: 0x%2.2X",
++ "Attempted release of non-allocated OwnerId: 0x%3.3X",
+ owner_id + 1));
+ }
+
+--- a/include/acpi/acconfig.h
++++ b/include/acpi/acconfig.h
+@@ -129,9 +129,9 @@
+
+ #define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */
+
+-/* owner_id tracking. 8 entries allows for 255 owner_ids */
++/* owner_id tracking. 128 entries allows for 4095 owner_ids */
+
+-#define ACPI_NUM_OWNERID_MASKS 8
++#define ACPI_NUM_OWNERID_MASKS 128
+
+ /* Size of the root table array is increased by this increment */
+
+--- a/include/acpi/actypes.h
++++ b/include/acpi/actypes.h
+@@ -466,8 +466,8 @@ typedef void *acpi_handle; /* Actually a
+
+ /* Owner IDs are used to track namespace nodes for selective deletion */
+
+-typedef u8 acpi_owner_id;
+-#define ACPI_OWNER_ID_MAX 0xFF
++typedef u16 acpi_owner_id;
++#define ACPI_OWNER_ID_MAX 0xFFF /* 4095 possible owner IDs */
+
+ #define ACPI_INTEGER_BIT_SIZE 64
+ #define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */
diff --git a/series.conf b/series.conf
index f5b091562d..61bd3727c1 100644
--- a/series.conf
+++ b/series.conf
@@ -49871,6 +49871,7 @@
patches.suse/0001-x86-speculation-Prepare-entry-code-for-Spectre-v1-sw.patch
patches.suse/0002-x86-speculation-Enable-Spectre-v1-swapgs-mitigations.patch
patches.suse/x86-speculation-swapgs-exclude-ATOMs-from-speculating-through-SWAPGS.patch
+ patches.fixes/0001-ACPICA-Increase-total-number-of-possible-Owner-IDs.patch
patches.suse/powerpc-fadump-when-fadump-is-supported-register-the.patch
########################################################