diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-06-19 08:26:46 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-06-26 15:10:27 -0400 |
commit | 386aa051fb4b6298c23996e68b7c92f186e484b6 (patch) | |
tree | edb3cef554b84278ba9c405a9f2ba1574d0638c1 /arch/s390 | |
parent | a9a5250cc650b54623827386247b85ba2aeeecc7 (diff) |
s390/pci: remove per device debug attribute
The per-pci-device 'debug' attribute is ill defined. For each device
it prints the same information, the adapter interrupt bit vector for
irq numbers 0 & 1, the start of the global interrupt summary vector
and the global irq retries counter. Just remove the attribute and
the associated code.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/pci.h | 1 | ||||
-rw-r--r-- | arch/s390/pci/pci.c | 13 | ||||
-rw-r--r-- | arch/s390/pci/pci_debug.c | 29 |
3 files changed, 0 insertions, 43 deletions
diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h index be41f4f885ce..6e577ba0e5da 100644 --- a/arch/s390/include/asm/pci.h +++ b/arch/s390/include/asm/pci.h | |||
@@ -120,7 +120,6 @@ struct zpci_dev { | |||
120 | 120 | ||
121 | struct dentry *debugfs_dev; | 121 | struct dentry *debugfs_dev; |
122 | struct dentry *debugfs_perf; | 122 | struct dentry *debugfs_perf; |
123 | struct dentry *debugfs_debug; | ||
124 | }; | 123 | }; |
125 | 124 | ||
126 | struct pci_hp_callback_ops { | 125 | struct pci_hp_callback_ops { |
diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index 628769b91b97..51c3ca86bd05 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c | |||
@@ -85,8 +85,6 @@ static struct intr_bucket *bucket; | |||
85 | /* Adapter local summary indicator */ | 85 | /* Adapter local summary indicator */ |
86 | static u8 *zpci_irq_si; | 86 | static u8 *zpci_irq_si; |
87 | 87 | ||
88 | static atomic_t irq_retries = ATOMIC_INIT(0); | ||
89 | |||
90 | /* I/O Map */ | 88 | /* I/O Map */ |
91 | static DEFINE_SPINLOCK(zpci_iomap_lock); | 89 | static DEFINE_SPINLOCK(zpci_iomap_lock); |
92 | static DECLARE_BITMAP(zpci_iomap, ZPCI_IOMAP_MAX_ENTRIES); | 90 | static DECLARE_BITMAP(zpci_iomap, ZPCI_IOMAP_MAX_ENTRIES); |
@@ -452,7 +450,6 @@ scan: | |||
452 | max = aisb_max; | 450 | max = aisb_max; |
453 | sbit = find_first_bit_left(bucket->aisb, max); | 451 | sbit = find_first_bit_left(bucket->aisb, max); |
454 | if (sbit != max) { | 452 | if (sbit != max) { |
455 | atomic_inc(&irq_retries); | ||
456 | rescan++; | 453 | rescan++; |
457 | goto scan; | 454 | goto scan; |
458 | } | 455 | } |
@@ -751,16 +748,6 @@ static void zpci_irq_exit(void) | |||
751 | kfree(bucket); | 748 | kfree(bucket); |
752 | } | 749 | } |
753 | 750 | ||
754 | void zpci_debug_info(struct zpci_dev *zdev, struct seq_file *m) | ||
755 | { | ||
756 | if (!zdev) | ||
757 | return; | ||
758 | |||
759 | seq_printf(m, "global irq retries: %u\n", atomic_read(&irq_retries)); | ||
760 | seq_printf(m, "aibv[0]:%016lx aibv[1]:%016lx aisb:%016lx\n", | ||
761 | get_imap(0)->aibv, get_imap(1)->aibv, *bucket->aisb); | ||
762 | } | ||
763 | |||
764 | static struct resource *zpci_alloc_bus_resource(unsigned long start, unsigned long size, | 751 | static struct resource *zpci_alloc_bus_resource(unsigned long start, unsigned long size, |
765 | unsigned long flags, int domain) | 752 | unsigned long flags, int domain) |
766 | { | 753 | { |
diff --git a/arch/s390/pci/pci_debug.c b/arch/s390/pci/pci_debug.c index 771b82359af4..75c69b402e05 100644 --- a/arch/s390/pci/pci_debug.c +++ b/arch/s390/pci/pci_debug.c | |||
@@ -115,27 +115,6 @@ static const struct file_operations debugfs_pci_perf_fops = { | |||
115 | .release = single_release, | 115 | .release = single_release, |
116 | }; | 116 | }; |
117 | 117 | ||
118 | static int pci_debug_show(struct seq_file *m, void *v) | ||
119 | { | ||
120 | struct zpci_dev *zdev = m->private; | ||
121 | |||
122 | zpci_debug_info(zdev, m); | ||
123 | return 0; | ||
124 | } | ||
125 | |||
126 | static int pci_debug_seq_open(struct inode *inode, struct file *filp) | ||
127 | { | ||
128 | return single_open(filp, pci_debug_show, | ||
129 | file_inode(filp)->i_private); | ||
130 | } | ||
131 | |||
132 | static const struct file_operations debugfs_pci_debug_fops = { | ||
133 | .open = pci_debug_seq_open, | ||
134 | .read = seq_read, | ||
135 | .llseek = seq_lseek, | ||
136 | .release = single_release, | ||
137 | }; | ||
138 | |||
139 | void zpci_debug_init_device(struct zpci_dev *zdev) | 118 | void zpci_debug_init_device(struct zpci_dev *zdev) |
140 | { | 119 | { |
141 | zdev->debugfs_dev = debugfs_create_dir(dev_name(&zdev->pdev->dev), | 120 | zdev->debugfs_dev = debugfs_create_dir(dev_name(&zdev->pdev->dev), |
@@ -149,19 +128,11 @@ void zpci_debug_init_device(struct zpci_dev *zdev) | |||
149 | &debugfs_pci_perf_fops); | 128 | &debugfs_pci_perf_fops); |
150 | if (IS_ERR(zdev->debugfs_perf)) | 129 | if (IS_ERR(zdev->debugfs_perf)) |
151 | zdev->debugfs_perf = NULL; | 130 | zdev->debugfs_perf = NULL; |
152 | |||
153 | zdev->debugfs_debug = debugfs_create_file("debug", | ||
154 | S_IFREG | S_IRUGO | S_IWUSR, | ||
155 | zdev->debugfs_dev, zdev, | ||
156 | &debugfs_pci_debug_fops); | ||
157 | if (IS_ERR(zdev->debugfs_debug)) | ||
158 | zdev->debugfs_debug = NULL; | ||
159 | } | 131 | } |
160 | 132 | ||
161 | void zpci_debug_exit_device(struct zpci_dev *zdev) | 133 | void zpci_debug_exit_device(struct zpci_dev *zdev) |
162 | { | 134 | { |
163 | debugfs_remove(zdev->debugfs_perf); | 135 | debugfs_remove(zdev->debugfs_perf); |
164 | debugfs_remove(zdev->debugfs_debug); | ||
165 | debugfs_remove(zdev->debugfs_dev); | 136 | debugfs_remove(zdev->debugfs_dev); |
166 | } | 137 | } |
167 | 138 | ||