• Mark Salter's avatar
    MN10300: fix SMP synchronization between txdma and serial driver · 8f0bcbca
    Mark Salter authored
    The SoC serial port driver uses a high priority interrupt to handle tx of
    characters in the tx ring buffer. The driver needs to disable/enable this IRQ
    from outside of irq context. The original code to do this is not foolproof on
    SMP machines because the IRQ running on one core could still access the serial
    port for a short time after the driver running on another core disables the
    interrupt. This patch adds a flag to tell the IRQ handler that the driver
    wants to disable the interrupt. After seeing the flag, the IRQ handler will
    immediately disable the interrupt and exit. After setting the flag, the driver
    will wait for interrupt to be disabled by the IRQ handler.
    Signed-off-by: default avatarMark Salter <msalter@redhat.com>
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    8f0bcbca
mn10300-serial-low.S 5.31 KB