diff options
Diffstat (limited to 'sysutils/xen-tools/files/xsa131-qemut-3.patch')
-rw-r--r-- | sysutils/xen-tools/files/xsa131-qemut-3.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sysutils/xen-tools/files/xsa131-qemut-3.patch b/sysutils/xen-tools/files/xsa131-qemut-3.patch new file mode 100644 index 000000000000..a50b2392b7ac --- /dev/null +++ b/sysutils/xen-tools/files/xsa131-qemut-3.patch @@ -0,0 +1,22 @@ +xen/pt: correctly handle PM status bit + +xen_pt_pmcsr_reg_write() needs an adjustment to deal with the RW1C +nature of the not passed through bit 15 (PCI_PM_CTRL_PME_STATUS). + +This is a preparatory patch for XSA-131. + +Signed-off-by: Jan Beulich <jbeulich@suse.com> +Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> + +--- a/hw/pass-through.c ++++ b/hw/pass-through.c +@@ -3786,7 +3786,8 @@ static int pt_pmcsr_reg_write(struct pt_ + + /* create value for writing to I/O device register */ + throughable_mask = ~reg->emu_mask & valid_mask; +- *value = PT_MERGE_VALUE(*value, dev_value, throughable_mask); ++ *value = PT_MERGE_VALUE(*value, dev_value & ~PCI_PM_CTRL_PME_STATUS, ++ throughable_mask); + + if (!ptdev->power_mgmt) + return 0; |