From nobody Sun Jul 20 14:17:30 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 4blQbG6kn5z629RH; Sun, 20 Jul 2025 14:17:30 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4blQbG425Rz3KSw; Sun, 20 Jul 2025 14:17:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753021050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1H2CzLaOc7JoOtSEBUh9SX3RIaOzRaCYBU0wKanFZvc=; b=R0fRgrtu5HyUKjeXHyWD6aXUFb5XirVXIyqNxm5eE/EvQYrtr+LHnY5a8JqvbU6CR7z7kN R6aBm72QnmH2f7S+vprv3HRw8TZB2301kDAIqkSXy58b89JkqG2qitOhM2gf/QuM6+AjuB IU3ASzU5K0rFDYiSv/lEfaZtEUOFoCeDTQxdNKNetfQdAGsICtV7a4QEYWmrH+awmMkofR JF5SP9bepzbUR2yETUA5IpoD46qDO8/WHUIoI1NVNU9ZGhblD33+M+CgZI0TiUr7X0ZhoD 4WSD9uAPbAWQt0e7OjpPhWAKR/6mj2yXNaL3qZ2QXCeyAFRWr2Px3EMCRZQjPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753021050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1H2CzLaOc7JoOtSEBUh9SX3RIaOzRaCYBU0wKanFZvc=; b=qB4RJfztq2UtFGZK4izw9akbIQKH3URLhHKDn5JiTV+Z5gRI+x6fVrUMqG0GMeSAB5MdDZ FRZOmLeSgAM6TbYBfv9wcNhRo/p6wPvOotSJS3L+gFNpUHsphPAOzYf0LnBdHTiVgaZhX3 3aK66I71Zqk/zoSSTZNtxlJQ386gxQKjjQvjgO3+fUuBoD51aHrjPSU7cDywmgZtTKas6K lCK64E8Y8TxXojajR1QbBpmPfKxCus7uWMKU8ymWbHHQB+4GdTtnpUobWOlIoSXdkB9e/q ZVIyKCINKajwHkw0PE7RIjIdhFoUNz3/yWPweRyiHb1wE3pCUq2HsasLfcD3aw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1753021050; a=rsa-sha256; cv=none; b=k8BQesf2F9fADXXxzdh50qR3lgNn4AkU8LjTQlBcPuA0H5fYcRu8Ryg+23KupL39/72/tJ O1tufTEy7ey0W72zRY+En+3sKPDHICynfaQtKKbsEtOycg9WdSzy32h65/u9+yPKCCp4B3 bocm6ceROKlWo4UAAFJrT7PF+DFzDq0W9nolHVSOct4FIeeCF1GOvLIx6GgyR2bMrlKrUr SXmqJD4d8lg2TjfwZC/qjX3ESH7UwRbHehX1/f2g1u4td9YotGoBtxPMtYcDxDPz6VcJu8 1M6sWpZ0LIghjA422MY1GqOMSHldCsxnXHZowmJZIbJyox0kgdmwGCNSxjZCkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4blQbG2yVJzqp; Sun, 20 Jul 2025 14:17:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56KEHUes058441; Sun, 20 Jul 2025 14:17:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56KEHU8i058438; Sun, 20 Jul 2025 14:17:30 GMT (envelope-from git) Date: Sun, 20 Jul 2025 14:17:30 GMT Message-Id: <202507201417.56KEHU8i058438@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: d9a1e54cb037 - stable/13 - qlnxe: Fix error handling of SIOCGI2C ioctl 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 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d9a1e54cb037706f53f12b488d8288b9f951b859 Auto-Submitted: auto-generated The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=d9a1e54cb037706f53f12b488d8288b9f951b859 commit d9a1e54cb037706f53f12b488d8288b9f951b859 Author: Zhenlei Huang AuthorDate: 2025-07-17 04:01:16 +0000 Commit: Zhenlei Huang CommitDate: 2025-07-20 14:16:36 +0000 qlnxe: Fix error handling of SIOCGI2C ioctl The error -1 is actually ERESTART in the context of syscall. It is for kernel mode only and will not be passed to user mode. When the kernel sees this error it will restart the syscall. When the the SFP module data is not available, e.g. the SFP module is not present, the ioctl handler returns ERESTART and kernel will retry infinitely, hence the userland `ifconfig -v ql0` will hang forever until get interrupted. That is apparently wrong. Fix that by returning error ENODEV to indicate the SFP module data is not available. As for the case that ecore_ptt_acquire() fails, it appears to be quite safe to restart, so keep returning ERESTART. Reported by: Steve Wheeler See also: https://redmine.pfsense.org/issues/16248 Reviewed by: kbowling MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D51351 (cherry picked from commit 12fea464070a9061fda874038614ed55011ad59d) (cherry picked from commit f40f6374f3d2cfc1a99781acd5c3252e1edfe612) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 2422e4e26df1..fe6ccc538c26 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2813,7 +2813,7 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (!p_ptt) { QL_DPRINT1(ha, "ecore_ptt_acquire failed\n"); - ret = -1; + ret = ERESTART; break; } @@ -2824,7 +2824,7 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) ecore_ptt_release(p_hwfn, p_ptt); if (ret) { - ret = -1; + ret = ENODEV; break; }