From: Jan Beulich Date: Fri, 24 Jan 2014 12:41:36 +0000 (+0100) Subject: x86: PHYSDEVOP_{prepare,release}_msix are privileged X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5651 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9c7e789a1b60b6114e0b1ef16dff95f03f532fb5;p=xen.git x86: PHYSDEVOP_{prepare,release}_msix are privileged Yet this wasn't being enforced. This is XSA-87. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c index 1040b2cc86..bc0634c712 100644 --- a/xen/arch/x86/physdev.c +++ b/xen/arch/x86/physdev.c @@ -640,7 +640,10 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) if ( copy_from_guest(&dev, arg, 1) ) ret = -EFAULT; else - ret = pci_prepare_msix(dev.seg, dev.bus, dev.devfn, + ret = xsm_resource_setup_pci(XSM_PRIV, + (dev.seg << 16) | (dev.bus << 8) | + dev.devfn) ?: + pci_prepare_msix(dev.seg, dev.bus, dev.devfn, cmd != PHYSDEVOP_prepare_msix); break; }