]> git.proxmox.com Git - mirror_ubuntu-focal-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)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 5 Nov 2021 08:12:42 +0000 (09:12 +0100)
commitfec4fe8dd831077fcb7ec94ccc65a6a1ead94978
tree28d1a7c9c598c412cd2c5da6a50ec704e4501814
parent9095136a8e64c26d7c6cad7623732c0e25969c28
enetc: Fix illegal access when reading affinity_hint

BugLink: https://bugs.launchpad.net/bugs/1947886
[ Upstream commit 7237a494decfa17d0b9d0076e6cee3235719de90 ]

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: d4fd0404c1c9 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
drivers/net/ethernet/freescale/enetc/enetc.c