> + if ((up->bugs & UART_BUG_OCTEON_IIR) && (iir & 0xf) == 7) { > + /* Busy interrupt */ > + serial_in(up, UART_OCTEON_USR); > + iir = serial_in(up, UART_IIR); > + } Could this not be hidden in the register read method for the octeon and thus kept out of core code ?