Re: [Xen-devel] [PATCH] xen: add support for MSI message groups

From: Boris Ostrovsky
Date: Thu Feb 27 2014 - 11:32:02 EST


On 02/27/2014 10:45 AM, Roger Pau Monnà wrote:

@@ -291,7 +290,10 @@ static int xen_initdom_setup_msi_irqs(struct
pci_dev *dev, int nvec, int type)
(pci_domain_nr(dev->bus) << 16);
map_irq.devfn = dev->devfn;
- if (type == PCI_CAP_ID_MSIX) {
+ if (type == PCI_CAP_ID_MSI && nvec > 1) {
+ map_irq.type = MAP_PIRQ_TYPE_MULTI_MSI;
+ map_irq.entry_nr = nvec;

Are we overloading entry_nr here with a different meaning? I thought it
was meant to be entry number (in MSI-X table for example), not number of
entries.
In the case of MSI message groups (MAP_PIRQ_TYPE_MULTI_MSI) entry_nr is
the number of vectors to setup, so yes, it's an overloading of entry_nr.

Then I think we should at least make a note of this in physdev.h. (Or maybe even make entry_nr a union with nvec or some such, although that would look rather hacky).

....


index 42721d1..eb13326d 100644
--- a/include/xen/interface/physdev.h
+++ b/include/xen/interface/physdev.h
@@ -131,6 +131,7 @@ struct physdev_irq {
#define MAP_PIRQ_TYPE_GSI 0x1
#define MAP_PIRQ_TYPE_UNKNOWN 0x2
#define MAP_PIRQ_TYPE_MSI_SEG 0x3
+#define MAP_PIRQ_TYPE_MULTI_MSI 0x4
Formatting.
I don't get the formatting problem, it's the same formatting that the
other MAP_PIRQ_TYPE_* use, and if the patch is applied formatting is OK.


That's because my client messed up whitespaces. You can look for example at https://lkml.org/lkml/2014/2/26/352 to see the extra tab.

-boris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/