diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index ea3dd55709e7244ea1cb78e3982684920551fe1c..45c6c2b0b1044cc54888a4e5b647775edd282a22 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3729,7 +3729,9 @@ static bool printer_should_wake(struct console *con, u64 seq)
 		return true;
 
 	if (con->blocked ||
-	    console_kthreads_atomically_blocked()) {
+	    console_kthreads_atomically_blocked() ||
+	    system_state > SYSTEM_RUNNING ||
+	    oops_in_progress) {
 		return false;
 	}