Re: [RFC] virtio_balloon: fix Use-After-Free in page reporting during PM freeze
From: Link Lin
Date: Tue Jul 14 2026 - 14:05:34 EST
On Mon, Jul 13, 2026 at 6:17 AM David Hildenbrand wrote:
> I assume that workqueue is not frozen yet because ... it's not freezable :)
> So could we queue to system_freezable_wq instead, or define our own freezable
> workqueue there? Then a driver doesn't have to worry about that.
Exactly. As noted in the RFC, the root cause is indeed that system_wq
lacks the WQ_FREEZABLE flag, leaving it active during suspend.
Switching the worker over to system_freezable_wq is a brilliant idea.
It's a much cleaner abstraction that solves the problem at the core,
saving individual drivers from having to micromanage this lifecycle
and handle failure unwinding during freeze/restore.
On Mon, Jul 13, 2026 at 6:26 AM Michael S. Tsirkin wrote:
> +1. Just system_freezable_wq will do the trick.
Thanks, David and Michael. I will drop the virtio-balloon specific
unregister logic and adopt this approach.
Per the earlier feedback to keep these fixes independent, I'll format
v2 as a 3-part patch series:
[PATCH v2 1/3] mm/page_reporting: use system_freezable_wq
[PATCH v2 2/3] virtio_balloon: fix shrinker UAF during PM freeze
[PATCH v2 3/3] virtio_balloon: fix OOM notifier UAF during PM freeze
I'll send that out shortly.
Thanks,
Link