summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinghai Lu2009-11-25 03:21:21 +0100
committerJesse Barnes2009-12-05 00:47:50 +0100
commitbb965401fd2afa26629b244e7bb2e48a117dc238 (patch)
tree72627abb2f9f65ced77c6c10709e42948fed0592
parentPCI: add debug output for DMA mask info (diff)
downloadkernel-qcow2-linux-bb965401fd2afa26629b244e7bb2e48a117dc238.tar.gz
kernel-qcow2-linux-bb965401fd2afa26629b244e7bb2e48a117dc238.tar.xz
kernel-qcow2-linux-bb965401fd2afa26629b244e7bb2e48a117dc238.zip
PCI: show dma_mask bits in /sys
So we can catch if the driver sets an incorrect dma_mask. Reviewed-by: Grant Grundler <grundler@google.com> Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r--drivers/pci/pci-sysfs.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 0fa707e2a0f8..c5df94e86678 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -184,6 +184,21 @@ numa_node_show(struct device *dev, struct device_attribute *attr, char *buf)
#endif
static ssize_t
+dma_mask_bits_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ struct pci_dev *pdev = to_pci_dev(dev);
+
+ return sprintf (buf, "%d\n", fls64(pdev->dma_mask));
+}
+
+static ssize_t
+consistent_dma_mask_bits_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ return sprintf (buf, "%d\n", fls64(dev->coherent_dma_mask));
+}
+
+static ssize_t
msi_bus_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct pci_dev *pdev = to_pci_dev(dev);
@@ -314,6 +329,8 @@ struct device_attribute pci_dev_attrs[] = {
#ifdef CONFIG_NUMA
__ATTR_RO(numa_node),
#endif
+ __ATTR_RO(dma_mask_bits),
+ __ATTR_RO(consistent_dma_mask_bits),
__ATTR(enable, 0600, is_enabled_show, is_enabled_store),
__ATTR(broken_parity_status,(S_IRUGO|S_IWUSR),
broken_parity_status_show,broken_parity_status_store),