tty: hvc: hvc_poll() break hv read loop
authorNicholas Piggin <npiggin@gmail.com>
Mon, 30 Apr 2018 14:55:54 +0000 (00:55 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 23 Jul 2018 10:11:55 +0000 (20:11 +1000)
commitec97eaad1383ab2500fcf9a07ade6044fbcc67f5
tree4c05fb0e4b4f6db8a2a56921f28dc5cc0931ce6e
parenta9bf5c8a271b9a954709b7ada1bd258f5cadf7ff
tty: hvc: hvc_poll() break hv read loop

Avoid looping with the spinlock held while there is read data
being returned from the hv driver. Instead note if the entire
size returned by tty_buffer_request_room was read, and request
another read poll.

This limits the critical section lengths, and provides more
even service to other consoles in case there is a pathological
condition.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
drivers/tty/hvc/hvc_console.c