xen/balloon: make the balloon wait interruptible
So it can be killed, or else processes can get hung indefinitely waiting for balloon pages. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Juergen Gross <jgross@suse.com> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20200727091342.52325-3-roger.pau@citrix.com Signed-off-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
parent
1951fa33ec
commit
88a479ff6e
|
@ -568,11 +568,13 @@ static int add_ballooned_pages(int nr_pages)
|
||||||
if (xen_hotplug_unpopulated) {
|
if (xen_hotplug_unpopulated) {
|
||||||
st = reserve_additional_memory();
|
st = reserve_additional_memory();
|
||||||
if (st != BP_ECANCELED) {
|
if (st != BP_ECANCELED) {
|
||||||
|
int rc;
|
||||||
|
|
||||||
mutex_unlock(&balloon_mutex);
|
mutex_unlock(&balloon_mutex);
|
||||||
wait_event(balloon_wq,
|
rc = wait_event_interruptible(balloon_wq,
|
||||||
!list_empty(&ballooned_pages));
|
!list_empty(&ballooned_pages));
|
||||||
mutex_lock(&balloon_mutex);
|
mutex_lock(&balloon_mutex);
|
||||||
return 0;
|
return rc ? -ENOMEM : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue