From nobody Tue Aug 18 08:24:48 2026 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 4hPN6Y68SKz6nlSm for ; Tue, 18 Aug 2026 08:24:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hPN6Y5S4Zz3qBT for ; Tue, 18 Aug 2026 08:24:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1787041493; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NXBdQUi1vjNdulSsYzkICR3DCwmFfRa4zqEbMraU8QQ=; b=XiexsJBEr/TsCzfSVcfvgAKELgxsk0dpyYhjeDpx8QVFgHWPads9KYNy/pNKg7K4TIpUAu 8Y+Kf2uQWiXjFy6hmbVhTEDB7QOuTGUnJLKER32DB3Ejf5fkh24rGYETUuAiRsH/QNgm3H 3eoJ5dWn3wdR5bCIEcY1IZ0BHnd+MPvb2jUx/WNWRVj7qPvrjmEOfuJ3vxgoZHVjvV2zYY 1VPA6qAVaLhZYcaqN3JYYQAvwkWdWyilG6QDvf/ow7sBGMZAEppdIWzT07h7VTN3DtMhxu DpATZ1POXd7oiRRk++CDrSYFNPHwMJYGEcmGN7nKiRELhnMpxB8JoEWaCgeLSw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1787041493; a=rsa-sha256; cv=none; b=qXHXeyb0AC5BVhCFmXWz/NDF/8/+Vc8810H3xhgsVTxGsNd3+sU1BqxsoEzG2HR1bztk8L sRbh/N26/5u+f14jAcce0lTNkb4B20EQeCDOY9lmGVoOuiDUIjc4WggGsxjrpPCjsS/FQ5 s5pKNMzrz7oFUhV/x6HBq7lEK2lflTrBNTJ7G50ZvMhzGPF4whU40DPUK1uVDOrrddjRnI 2Ze7VFyDGwbUAwariSmJuwSF4c/UYfcQuP9pCN/dBJNPGkiSzhGEIi0lgaTDj34lpHE21T Qwb+gYjl7LNyGjvluKWfcZj122kOV3r0t8K07KJXLHSxff/sAhRANp4iBDREdg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1787041493; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NXBdQUi1vjNdulSsYzkICR3DCwmFfRa4zqEbMraU8QQ=; b=lBngwNKOXdQNdu0RcLrgfRrjJ8KrYZ26sFdl8JRmTaKhRK1mSqrHe7I/x3uB7ZpLNoZOzr 0xgNTcXP7SVf2po7I+7ycCVqGMBvSWgiETeLQRn4Jz3MiM1Zpov3h37q61oKZQnn/9rIfn +DjDFmreMNpFWIUHyuCGeAgQBgy2nQrX7/cm9Mizawic55bsWkPacu2w27fxvF3nw6MmdW 0BtbpIl6sEAwTOY22jHEEEuNNFh+Xdcw1TdrG1zqtJTQWU5ZStoN9Vv5tzbaWeQLgP1nEI pDBm6igwmDUv8ryylMp8N3NyzNFAz6u0ccx4K42TNIPFoqBVffOErPDRglTuDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hPN6Y4KgJzdFh for ; Tue, 18 Aug 2026 08:24:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cc50 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 18 Aug 2026 08:24:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Sobczyk, Pawel From: Krzysztof Galazka Subject: git: 33e2eac3e3e7 - main - ix(4): Sanitize negative error codes 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kgalazka X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 33e2eac3e3e738daa95a06f42d6c661b87ad9aac Auto-Submitted: auto-generated Date: Tue, 18 Aug 2026 08:24:48 +0000 Message-Id: <6a8416d0.1cc50.199552f6@gitrepo.freebsd.org> The branch main has been updated by kgalazka: URL: https://cgit.FreeBSD.org/src/commit/?id=33e2eac3e3e738daa95a06f42d6c661b87ad9aac commit 33e2eac3e3e738daa95a06f42d6c661b87ad9aac Author: Sobczyk, Pawel AuthorDate: 2026-08-18 08:10:54 +0000 Commit: Krzysztof Galazka CommitDate: 2026-08-18 08:11:12 +0000 ix(4): Sanitize negative error codes Due to development history FreeBSD driver error codes are reported the same way as in Linux (as negatives) which is inconsistent with FreeBSD standard. It may cause unexpected behavior when driver errors are interpreted by a kernel as syscall handler return values. This patch converts error codes from negative to positive values for NVM access functions. Signed-off-by: Pawel Sobczyk Reviewed by: kbowling, erj, milosz.linkiewicz_intel.com Tested by: Mateusz Moga MFC after: 1 week Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D57642 --- sys/dev/ixgbe/if_ix.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 25e7e9bdf913..6de2b40e1aee 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -1603,8 +1603,9 @@ ixgbe_nvm_access_ioctl(struct ixgbe_softc *sc, struct ifdrv *ifd) size_t ifd_len = ifd->ifd_len; size_t malloc_len; device_t dev = sc->dev; + s32 status; u8 *nvm_buffer; - s32 error = 0; + int error = 0; /* * ifioctl forwards SIOCxDRVSPEC to iflib without conducting @@ -1653,10 +1654,10 @@ ixgbe_nvm_access_ioctl(struct ixgbe_softc *sc, struct ifdrv *ifd) (nvm_buffer + sizeof(struct ixgbe_nvm_access_cmd)); /* Handle the NVM access request */ - error = ixgbe_handle_nvm_access(hw, cmd, data); - if (error) { + status = ixgbe_handle_nvm_access(hw, cmd, data); + if (status) { device_printf(dev, "%s: NVM access request failed, error %d\n", - __func__, error); + __func__, status); } /* Copy the possibly modified contents of the handled request out */ @@ -1668,6 +1669,20 @@ ixgbe_nvm_access_ioctl(struct ixgbe_softc *sc, struct ifdrv *ifd) goto cleanup_free_nvm_buffer; } + /* Convert private status to an error code for proper ioctl response */ + switch (status) { + case IXGBE_SUCCESS: + error = 0; + break; + case IXGBE_ERR_OUT_OF_RANGE: + error = ENOTTY; + break; + case IXGBE_ERR_PARAM: + default: + error = EINVAL; + break; + } + cleanup_free_nvm_buffer: free(nvm_buffer, M_IXGBE); return (error);