]> git.baikalelectronics.ru Git - kernel.git/commit
enetc: Fix illegal access when reading affinity_hint
authorClaudiu Manoil <claudiu.manoil@nxp.com>
Fri, 17 Sep 2021 10:22:05 +0000 (13:22 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Sep 2021 11:10:26 +0000 (12:10 +0100)
commit66ab4b32e01ef7c72498e0f561aca642f1a9b7e2
treef5db6ca21de01b515882da7591491784a05e39f8
parent868c27182cef8c7e5c0196efb6570692e30a7a9f
enetc: Fix illegal access when reading affinity_hint

irq_set_affinity_hit() stores a reference to the cpumask_t
parameter in the irq descriptor, and that reference can be
accessed later from irq_affinity_hint_proc_show(). Since
the cpu_mask parameter passed to irq_set_affinity_hit() has
only temporary storage (it's on the stack memory), later
accesses to it are illegal. Thus reads from the corresponding
procfs affinity_hint file can result in paging request oops.

The issue is fixed by the get_cpu_mask() helper, which provides
a permanent storage for the cpumask_t parameter.

Fixes: 40a200dc9f33 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/enetc/enetc.c