• Tomoya MORINAGA's avatar
    pch_uart: Fix dma channel unallocated issue · 493fe64b
    Tomoya MORINAGA authored
    commit af6d17cd upstream.
    
    This driver anticipates pch_uart_verify_port() is not called
    during installation.
    However, actually pch_uart_verify_port() is called during
    installation.
    As a result, memory access violation occurs like below.
    
    0. initial value: use_dma=0
    1. starup()
        - dma channel is not allocated because use_dma=0
    2. pch_uart_verify_port()
        - Set use_dma=1
    3. UART processing acts DMA mode because use_dma=1
         - memory access violation occurs!
    
    This patch fixes the issue.
    
    Solution:
    Whenever pch_uart_verify_port() is called and then
    dma channel is not allocated, the channel should be allocated.
    Signed-off-by: default avatarTomoya MORINAGA <tomoya.rohm@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    493fe64b
pch_uart.c 40.6 KB