From nobody Mon Jul 28 22:14:05 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4brXnn1xy6z63XQf for ; Mon, 28 Jul 2025 22:14:21 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4brXnm41M0z4Cn7 for ; Mon, 28 Jul 2025 22:14:20 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-31c4a546cc2so4179603a91.2 for ; Mon, 28 Jul 2025 15:14:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1753740857; x=1754345657; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Dr2pu4GIU4LWciHZ8PeknxApHxC9sg4KemjLIxhbH44=; b=bh22uV2666IAfnsbLknRBcsflh1BSJUJHCcnTTCWdsbtFGn8sAdgNzw40yg1TzV5sm h1o0YuySK6+jLFdiRT4JWJyIBEY76Na56G33CZyzAKuWNWTTc45BWYYh8/Xs+scIGNbM KtNhpiJkx8OBGmpkdf7s0p5uKa/DORkLZwtqYrFXneirUFEi783vSRxqiJ+Uv3RwR9HV tKH9uhUipde2q+cJYf5elwqSH/V0adlxuHe6ugi8/xK5fiaVWi54J+1ti3wSbr3pWqVM 6F56KsF9rLEaEMbJJWfVmz+NmrRB7+xp3yAuPbGHOs9zdHJbDeQyykiuGDGGTleECC1U c9PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753740857; x=1754345657; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Dr2pu4GIU4LWciHZ8PeknxApHxC9sg4KemjLIxhbH44=; b=iuZ9dIiI9ZecpaCSDFgs0hqwJ4uxtmpgtuy9vhTtIvKw5Pu/e7U19j0tphTaGuwUP9 w98nuNqk001r0K3vfx8mMyURODU4EvPuzc6Xi2a37CiX1cxGQGKu3+0l0QngUWXRMntq OSKY8YQUDRacMbHiutlf36JRdizjQq1KrGeC0AjUEqRzJ6jS1Sx7LKAmVPACa9GCEyaB 7L2b/rVlxgqeQeHQFaxomPyD5DXUa78QQ/ruajvDd4Q0Auy2mdu0UGpCcmJONdb1JIr+ w0BcnV3mrJUVea15/AwuLJeP8yRXHmKqB3p/U3KGNun0herpIIbNx8aegRe7sbbFp6D5 RIWg== X-Forwarded-Encrypted: i=1; AJvYcCWEHOSxDcFdq5iwh9JtGDWK/vO+rvIZqRL0BBf5JQ6BdfSccRrJJe4lBJ5AJDlAYozOPUDvhvQyJfne1XBXvnaSjfgE@freebsd.org X-Gm-Message-State: AOJu0Yzx7FFTq5KWkhibyvPoXvPmDkyAhd+6yjERRDHszSrdE5XdOCY2 JcJ78sdEF/lRa5IlaMoTcLH4U1xNt12cZX55r8lwn4Bie//MFcubGdTRpQ+7XSYBXiqbvKzOf3f 2M4+IjCNpa+oR8o6xEkywN9VIkFyTa1crhwUZJWyLNQ== X-Gm-Gg: ASbGncsdve4YcvKfQk3Lw1Er7B3/EQCrnXDFmF2yd/8f7siTZP41Ihe1npJXwv1XA4D LWRbrpiOV5tlaPb2l2FW5ffigacCm0MOWP9AiX7kgRMwi8ITlWVqVNAUDt0Pc8EmFMiLz1E5m26 rQMHLsQNVEuOV1tfdO1L1aLhAJp2iaukU2LnnLaiIYulrWL1MmtvyNw9ezP8jiXublHzkxSkyZW A6EuTVuQ2hRBpweQCCqH6wnqWPoXMMl5rBCIJfX6A== X-Google-Smtp-Source: AGHT+IHASGZHh7eO3HTPou6xgkU9bmn9wCou29L7LvKOxaTcj6YEDH3GHPEcedhOlnGBPLm6ipwR+kKoAdhnpTfkvbo= X-Received: by 2002:a17:90b:2750:b0:311:ff02:3fcc with SMTP id 98e67ed59e1d1-31e778a0660mr19780645a91.14.1753740857421; Mon, 28 Jul 2025 15:14:17 -0700 (PDT) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 References: <202507181916.56IJGLMK001122@gitrepo.freebsd.org> In-Reply-To: From: Warner Losh Date: Mon, 28 Jul 2025 12:14:05 -1000 X-Gm-Features: Ac12FXxogHR2YNaxRkZZDw4gBwkC14RTLiOlLf9WDo2hFtoPNiwKkFtslD9R9Hk Message-ID: Subject: Re: git: 430f1acc451c - main - ice(4): Add MAC filter and VLAN resource limits to VFs To: Kevin Bowling Cc: Kristof Provost , Krzysztof Galazka , Warner Losh , Eric Joyner , src-committers , "" , "" Content-Type: multipart/alternative; boundary="000000000000d5cb60063b049cc7" X-Rspamd-Queue-Id: 4brXnm41M0z4Cn7 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] --000000000000d5cb60063b049cc7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jul 28, 2025, 9:42=E2=80=AFAM Kevin Bowling wrote: > 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 :) > This was my mistake for pushing the pull request without enough interaction or testing. Warner Regards, > Kevin > > > On Mon, Jul 28, 2025 at 12:01=E2=80=AFPM Kristof Provost = wrote: > > > > That=E2=80=99s confirmed, that has indeed fixed the arm64 LINT build er= rors. > > Thanks des. > > > > We=E2=80=99re still failing riscv and i386, but those are different err= ors. > > > > The riscv one is new (or I haven=E2=80=99t 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=3D/usr/obj/usr/src/i386.i386/tmp > -B/usr/obj/usr/src/i386.i386/tmp/usr/bin -O2 -pipe -fno-common -g > -gz=3Dzlib -MD -MF.depend.uuencode.o -MTuu > > encode.o -std=3Dgnu17 -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=3Dunused-but-set-parameter -Wno-error=3Dcast-function-type-mis= ma > > 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 > > > > =E2=80=94 > > 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=E2=80=AFAM Kristof Provost kp@freebsd.org = wrote: > > > > I=E2=80=99m not sure if it=E2=80=99s this specific commit or another on= e in the recent > dev/ice updates, but the arm64 LINT-FDT, LINT-ACPI and LINT builds all fa= il. > > > > 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 > > > > =E2=80=94 > > 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=3D430f1acc451c7084d1d5aa7df7e7ecc= cea1a8b51 > > > > commit 430f1acc451c7084d1d5aa7df7e7ecccea1a8b51 > > Author: Eric Joyner eric.joyner@intel.com > > AuthorDate: 2024-10-17 22:19:09 +0000 > > Commit: Warner Losh imp@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 > > Signed-off-by: Krzysztof Galazka > > 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 =3D pci_iov_attach(dev, pf_schema, vf_schema); > > if (error !=3D 0) { > > > > @@ -360,6 +364,9 @@ ice_iov_add_vf(struct ice_softc *sc, uint16_t vfnum= , > const nvlist_t *params) > > > > vsi->mirror_src_vsi =3D nvlist_get_number(params, "mirror-src-vsi"); > > > > vf->vlan_limit =3D nvlist_get_number(params, "max-vlan-allowed"); > > > > vf->mac_filter_limit =3D nvlist_get_number(params, "max-mac-filters"); > > > > vf->vf_flags |=3D 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 =3D VIRTCHNL_STATUS_SUCCESS; > > struct virtchnl_ether_addr_list *addr_list; > > struct ice_hw *hw =3D &sc->hw; > > > > u16 added_addr_cnt =3D 0; > > int error =3D 0; > > > > addr_list =3D (struct virtchnl_ether_addr_list *)msg_buf; > > > > if (addr_list->num_elements > > > > > (vf->mac_filter_limit - vf->mac_filter_cnt)) { > > > > v_status =3D VIRTCHNL_STATUS_ERR_NO_MEMORY; > > > > goto done; > > > > } > > > > for (int i =3D 0; i < addr_list->num_elements; i++) { > > u8 *addr =3D 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 =3D 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 +=3D 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, struc= t > ice_vf *vf, u8 *msg_buf) > > enum virtchnl_status_code v_status =3D VIRTCHNL_STATUS_SUCCESS; > > struct virtchnl_ether_addr_list *addr_list; > > struct ice_hw *hw =3D &sc->hw; > > > > u16 deleted_addr_cnt =3D 0; > > int error =3D 0; > > > > addr_list =3D (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 =3D 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 >=3D vf->mac_filter_cnt) > > > > vf->mac_filter_cnt =3D 0; > > > > else > > > > vf->mac_filter_cnt -=3D 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 =3D VIRTCHNL_STATUS_ERR_NO_MEMORY; > > > > goto done; > > > > } > > > > status =3D 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 +=3D 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 >=3D vf->vlan_cnt) > > > > vf->vlan_cnt =3D 0; > > > > else > > > > vf->vlan_cnt -=3D 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); > --000000000000d5cb60063b049cc7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Mon, Jul 28, 2025, 9:42=E2=80= =AFAM Kevin Bowling <kevin.b= owling@kev009.com> wrote:
On= e 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 :)

