virtio: fix suspend when using virtio_balloon
Break out of wait_event_interruptible() if freezing has been requested, in the vballoon thread. Without this change vballoon refuses to stop and the system can't suspend. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: stable@kernel.org
This commit is contained in:
Родитель
a489f0b555
Коммит
84a139a985
|
@ -190,7 +190,8 @@ static int balloon(void *_vballoon)
|
||||||
try_to_freeze();
|
try_to_freeze();
|
||||||
wait_event_interruptible(vb->config_change,
|
wait_event_interruptible(vb->config_change,
|
||||||
(diff = towards_target(vb)) != 0
|
(diff = towards_target(vb)) != 0
|
||||||
|| kthread_should_stop());
|
|| kthread_should_stop()
|
||||||
|
|| freezing(current));
|
||||||
if (diff > 0)
|
if (diff > 0)
|
||||||
fill_balloon(vb, diff);
|
fill_balloon(vb, diff);
|
||||||
else if (diff < 0)
|
else if (diff < 0)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче