[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen stable-4.3] xen/conring: Write to console ring even if console lock is busted



commit 0a2210f134fda565c7c3256215694aa2b8a2cebc
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Fri Sep 27 11:53:26 2013 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Sep 27 11:53:26 2013 +0200

    xen/conring: Write to console ring even if console lock is busted
    
    console_lock_busted gets set when an NMI/MCE/Double Fault handler decides to
    bring Xen down in an emergency.  conring_puts() cannot block and does
    not have problematic interactions with the console_lock.
    
    Therefore, choosing to not put the string into the console ring simply means
    that the kexec environment cant find any panic() message caused by an IST
    interrupt, which is unhelpful for debugging purposes.
    
    In the case that two pcpus fight with console_force_unlock(), having 
slightly
    garbled strings in the console ring is far more useful than having nothing 
at
    all.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Matt Wilson <msw@xxxxxxxxxx>
    Acked-by: Keir Fraser <keir@xxxxxxx>
    master commit: 66450c1d1ab3c4480bbba949113b95d1ab6a943a
    master date: 2013-08-06 17:45:00 +0200
---
 xen/drivers/char/console.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 7cd7bf6..bf16d49 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -463,12 +463,11 @@ static void __putstr(const char *str)
     sercon_puts(str);
     video_puts(str);
 
+    while ( (c = *str++) != '\0' )
+        putchar_console_ring(c);
+
     if ( !console_locks_busted )
-    {
-        while ( (c = *str++) != '\0' )
-            putchar_console_ring(c);
         tasklet_schedule(&notify_dom0_con_ring_tasklet);
-    }
 }
 
 static int printk_prefix_check(char *p, char **pp)
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.3

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.