• Ben Hutchings's avatar
    sfc: Fix IRQ cleanup in case of a probe failure · 1899c111
    Ben Hutchings authored
    The lifetime of an irq_cpu_rmap is odd: we have to allocate it before
    installing IRQ handlers and free it before removing the IRQ handlers.
    As a result of this asymmetry, it was omitted from some failure paths.
    
    On another failure path, we could try to remove IRQ handlers we
    had not yet installed.
    
    Move the irq_cpu_rmap allocation and freeing alongside IRQ handler
    installation and removal, in efx_nic_{init,fini}_interrupts().
    Count the number of IRQ handlers successfully installed and only
    remove those on the failure path.
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    1899c111
nic.c 65.2 KB