patch-2.4.21 linux-2.4.21/arch/alpha/kernel/irq.c
Next file: linux-2.4.21/arch/alpha/kernel/irq_alpha.c
Previous file: linux-2.4.21/arch/alpha/kernel/gct.c
Back to the patch index
Back to the overall index
- Lines: 57
- Date:
2003-06-13 07:51:29.000000000 -0700
- Orig file:
linux-2.4.20/arch/alpha/kernel/irq.c
- Orig date:
2001-09-17 13:16:30.000000000 -0700
diff -urN linux-2.4.20/arch/alpha/kernel/irq.c linux-2.4.21/arch/alpha/kernel/irq.c
@@ -374,15 +374,17 @@
irq_dir[irq] = proc_mkdir(name, root_irq_dir);
#ifdef CONFIG_SMP
- /* create /proc/irq/1234/smp_affinity */
- entry = create_proc_entry("smp_affinity", 0600, irq_dir[irq]);
+ if (irq_desc[irq].handler->set_affinity) {
+ /* create /proc/irq/1234/smp_affinity */
+ entry = create_proc_entry("smp_affinity", 0600, irq_dir[irq]);
+
+ entry->nlink = 1;
+ entry->data = (void *)(long)irq;
+ entry->read_proc = irq_affinity_read_proc;
+ entry->write_proc = irq_affinity_write_proc;
- entry->nlink = 1;
- entry->data = (void *)(long)irq;
- entry->read_proc = irq_affinity_read_proc;
- entry->write_proc = irq_affinity_write_proc;
-
- smp_affinity_entry[irq] = entry;
+ smp_affinity_entry[irq] = entry;
+ }
#endif
}
@@ -410,12 +412,16 @@
#endif
/*
- * Create entries for all existing IRQs.
+ * Create entries for all existing IRQs. If the number of IRQs
+ * is greater the 1/4 the total dynamic inode space for /proc,
+ * don't pollute the inode space
*/
- for (i = 0; i < NR_IRQS; i++) {
- if (irq_desc[i].handler == &no_irq_type)
- continue;
- register_irq_proc(i);
+ if (ACTUAL_NR_IRQS < (PROC_NDYNAMIC / 4)) {
+ for (i = 0; i < ACTUAL_NR_IRQS; i++) {
+ if (irq_desc[i].handler == &no_irq_type)
+ continue;
+ register_irq_proc(i);
+ }
}
}
@@ -534,7 +540,7 @@
*p++ = '\n';
#endif
- for (i = 0; i < NR_IRQS; i++) {
+ for (i = 0; i < ACTUAL_NR_IRQS; i++) {
action = irq_desc[i].action;
if (!action)
continue;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)