• Claudiu Manoil's avatar
    enetc: Fix illegal access when reading affinity_hint · 7237a494
    Claudiu Manoil authored
    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: d4fd0404 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
    Signed-off-by: default avatarClaudiu Manoil <claudiu.manoil@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7237a494
enetc.c 63.8 KB