• C
    serial: pxa: add spin lock for console write · cfe275c2
    Chao Xie 提交于
    v3:
    Remove empty line
    
    v2:
    Move local_irq_save() after clk_prepare_enable()
    
    v1:
    At UP mode, when cpu want to print message in kernel, it will invoke
    peempt_disable and disable irq. So it is safe for UP mode.
    For SMP mode, it is not safe to protect the HW reigsters.
    one CPU will run a program which will invoke printf.
    another CPU will run a program in kernel that invoke printk.
    So when second CPU is trying to printk, it will do
    1. save ier register
    2. enable uue bit of ier register
    3. push buffer to uart fifo
    4 .restore ier register
    when first CPU want to printf, and it happens between 1 and 4, it will
    enable thre bit of ier, and waiting for transmit intterupt. while step 4
    will make the ier lost thre bit.
    add spin lock here to protect the ier register for console write.
    Signed-off-by: NChao Xie <chao.xie@marvell.com>
    Signed-off-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    cfe275c2
pxa.c 21.9 KB