]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
export list of msi irqs into sysfs
authorChris Mason <chris.mason@oracle.com>
Thu, 4 Aug 2011 18:44:09 +0000 (13:44 -0500)
committerGuru Anbalagane <guru.anbalagane@oracle.com>
Wed, 24 Aug 2011 18:49:39 +0000 (11:49 -0700)
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
drivers/pci/pci-sysfs.c

index 7bcf12adced7249674ec931ea034066fb6ef3d64..92d9463fa2b20855290d78203d1652ed71635728 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/security.h>
 #include <linux/pci-aspm.h>
 #include <linux/slab.h>
+#include <linux/msi.h>
 #include "pci.h"
 
 static int sysfs_initialized;  /* = 0 */
@@ -281,6 +282,24 @@ msi_bus_store(struct device *dev, struct device_attribute *attr,
        return count;
 }
 
+#ifdef CONFIG_PCI_MSI
+static ssize_t
+msi_irqs_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+       struct pci_dev *pdev = to_pci_dev(dev);
+       struct msi_desc *entry;
+       ssize_t ret = 0;
+
+       list_for_each_entry(entry, &pdev->msi_list, list)
+               ret += sprintf(buf + ret, "%u ", entry->irq);
+
+       if (ret)
+               ret += sprintf(buf + ret, "\n");
+
+       return ret;
+}
+#endif
+
 #ifdef CONFIG_HOTPLUG
 static DEFINE_MUTEX(pci_remove_rescan_mutex);
 static ssize_t bus_rescan_store(struct bus_type *bus, const char *buf,
@@ -393,6 +412,9 @@ struct device_attribute pci_dev_attrs[] = {
        __ATTR(broken_parity_status,(S_IRUGO|S_IWUSR),
                broken_parity_status_show,broken_parity_status_store),
        __ATTR(msi_bus, 0644, msi_bus_show, msi_bus_store),
+#ifdef CONFIG_PCI_MSI
+       __ATTR_RO(msi_irqs),
+#endif
 #ifdef CONFIG_HOTPLUG
        __ATTR(remove, (S_IWUSR|S_IWGRP), NULL, remove_store),
        __ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, dev_rescan_store),