HomeFreeBSD

qlnxe: Avoid reinitializing the interface when it is already initialized

Description

qlnxe: Avoid reinitializing the interface when it is already initialized

qlnx_init_locked() unconditionally uninitialize the interface thus is
actually reinitializing the interface. Well the init routine qlnx_init()
is to initialize the interface by net stack when assigned with the first
inet or inet6 address. The ioctl SIOCSIFADDR for the first inet6 address
is handled by ether_ioctl() thus the interface is reinitialized no matter
it was initialized or not.

Add a driver status check for that to avoid reinitializing. Further plan
is removing SIOCSIFADDR ioctl from the driver and let ether_ioctl() handle
it.

Reviewed by: kbowling
MFC after: 5 days
Differential Revision: https://reviews.freebsd.org/D54887

(cherry picked from commit c10e6bc0f0079e90cb484323ad71d437f1882422)
(cherry picked from commit 8731ff4871d5397bae65bf184c44629a52c0e97b)

Details

Provenance
zleiAuthored on Feb 6 2026, 5:52 PM
Reviewer
kbowling
Differential Revision
D54887: qlnxe: Avoid reinitializing the interface when it is already initialized
Parents
rG6e5b12acb66a: qlnxe: Prevent potential concurrency between ioctls
Branches
Unknown
Tags
Unknown