Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'stable/for-linus-3.8-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen

Pull Xen fixes from Konrad Rzeszutek Wilk:
"This has two fixes. One is a security fix wherein we would spam the
kernel printk buffer if one of the guests was misbehaving. The other
is much tamer and it was us only checking for one type of error from
the IRQ subsystem (when allocating new IRQs) instead of for all of
them.

- Fix an IRQ allocation where we only check for a specific error (-1).
- CVE-2013-0231 / XSA-43. Make xen-pciback rate limit error messages
from xen_pcibk_enable_msi{,x}()"

* tag 'stable/for-linus-3.8-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
xen: fix error handling path if xen_allocate_irq_dynamic fails
xen-pciback: rate limit error messages from xen_pcibk_enable_msi{,x}()

+9 -9
+2 -2
drivers/xen/events.c
··· 840 840 841 841 if (irq == -1) { 842 842 irq = xen_allocate_irq_dynamic(); 843 - if (irq == -1) 843 + if (irq < 0) 844 844 goto out; 845 845 846 846 irq_set_chip_and_handler_name(irq, &xen_dynamic_chip, ··· 944 944 945 945 if (irq == -1) { 946 946 irq = xen_allocate_irq_dynamic(); 947 - if (irq == -1) 947 + if (irq < 0) 948 948 goto out; 949 949 950 950 irq_set_chip_and_handler_name(irq, &xen_percpu_chip,
+7 -7
drivers/xen/xen-pciback/pciback_ops.c
··· 135 135 struct pci_dev *dev, struct xen_pci_op *op) 136 136 { 137 137 struct xen_pcibk_dev_data *dev_data; 138 - int otherend = pdev->xdev->otherend_id; 139 138 int status; 140 139 141 140 if (unlikely(verbose_request)) ··· 143 144 status = pci_enable_msi(dev); 144 145 145 146 if (status) { 146 - printk(KERN_ERR "error enable msi for guest %x status %x\n", 147 - otherend, status); 147 + pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI for guest %u: err %d\n", 148 + pci_name(dev), pdev->xdev->otherend_id, 149 + status); 148 150 op->value = 0; 149 151 return XEN_PCI_ERR_op_failed; 150 152 } ··· 223 223 pci_name(dev), i, 224 224 op->msix_entries[i].vector); 225 225 } 226 - } else { 227 - printk(KERN_WARNING DRV_NAME ": %s: failed to enable MSI-X: err %d!\n", 228 - pci_name(dev), result); 229 - } 226 + } else 227 + pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI-X for guest %u: err %d!\n", 228 + pci_name(dev), pdev->xdev->otherend_id, 229 + result); 230 230 kfree(entries); 231 231 232 232 op->value = result;