Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Feb 2023 14:45:36 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 269133] bnxt(4):  BCM57416 - HWRM_CFA_L2_SET_RX_MASK command returned RESOURCE_ALLOC_ERROR error
Message-ID:  <bug-269133-227-x3D1t5ylgk@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-269133-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-269133-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D269133

--- 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.)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-269133-227-x3D1t5ylgk>