HomeFreeBSD

em: fix a null de-reference in em_free_pci_resources

Description

em: fix a null de-reference in em_free_pci_resources

A failure in iflib_device_register() can result in
em_free_pci_resources() being called after receive queues have already
been freed. In particular, a failure to allocate IRQ resources will goto
fail_queues, where IFDI_QUEUES_FREE() will be called via
iflib_tx_structures_free(), preceding the call to IFDI_DETACH().

Cope with this by checking adapter->rx_queues before dereferencing it.
A similar check is present in ixgbe(4) and ixl(4).

MFC after: 1 week
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D27260

Details

Provenance
mhorneAuthored on
Differential Revision
D27260: em: fix a null de-reference in em_free_pci_resources
Parents
rS368280: addr2line: rework check_range conditions
Branches
Unknown
Tags
Unknown