On Mon, May 26, 2025 at 09:53:02PM +0100, Andrew Cooper wrote: > x86_merge_dr6() is not a no-op when 0 is passed in; it will discard the > previously latched breakpoint bits. > > The combination of do_debug()'s manual call to x86_merge_dr6() for external > debuggers, and pv_inject_DB() calling pv_inject_event(), results in two > x86_merge_dr6() calls. > > Feed the same pending_dbg in the second time. This makes pv_inject_event()'s > update of dr6 effectively a no-op, retaining the correct breakpoint bits. > > Fixes: db39fa4b27ea ("x86/pv: Fix merging of new status bits into %dr6") > Reported-by: Manuel Bouyer <bou...@antioche.eu.org> > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
Acked-by: Roger Pau Monné <roger....@citrix.com> Thanks, Roger.