Skip to content

Commit c7718e5

Browse files
Jeff XieKAGA-KOKO
authored andcommitted
genirq/proc: Correctly set file permissions for affinity control files
The kernel already knows at the time of interrupt allocation whether affinity of an interrupt can be controlled by userspace or not. It still creates all related procfs control files with read/write permissions. That's inconsistent and non-intuitive for system administrators and tools. Therefore set the file permissions to read-only for such interrupts. [ tglx: Massage change log, fixed UP build ] Signed-off-by: Jeff Xie <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/all/[email protected]
1 parent 64b6d1d commit c7718e5

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

kernel/irq/proc.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,16 +362,21 @@ void register_irq_proc(unsigned int irq, struct irq_desc *desc)
362362
goto out_unlock;
363363

364364
#ifdef CONFIG_SMP
365+
umode_t umode = S_IRUGO;
366+
367+
if (irq_can_set_affinity_usr(desc->irq_data.irq))
368+
umode |= S_IWUSR;
369+
365370
/* create /proc/irq/<irq>/smp_affinity */
366-
proc_create_data("smp_affinity", 0644, desc->dir,
371+
proc_create_data("smp_affinity", umode, desc->dir,
367372
&irq_affinity_proc_ops, irqp);
368373

369374
/* create /proc/irq/<irq>/affinity_hint */
370375
proc_create_single_data("affinity_hint", 0444, desc->dir,
371376
irq_affinity_hint_proc_show, irqp);
372377

373378
/* create /proc/irq/<irq>/smp_affinity_list */
374-
proc_create_data("smp_affinity_list", 0644, desc->dir,
379+
proc_create_data("smp_affinity_list", umode, desc->dir,
375380
&irq_affinity_list_proc_ops, irqp);
376381

377382
proc_create_single_data("node", 0444, desc->dir, irq_node_proc_show,

0 commit comments

Comments
 (0)