From: Chris Mason Date: Thu, 4 Aug 2011 18:44:09 +0000 (-0500) Subject: export list of msi irqs into sysfs X-Git-Tag: v2.6.39-400.9.0~935 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ad2fba9aa76ab9dfb79357ee80d4836682799c63;p=users%2Fjedix%2Flinux-maple.git export list of msi irqs into sysfs Signed-off-by: Chris Mason Signed-off-by: Dave Kleikamp --- diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 7bcf12adced7..92d9463fa2b2 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -26,6 +26,7 @@ #include #include #include +#include #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),