forked from Minki/linux
xen/pciback: Print out the MSI/MSI-X (PIRQ) values
If the verbose_request is set (and loglevel high enough), print out the MSI/MSI-X values that are sent to the guest. This should aid in debugging issues. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
e17ab35f05
commit
c288b67b9b
@ -16,6 +16,9 @@ int pciback_enable_msi(struct pciback_device *pdev,
|
|||||||
int otherend = pdev->xdev->otherend_id;
|
int otherend = pdev->xdev->otherend_id;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: enable MSI\n", pci_name(dev));
|
||||||
|
|
||||||
status = pci_enable_msi(dev);
|
status = pci_enable_msi(dev);
|
||||||
|
|
||||||
if (status) {
|
if (status) {
|
||||||
@ -29,9 +32,14 @@ int pciback_enable_msi(struct pciback_device *pdev,
|
|||||||
* the local domain's IRQ number. */
|
* the local domain's IRQ number. */
|
||||||
|
|
||||||
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
|
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: MSI: %d\n", pci_name(dev),
|
||||||
|
op->value);
|
||||||
|
|
||||||
dev_data = pci_get_drvdata(dev);
|
dev_data = pci_get_drvdata(dev);
|
||||||
if (dev_data)
|
if (dev_data)
|
||||||
dev_data->ack_intr = 0;
|
dev_data->ack_intr = 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,9 +47,16 @@ int pciback_disable_msi(struct pciback_device *pdev,
|
|||||||
struct pci_dev *dev, struct xen_pci_op *op)
|
struct pci_dev *dev, struct xen_pci_op *op)
|
||||||
{
|
{
|
||||||
struct pciback_dev_data *dev_data;
|
struct pciback_dev_data *dev_data;
|
||||||
|
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: disable MSI\n", pci_name(dev));
|
||||||
|
|
||||||
pci_disable_msi(dev);
|
pci_disable_msi(dev);
|
||||||
|
|
||||||
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
|
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: MSI: %d\n", pci_name(dev),
|
||||||
|
op->value);
|
||||||
dev_data = pci_get_drvdata(dev);
|
dev_data = pci_get_drvdata(dev);
|
||||||
if (dev_data)
|
if (dev_data)
|
||||||
dev_data->ack_intr = 1;
|
dev_data->ack_intr = 1;
|
||||||
@ -55,6 +70,10 @@ int pciback_enable_msix(struct pciback_device *pdev,
|
|||||||
int i, result;
|
int i, result;
|
||||||
struct msix_entry *entries;
|
struct msix_entry *entries;
|
||||||
|
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: enable MSI-X\n",
|
||||||
|
pci_name(dev));
|
||||||
|
|
||||||
if (op->value > SH_INFO_MAX_VEC)
|
if (op->value > SH_INFO_MAX_VEC)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
@ -75,6 +94,11 @@ int pciback_enable_msix(struct pciback_device *pdev,
|
|||||||
if (entries[i].vector)
|
if (entries[i].vector)
|
||||||
op->msix_entries[i].vector =
|
op->msix_entries[i].vector =
|
||||||
xen_pirq_from_irq(entries[i].vector);
|
xen_pirq_from_irq(entries[i].vector);
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: " \
|
||||||
|
"MSI-X[%d]: %d\n",
|
||||||
|
pci_name(dev), i,
|
||||||
|
op->msix_entries[i].vector);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
printk(KERN_WARNING "pciback: %s: failed to enable MSI-X: err %d!\n",
|
printk(KERN_WARNING "pciback: %s: failed to enable MSI-X: err %d!\n",
|
||||||
@ -95,6 +119,10 @@ int pciback_disable_msix(struct pciback_device *pdev,
|
|||||||
{
|
{
|
||||||
struct pciback_dev_data *dev_data;
|
struct pciback_dev_data *dev_data;
|
||||||
|
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: disable MSI-X\n",
|
||||||
|
pci_name(dev));
|
||||||
|
|
||||||
pci_disable_msix(dev);
|
pci_disable_msix(dev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -102,6 +130,9 @@ int pciback_disable_msix(struct pciback_device *pdev,
|
|||||||
* an undefined IRQ value of zero.
|
* an undefined IRQ value of zero.
|
||||||
*/
|
*/
|
||||||
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
|
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
|
||||||
|
if (unlikely(verbose_request))
|
||||||
|
printk(KERN_DEBUG "pciback: %s: MSI-X: %d\n", pci_name(dev),
|
||||||
|
op->value);
|
||||||
dev_data = pci_get_drvdata(dev);
|
dev_data = pci_get_drvdata(dev);
|
||||||
if (dev_data)
|
if (dev_data)
|
||||||
dev_data->ack_intr = 1;
|
dev_data->ack_intr = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user