xen-pciback: rate limit error messages from xen_pcibk_enable_msi{,x}()

... as being guest triggerable (e.g. by invoking
XEN_PCI_OP_enable_msi{,x} on a device not being MSI/MSI-X capable).

This is CVE-2013-0231 / XSA-43.

Also make the two messages uniform in both their wording and severity.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
Jan Beulich 2013-02-06 10:30:38 -05:00 committed by Konrad Rzeszutek Wilk
parent 9174adbee4
commit 51ac8893a7

View File

@ -135,7 +135,6 @@ int xen_pcibk_enable_msi(struct xen_pcibk_device *pdev,
struct pci_dev *dev, struct xen_pci_op *op) struct pci_dev *dev, struct xen_pci_op *op)
{ {
struct xen_pcibk_dev_data *dev_data; struct xen_pcibk_dev_data *dev_data;
int otherend = pdev->xdev->otherend_id;
int status; int status;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
@ -144,8 +143,9 @@ int xen_pcibk_enable_msi(struct xen_pcibk_device *pdev,
status = pci_enable_msi(dev); status = pci_enable_msi(dev);
if (status) { if (status) {
printk(KERN_ERR "error enable msi for guest %x status %x\n", pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI for guest %u: err %d\n",
otherend, status); pci_name(dev), pdev->xdev->otherend_id,
status);
op->value = 0; op->value = 0;
return XEN_PCI_ERR_op_failed; return XEN_PCI_ERR_op_failed;
} }
@ -223,10 +223,10 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
pci_name(dev), i, pci_name(dev), i,
op->msix_entries[i].vector); op->msix_entries[i].vector);
} }
} else { } else
printk(KERN_WARNING DRV_NAME ": %s: failed to enable MSI-X: err %d!\n", pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI-X for guest %u: err %d!\n",
pci_name(dev), result); pci_name(dev), pdev->xdev->otherend_id,
} result);
kfree(entries); kfree(entries);
op->value = result; op->value = result;