One gentle reminder in all this, kgalazka@ is under mentorship and
should be included in especially ixl and ice work and follow ups so we
can release him to make all these mistakes and fixes :)

Regards,
Kevin


On Mon, Jul 28, 2025 at 12:01 PM Kristof Provost <k...@freebsd.org> wrote:
>
> That’s confirmed, that has indeed fixed the arm64 LINT build errors.
> Thanks des.
>
> We’re still failing riscv and i386, but those are different errors.
>
> The riscv one is new (or I haven’t seen it before, anyway):
>
> --- all_subdir_usr.bin ---
> ld: error: undefined symbol: llvm::DisableABIBreakingChecks
> >>> referenced by ClangScanDeps.cpp
> >>>               ClangScanDeps.pieo:(llvm::VerifyDisableABIBreakingChecks)
> c++: error: linker command failed with exit code 1 (use -v to see invocation)
>
> i386 has been failing for a while:
>
> --- all_subdir_sbin/recoverdisk ---
> /usr/src/sbin/recoverdisk/recoverdisk.c:830:38: error: comparison of integers 
> of different signs: 'unsigned int' and 'time_t' (aka 'int') 
> [-Werror,-Wsign-compare]
> --- all_subdir_usr.bin ---
> --- uuencode.o ---
> cc -target i386-unknown-freebsd15.0 --sysroot=/usr/obj/usr/src/i386.i386/tmp 
> -B/usr/obj/usr/src/i386.i386/tmp/usr/bin  -O2 -pipe -fno-common   -g -gz=zlib 
> -MD  -MF.depend.uuencode.o -MTuu
> encode.o -std=gnu17 -Wno-format-zero-length -fstack-protector-strong 
> -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter 
> -Wstrict-prototypes -Wmissing-prototypes -Wpoi
> nter-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow 
> -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs 
> -Wold-style-definition -Wno-pointer-sign -Wdate-t
> ime -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body 
> -Wno-string-plus-int -Wno-unused-const-variable 
> -Wno-error=unused-but-set-parameter -Wno-error=cast-function-type-misma
> tch  -Qunused-arguments     -c /usr/src/usr.bin/bintrans/uuencode.c -o 
> uuencode.o
> --- all_subdir_sbin ---
>   830 |                 if (unsaved && (t_save + snapshot) < t_now) {
>       |                                 ~~~~~~~~~~~~~~~~~  ^ ~~~~~
> 1 error generated.
> *** [recoverdisk.o] Error code 1
>
> —
> Kristof
>
> On 28 Jul 2025, at 19:45, Warner Losh wrote:
>
> I think DES may have just fixed this. Can you confirm?
>
> Warner
>
> On Mon, Jul 28, 2025 at 3:23 AM Kristof Provost k...@freebsd.org wrote:
>
> I’m not sure if it’s this specific commit or another one in the recent 
> dev/ice updates, but the arm64 LINT-FDT, LINT-ACPI and LINT builds all fail.
>
> This is from arm64-LINT:
>
>     ld: error: undefined symbol: ice_iov_attach
>     >>> referenced by if_ice_iflib.c:859 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:859)
>     >>>               if_ice_iflib.o:(ice_if_attach_post)
>
>     ld: error: undefined symbol: ice_iov_detach
>     >>> referenced by if_ice_iflib.c:989 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:989)
>     >>>               if_ice_iflib.o:(ice_if_detach)
>     >>> referenced by if_ice_iflib.c:2323 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:2323)
>     >>>               if_ice_iflib.o:(ice_if_update_admin_status)
>     >>> referenced by if_ice_iflib.c:2376 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:2376)
>     >>>               if_ice_iflib.o:(ice_transition_safe_mode)
>
>     ld: error: undefined symbol: ice_iov_add_vf
>     >>> referenced by if_ice_iflib.c:3464 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:3464)
>     >>>               if_ice_iflib.o:(ice_if_iov_vf_add)
>
>     ld: error: undefined symbol: ice_iov_init
>     >>> referenced by if_ice_iflib.c:3429 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:3429)
>     >>>               if_ice_iflib.o:(ice_if_iov_init)
>
>     ld: error: undefined symbol: ice_iov_uninit
>     >>> referenced by if_ice_iflib.c:3445 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:3445)
>     >>>               if_ice_iflib.o:(ice_if_iov_uninit)
>
>     ld: error: undefined symbol: ice_iov_handle_vflr
>     >>> referenced by if_ice_iflib.c:3480 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:3480)
>     >>>               if_ice_iflib.o:(ice_if_vflr_handle)
>
>     ld: error: undefined symbol: ice_vc_notify_all_vfs_link_state
>     >>> referenced by if_ice_iflib.c:757 
> (/usr/src/sys/dev/ice/if_ice_iflib.c:757)
>     >>>               if_ice_iflib.o:(ice_update_link_status)
>
>     ld: error: undefined symbol: ice_vc_handle_vf_msg
>     >>> referenced by ice_lib.c:2285 (/usr/src/sys/dev/ice/ice_lib.c:2285)
>     >>>               ice_lib.o:(ice_process_ctrlq)
>     *** [kernel.full] Error code 1
>
> —
> Kristof
>
> On 18 Jul 2025, at 21:16, Warner Losh wrote:
>
> The branch main has been updated by imp:
>
> URL: 
> https://cgit.FreeBSD.org/src/commit/?id=430f1acc451c7084d1d5aa7df7e7ecccea1a8b51
>
> commit 430f1acc451c7084d1d5aa7df7e7ecccea1a8b51
> Author: Eric Joyner eric.joy...@intel.com
> AuthorDate: 2024-10-17 22:19:09 +0000
> Commit: Warner Losh i...@freebsd.org
> CommitDate: 2025-07-18 19:16:17 +0000
>
> ice(4): Add MAC filter and VLAN resource limits to VFs
>
> Adds two new parameters to iovctl config for VLAN filter limits and MAC
> filter limits and gives them defaults of 64 and 16, respectively.
>
> These are intended to limit the number of resources that a VF can
> consume so that any one VF cannot starve an other VFs or the PF of
> filters.
>
> Signed-off-by: Eric Joyner <eric.joy...@intel.com>
> Signed-off-by: Krzysztof Galazka <krzysztof.gala...@intel.com>
> Reviewed by: imp
> Pull Request: https://github.com/freebsd/freebsd-src/pull/1573
>
> ________________________________
>
> sys/dev/ice/ice_iov.c | 45 ++++++++++++++++++++++++++++++++++++++++++---
> sys/dev/ice/ice_iov.h | 8 ++++++++
> 2 files changed, 50 insertions(+), 3 deletions(-)
>
> diff --git a/sys/dev/ice/ice_iov.c b/sys/dev/ice/ice_iov.c
> index fc37a0e7679c..e06c7eb56f7a 100644
> --- a/sys/dev/ice/ice_iov.c
> +++ b/sys/dev/ice/ice_iov.c
> @@ -117,6 +117,10 @@ ice_iov_attach(struct ice_softc *sc)
> IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_QUEUES);
> pci_iov_schema_add_uint16(vf_schema, "mirror-src-vsi",
> IOV_SCHEMA_HASDEFAULT, ICE_INVALID_MIRROR_VSI);
>
> pci_iov_schema_add_uint16(vf_schema, "max-vlan-allowed",
>
>     IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_VLAN_LIMIT);
>
> pci_iov_schema_add_uint16(vf_schema, "max-mac-filters",
>
>     IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_FILTER_LIMIT);
>
> error = pci_iov_attach(dev, pf_schema, vf_schema);
> if (error != 0) {
>
> @@ -360,6 +364,9 @@ ice_iov_add_vf(struct ice_softc *sc, uint16_t vfnum, 
> const nvlist_t *params)
>
>   vsi->mirror_src_vsi = nvlist_get_number(params, "mirror-src-vsi");
>
> vf->vlan_limit = nvlist_get_number(params, "max-vlan-allowed");
>
> vf->mac_filter_limit = nvlist_get_number(params, "max-mac-filters");
>
> vf->vf_flags |= VF_FLAG_VLAN_CAP;
>
> /* Create and setup VSI in HW */
>
> @@ -735,10 +742,17 @@ ice_vc_add_eth_addr_msg(struct ice_softc *sc, struct 
> ice_vf *vf, u8 *msg_buf)
> enum virtchnl_status_code v_status = VIRTCHNL_STATUS_SUCCESS;
> struct virtchnl_ether_addr_list *addr_list;
> struct ice_hw *hw = &sc->hw;
>
> u16 added_addr_cnt = 0;
> int error = 0;
>
> addr_list = (struct virtchnl_ether_addr_list *)msg_buf;
>
> if (addr_list->num_elements >
>
>     (vf->mac_filter_limit - vf->mac_filter_cnt)) {
>
>         v_status = VIRTCHNL_STATUS_ERR_NO_MEMORY;
>
>         goto done;
>
> }
>
> for (int i = 0; i < addr_list->num_elements; i++) {
>         u8 *addr = addr_list->list[i].addr;
>
> @@ -767,10 +781,15 @@ ice_vc_add_eth_addr_msg(struct ice_softc *sc, struct 
> ice_vf *vf, u8 *msg_buf)
> "%s: VF-%d: Error adding MAC addr for VSI %d\n",
> func, vf->vf_num, vf->vsi->idx);
> v_status = VIRTCHNL_STATUS_ERR_PARAM;
>
>                 goto done;
>
>                 continue;
>         }
>
>         /* Don't count VF's MAC against its MAC filter limit */
>
>         if (memcmp(addr, vf->mac, ETHER_ADDR_LEN))
>
>                 added_addr_cnt++;
> }
>
> vf->mac_filter_cnt += added_addr_cnt;
>
> done:
> ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_ADD_ETH_ADDR,
> v_status, NULL, 0, NULL);
> @@ -791,6 +810,7 @@ ice_vc_del_eth_addr_msg(struct ice_softc *sc, struct 
> ice_vf *vf, u8 *msg_buf)
> enum virtchnl_status_code v_status = VIRTCHNL_STATUS_SUCCESS;
> struct virtchnl_ether_addr_list *addr_list;
> struct ice_hw *hw = &sc->hw;
>
> u16 deleted_addr_cnt = 0;
> int error = 0;
>
> addr_list = (struct virtchnl_ether_addr_list *)msg_buf;
>
> @@ -802,11 +822,18 @@ ice_vc_del_eth_addr_msg(struct ice_softc *sc, struct 
> ice_vf *vf, u8 *msg_buf)
> "%s: VF-%d: Error removing MAC addr for VSI %d\n",
> func, vf->vf_num, vf->vsi->idx);
> v_status = VIRTCHNL_STATUS_ERR_PARAM;
>
>                 goto done;
>
>                 continue;
>         }
>
>         /* Don't count VF's MAC against its MAC filter limit */
>
>         if (memcmp(addr_list->list[i].addr, vf->mac, ETHER_ADDR_LEN))
>
>                 deleted_addr_cnt++;
> }
>
> -done:
>
> if (deleted_addr_cnt >= vf->mac_filter_cnt)
>
>         vf->mac_filter_cnt = 0;
>
> else
>
>         vf->mac_filter_cnt -= deleted_addr_cnt;
>
> ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_DEL_ETH_ADDR,
>     v_status, NULL, 0, NULL);
>
> }
> @@ -838,6 +865,11 @@ ice_vc_add_vlan_msg(struct ice_softc *sc, struct ice_vf 
> *vf, u8 *msg_buf)
> goto done;
> }
>
> if (vlan_list->num_elements > (vf->vlan_limit - vf->vlan_cnt)) {
>
>         v_status = VIRTCHNL_STATUS_ERR_NO_MEMORY;
>
>         goto done;
>
> }
>
> status = ice_add_vlan_hw_filters(vsi, vlan_list->vlan_id,
>                                 vlan_list->num_elements);
> if (status) {
>
> @@ -849,6 +881,8 @@ ice_vc_add_vlan_msg(struct ice_softc *sc, struct ice_vf 
> *vf, u8 *msg_buf)
> goto done;
> }
>
> vf->vlan_cnt += vlan_list->num_elements;
>
> done:
> ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_ADD_VLAN,
> v_status, NULL, 0, NULL);
> @@ -892,6 +926,11 @@ ice_vc_del_vlan_msg(struct ice_softc *sc, struct ice_vf 
> *vf, u8 *msg_buf)
> goto done;
> }
>
> if (vlan_list->num_elements >= vf->vlan_cnt)
>
>         vf->vlan_cnt = 0;
>
> else
>
>         vf->vlan_cnt -= vlan_list->num_elements;
>
> done:
> ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_DEL_VLAN,
> v_status, NULL, 0, NULL);
> diff --git a/sys/dev/ice/ice_iov.h b/sys/dev/ice/ice_iov.h
> index c2ac5fcd5c94..c4fb3e932e3f 100644
> --- a/sys/dev/ice/ice_iov.h
> +++ b/sys/dev/ice/ice_iov.h
> @@ -85,6 +85,11 @@ struct ice_vf {
> u16 vf_num;
> struct virtchnl_version_info version;
>
> u16 mac_filter_limit;
>
> u16 mac_filter_cnt;
>
> u16 vlan_limit;
>
> u16 vlan_cnt;
>
> u16 num_irq_vectors;
> u16 *vf_imap;
> struct ice_irq_vector *tx_irqvs;
>
> @@ -101,6 +106,9 @@ struct ice_vf {
> #define ICE_VIRTCHNL_VALID_PROMISC_FLAGS (FLAG_VF_UNICAST_PROMISC |
> FLAG_VF_MULTICAST_PROMISC)
>
> +#define ICE_DEFAULT_VF_VLAN_LIMIT 64
> +#define ICE_DEFAULT_VF_FILTER_LIMIT 16
> +
> int ice_iov_attach(struct ice_softc *sc);
> int ice_iov_detach(struct ice_softc *sc);

Reply via email to