[Bug 269133] bnxt(4): BCM57416 - HWRM_CFA_L2_SET_RX_MASK command returned RESOURCE_ALLOC_ERROR error

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 10 Feb 2023 14:45:36 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269133

--- Comment #5 from Mark Johnston <markj@FreeBSD.org> ---
(In reply to Santiago Martinez from comment #4)
I think the problem is this: when a new vlan tag is registered,
bnxt_vlan_register() adds a new tag structure to the vlan_tags list.

After adding a vlan tag, iflib will reinitialize the interface, see
iflib_vlan_register()->iflib_init_locked()->IFDI_INIT.

Then bnxt_init() will call bnxt_hwrm_set_filter(), which initializes all the
tags on the list.

Suppose all of this happens twice.  bnxt_hwrm_set_filter() will encounter an
already-initialized tag and trigger the EDOOFUS error.

I suspect that bnxt_init() should unregister all of its filters during
reinitialization.  That is, bnxt_init() should call bnxt_hwrm_free_filter()
before calling bnxt_clear_ids().

(I'm not very familiar with this driver though, so this might not work.)

-- 
You are receiving this mail because:
You are the assignee for the bug.