removed deadlock in input_getc/serial_notify
we no longer hold the input and the serial txq spinlocks at the same time, avoiding deadlock. This is done by having the operation that operates on the input intq check its fullness status before relinquishing the lock, then passing it to serial_notify. Future improvement: check if IER_REG needs to be set atomically, or if it's possible to set individual bits. If so, then write_ier could be split, avoiding the awkwards checks whether the transmit is still possible if the receive state changed and vice versa.
Please register or sign in to comment