s390/sclp: Deactivate sclp after all its users
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>
Mon, 14 Oct 2024 05:50:06 +0000 (07:50 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 16 Oct 2024 09:32:32 +0000 (11:32 +0200)
On reboot the SCLP interface is deactivated through a reboot notifier.
This happens before other components using SCLP have the chance to run
their own reboot notifiers.
Two of those components are the SCLP console and tty drivers which try
to flush the last outstanding messages.
At that point the SCLP interface is already unusable and the messages
are discarded.

Execute sclp_deactivate() as late as possible to avoid this issue.

Fixes: 4ae46db99cd8 ("s390/consoles: improve panic notifiers reliability")
Cc: stable@vger.kernel.org
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Link: https://lore.kernel.org/r/20241014-s390-kunit-v1-1-941defa765a6@linutronix.de
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/char/sclp.c

index f3621ad..fbffd45 100644 (file)
@@ -1195,7 +1195,8 @@ sclp_reboot_event(struct notifier_block *this, unsigned long event, void *ptr)
 }
 
 static struct notifier_block sclp_reboot_notifier = {
-       .notifier_call = sclp_reboot_event
+       .notifier_call = sclp_reboot_event,
+       .priority      = INT_MIN,
 };
 
 static ssize_t con_pages_show(struct device_driver *dev, char *buf)