Re: [PATCH] Fix BREAK handling in sunsab serial driver

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

 



From: Christopher Alexander Tobias Schulze <cat.schulze@xxxxxxxxxxxxx>
Date: Sun, 27 Jul 2014 15:19:21 +0200

Again, please format your subject line properly, the subsystem prefix
here could be "sunsab: ".

> Handling of a BREAK on a serial line is currently broken in the sunsab serial
> driver. Due to this defect, it is not possible to break to the firmware prompt
> or trigger a Magic SysRq on these machines (which would be quite useful for
> debugging kernel problems on headless machines).
> 
> This problem is caused by the fact that the count of characters to be processed
> might be 0 when a BREAK interrupt is triggered. The code in the driver contains
> a loop that processes the pending characters - with count set to 0 no processing
> takes place at all. Unfortunately, the call of uart_handle_break() is contained
> inside this loop and therefore skipped completely.
> 
> This patch moves the check for BREAK status in front of the loop and executes it
> only when count == 0, i.e. when it would not be done inside the loop.
> 
> With this patch, Magic SysRq works again. However, there seems to be another
> problem that causes an Oops when a register dump is requested by SysRq. This
> is caused when perf_event_print_debug() is called from sysrq_handle_showregs()
> in drivers/tty/sysrq.c. This patch provides no solution for this problem; my
> workaround was to eliminate the call to perf_event_print_debug() in
> sysrq_handle_showregs(). This problem was observed on a SunBlade 2000 with an
> UltraSPARC III Cu CPU and might be specific to this CPU model (the UltraSPARC III
> is the first CPU to support perf_event.).
> 
> The patch was originally developed against a 3.13 backport kernel from Debian.
> Both the patch against 3.13 and a recent 3.16-rc6 are included below. Please note
> that I could only test the 3.13 version as I do not have access to the affected
> machine anymore.

Please provide a proper "Singed-off-by: " as per Documentation/SubmittingPatches.

> +       if(count == 0) {

Space between "if" and "(".

> +               if(unlikely(stat->sreg.isr1 & SAB82532_ISR1_BRK)) {

Likewise.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux