summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Zaslonko <zaslonko@linux.ibm.com>2026-09-03 15:07:31 +0200
committerVasily Gorbik <gor@linux.ibm.com>2026-09-08 15:53:40 +0200
commitb1eb31d533cdfcae1011ed53850d52f36afe5774 (patch)
treeee25aed4160ae6566a5f8267df74cc1c9336c73c
parent9ecc4d033879f7761f2df07e20cd2fbec00fd90b (diff)
downloadlinux-next-b1eb31d533cdfcae1011ed53850d52f36afe5774.tar.gz
linux-next-b1eb31d533cdfcae1011ed53850d52f36afe5774.zip
s390/debug: Fix NULL pointer dereference in debug_set_level()
Commit a2cec6863709 ("s390/debug: Add s390dbf kernel parameter") incorrectly removed a null-id check from debug_set_level(), introducing a possible NULL pointer dereference for debug-API users that put debug_register() results unchecked into debug_set_level(). Fix this by moving the check from the internal _debug_set_level() variant back to the external debug_set_level() wrapper. Fixes: a2cec6863709 ("s390/debug: Add s390dbf kernel parameter") Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com> Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-rw-r--r--arch/s390/kernel/debug.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c
index 14d2b58ad093..e06abf1dbc21 100644
--- a/arch/s390/kernel/debug.c
+++ b/arch/s390/kernel/debug.c
@@ -1074,9 +1074,6 @@ static void _debug_set_level(debug_info_t *id, int new_level)
{
unsigned long flags;
- if (!id)
- return;
-
if (new_level == DEBUG_OFF_LEVEL) {
pr_info("%s: switched off\n", id->name);
} else if ((new_level > DEBUG_MAX_LEVEL) || (new_level < 0)) {
@@ -1101,6 +1098,9 @@ static void _debug_set_level(debug_info_t *id, int new_level)
*/
void debug_set_level(debug_info_t *id, int new_level)
{
+ if (!id)
+ return;
+
/* Level specified via kernel parameter takes precedence */
debug_get_param(id->name, &new_level, NULL);