This was my mistake = for pushing the pull request without enough interaction or testing.

Warner
<= br>

Regards,
Kevin


On Mon, Jul 28, 2025 at 12:01=E2=80=AFPM Kristof Provost <kp@freebsd.org= > wrote:
>
> That=E2=80=99s confirmed, that has indeed fixed the arm64 LINT build e= rrors.
> Thanks des.
>
> We=E2=80=99re still failing riscv and i386, but those are different er= rors.
>
> The riscv one is new (or I haven=E2=80=99t seen it before, anyway): >
> --- all_subdir_usr.bin ---
> ld: error: undefined symbol: llvm::DisableABIBreakingChecks
> >>> referenced by ClangScanDeps.cpp
> >>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Cla= ngScanDeps.pieo:(llvm::VerifyDisableABIBreakingChecks)
> c++: error: linker command failed with exit code 1 (use -v to see invo= cation)
>
> i386 has been failing for a while:
>
> --- all_subdir_sbin/recoverdisk ---
> /usr/src/sbin/recoverdisk/recoverdisk.c:830:38: error: comparison of i= ntegers of different signs: 'unsigned int' and 'time_t' (ak= a 'int') [-Werror,-Wsign-compare]
> --- all_subdir_usr.bin ---
> --- uuencode.o ---
> cc -target i386-unknown-freebsd15.0 --sysroot=3D/usr/obj/usr/src/i386.= i386/tmp -B/usr/obj/usr/src/i386.i386/tmp/usr/bin=C2=A0 -O2 -pipe -fno-comm= on=C2=A0 =C2=A0-g -gz=3Dzlib -MD=C2=A0 -MF.depend.uuencode.o -MTuu
> encode.o -std=3Dgnu17 -Wno-format-zero-length -fstack-protector-strong= -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -W= strict-prototypes -Wmissing-prototypes -Wpoi
> nter-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow= -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-s= tyle-definition -Wno-pointer-sign -Wdate-t
> ime -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -W= no-string-plus-int -Wno-unused-const-variable -Wno-error=3Dunused-but-set-p= arameter -Wno-error=3Dcast-function-type-misma
> tch=C2=A0 -Qunused-arguments=C2=A0 =C2=A0 =C2=A0-c /usr/src/usr.bin/bi= ntrans/uuencode.c -o uuencode.o
> --- all_subdir_sbin ---
>=C2=A0 =C2=A0830 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0if (unsaved && (t_save + snapshot) < t_now) {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0~~~~~~~~~~~~~~~~~=C2=A0 ^ ~~~~~
> 1 error generated.
> *** [recoverdisk.o] Error code 1
>
> =E2=80=94
> 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=E2=80=AFAM Kristof Provost kp@freebsd.org= wrote:
>
> I=E2=80=99m not sure if it=E2=80=99s this specific commit or another o= ne in the recent dev/ice updates, but the arm64 LINT-FDT, LINT-ACPI and LIN= T builds all fail.
>
> This is from arm64-LINT:
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_iov_attach
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:859 (/usr= /src/sys/dev/ice/if_ice_iflib.c:859)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_attach_post)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_iov_detach
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:989 (/usr= /src/sys/dev/ice/if_ice_iflib.c:989)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_detach)
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:2323 (/us= r/src/sys/dev/ice/if_ice_iflib.c:2323)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_update_admin_status)
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:2376 (/us= r/src/sys/dev/ice/if_ice_iflib.c:2376)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_transition_safe_mode)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_iov_add_vf
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:3464 (/us= r/src/sys/dev/ice/if_ice_iflib.c:3464)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_iov_vf_add)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_iov_init
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:3429 (/us= r/src/sys/dev/ice/if_ice_iflib.c:3429)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_iov_init)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_iov_uninit
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:3445 (/us= r/src/sys/dev/ice/if_ice_iflib.c:3445)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_iov_uninit)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_iov_handle_vflr >=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:3480 (/us= r/src/sys/dev/ice/if_ice_iflib.c:3480)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_if_vflr_handle)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_vc_notify_all_vfs_= link_state
>=C2=A0 =C2=A0 =C2=A0>>> referenced by if_ice_iflib.c:757 (/usr= /src/sys/dev/ice/if_ice_iflib.c:757)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0if_ice_iflib.o:(ice_update_link_status)
>
>=C2=A0 =C2=A0 =C2=A0ld: error: undefined symbol: ice_vc_handle_vf_msg >=C2=A0 =C2=A0 =C2=A0>>> referenced by ice_lib.c:2285 (/usr/src= /sys/dev/ice/ice_lib.c:2285)
>=C2=A0 =C2=A0 =C2=A0>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0ice_lib.o:(ice_process_ctrlq)
>=C2=A0 =C2=A0 =C2=A0*** [kernel.full] Error code 1
>
> =E2=80=94
> 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=3D430f1acc451c7084d1d5aa7df7e7ec= ccea1a8b51
>
> commit 430f1acc451c7084d1d5aa7df7e7ecccea1a8b51
> Author: Eric Joyner eric.joyner@intel.com
> AuthorDate: 2024-10-17 22:19:09 +0000
> Commit: Warner Losh imp@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 MA= C
> 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.joyner@intel.com>
> Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.= com>
> Reviewed by: imp
> Pull Request: https://github.com/fre= ebsd/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",
>
>=C2=A0 =C2=A0 =C2=A0IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_VLAN_LIMIT);<= br> >
> pci_iov_schema_add_uint16(vf_schema, "max-mac-filters",
>
>=C2=A0 =C2=A0 =C2=A0IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_FILTER_LIMIT)= ;
>
> error =3D pci_iov_attach(dev, pf_schema, vf_schema);
> if (error !=3D 0) {
>
> @@ -360,6 +364,9 @@ ice_iov_add_vf(struct ice_softc *sc, uint16_t vfnu= m, const nvlist_t *params)
>
>=C2=A0 =C2=A0vsi->mirror_src_vsi =3D nvlist_get_number(params, "= ;mirror-src-vsi");
>
> vf->vlan_limit =3D nvlist_get_number(params, "max-vlan-allowed= ");
>
> vf->mac_filter_limit =3D nvlist_get_number(params, "max-mac-fi= lters");
>
> vf->vf_flags |=3D VF_FLAG_VLAN_CAP;
>
> /* Create and setup VSI in HW */
>
> @@ -735,10 +742,17 @@ ice_vc_add_eth_addr_msg(struct ice_softc *sc, st= ruct ice_vf *vf, u8 *msg_buf)
> enum virtchnl_status_code v_status =3D VIRTCHNL_STATUS_SUCCESS;
> struct virtchnl_ether_addr_list *addr_list;
> struct ice_hw *hw =3D &sc->hw;
>
> u16 added_addr_cnt =3D 0;
> int error =3D 0;
>
> addr_list =3D (struct virtchnl_ether_addr_list *)msg_buf;
>
> if (addr_list->num_elements >
>
>=C2=A0 =C2=A0 =C2=A0(vf->mac_filter_limit - vf->mac_filter_cnt)) = {
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0v_status =3D VIRTCHNL_STATUS_ERR_NO_M= EMORY;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;
>
> }
>
> for (int i =3D 0; i < addr_list->num_elements; i++) {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0u8 *addr =3D addr_list->list[i].ad= dr;
>
> @@ -767,10 +781,15 @@ ice_vc_add_eth_addr_msg(struct ice_softc *sc, st= ruct 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 =3D VIRTCHNL_STATUS_ERR_PARAM;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done= ;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0continue;=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Don't count VF's MAC again= st its MAC filter limit */
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (memcmp(addr, vf->mac, ETHER_AD= DR_LEN))
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0added_add= r_cnt++;
> }
>
> vf->mac_filter_cnt +=3D 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, stru= ct ice_vf *vf, u8 *msg_buf)
> enum virtchnl_status_code v_status =3D VIRTCHNL_STATUS_SUCCESS;
> struct virtchnl_ether_addr_list *addr_list;
> struct ice_hw *hw =3D &sc->hw;
>
> u16 deleted_addr_cnt =3D 0;
> int error =3D 0;
>
> addr_list =3D (struct virtchnl_ether_addr_list *)msg_buf;
>
> @@ -802,11 +822,18 @@ ice_vc_del_eth_addr_msg(struct ice_softc *sc, st= ruct 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 =3D VIRTCHNL_STATUS_ERR_PARAM;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done= ;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0continue;=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Don't count VF's MAC again= st its MAC filter limit */
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (memcmp(addr_list->list[i].addr= , vf->mac, ETHER_ADDR_LEN))
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0deleted_a= ddr_cnt++;
> }
>
> -done:
>
> if (deleted_addr_cnt >=3D vf->mac_filter_cnt)
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vf->mac_filter_cnt =3D 0;
>
> else
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vf->mac_filter_cnt -=3D deleted_ad= dr_cnt;
>
> ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_DEL_ETH_ADDR,
>=C2=A0 =C2=A0 =C2=A0v_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_c= nt)) {
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0v_status =3D VIRTCHNL_STATUS_ERR_NO_M= EMORY;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;
>
> }
>
> status =3D ice_add_vlan_hw_filters(vsi, vlan_list->vlan_id,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vlan_list->num_elements)= ;
> if (status) {
>
> @@ -849,6 +881,8 @@ ice_vc_add_vlan_msg(struct ice_softc *sc, struct i= ce_vf *vf, u8 *msg_buf)
> goto done;
> }
>
> vf->vlan_cnt +=3D 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 >=3D vf->vlan_cnt)
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vf->vlan_cnt =3D 0;
>
> else
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vf->vlan_cnt -=3D vlan_list->nu= m_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);
--000000000000d5cb60063b049cc7--