• Paul Gortmaker's avatar
    serial: make 8250 timeout use the specified IRQ handler · a0431476
    Paul Gortmaker authored
    The current 8250 timeout code duplicates the code path in
    serial8250_default_handle_irq and then serial8250_handle_irq
    i.e. reading iir, check for IIR_NO_INT, and then calling
    serial8250_handle_port.
    
    So the immediate thought is to replace the duplicated code
    with a call to serial8250_default_handle_irq.
    
    But this highlights a problem.  We let 8250 driver variants
    use their own IRQ handler via specifying their own custom
    ->handle_irq, but in the event of a timeout, we ignore their
    handler and implicitly run serial8250_default_handle_irq instead.
    
    So, go through the struct to get ->handle_irq and call that,
    which for most will still be serial8250_default_handle_irq.
    Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
    Acked-by: default avatarAlan Cox <alan@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    a0431476
8250.c 83.7 KB