From nobody Tue Apr 9 04:11:15 2024 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 4VDCFJ07Gjz5GY5Z; Tue, 9 Apr 2024 04:11:16 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VDCFH6NrFz40LX; Tue, 9 Apr 2024 04:11:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1712635875; 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=5HML0JfdLawuwUIHmEgQcPFw6iWP2WZu66PrZ6iubHw=; b=r8m3TKP3vxQITf+JDfP1nB3sJCuoWMYfvDVhN4ZRT86x4ZraLe0rSJ+cWfmnO33NY6q4eV etkyxTneF7GtMpXeZPs/CaQXY9gpEpwSFYe5/lFTEYYGLMhJBiWsjrIEW4rczJpR82ydkE 2DEjgI520GNzZrjH8hk0tuBmszuziK1HiTMGuAxQrzP8pUeOY6w/yvE2fLLmclbcYmy4cE TivNlhHn8xZVvLNVkOkd94BNLOI7kpgzzlekDH8Y7UK31+aKNDYTiGlzqzaqVXRA8iXHDx G4xsQrTeBqUMT7zwy1CXloySqwKznfuNhr02I9H177i6XVLbCkLmvUqnahtU6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1712635875; a=rsa-sha256; cv=none; b=IkyU6x9mIG5FKjlPmeS//XG1/K/FQ6BdvUpE8KP0tdrLM1jF2FkKBYQrkVb2lREdqgR6ta vvoe8FjneuGRZPtbghRyYTGBamU7TL9zJGcei56wu0IZ7ysW3OnvB/+dR+D3riwUfEcnLw WJS5wD08WA7VfdTKQFQIVlX0LVYm9a8h+pR3M5p4ZFJX/GQR9dZVtjijsDQHE+xf64se0u NVvd+65aWnDw68QR9AzeeFGTOpRanwD8pAaI4XUjyhnrkA/un8IGvOuaaWWGVgQrTD7e3c IXmD5iCODU/vFPAxCo7nj1DgMoFqV6EgNagc99dhl1SXnTyvS3mZyfVG64jBkQ== 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=1712635875; 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=5HML0JfdLawuwUIHmEgQcPFw6iWP2WZu66PrZ6iubHw=; b=OASxYarhs2zZpznfiTEjGwq0ec2AFUAUOE3RR97RgGP68c6R/ArTpzCoWCtkyoDodhgv8i Y3/oCcBsh7XaSDeUR/rPUDUDqx/yy7eVfU6PdgyAA/ci03VUW6STEGQNfKseMtoemGMpO1 tAEL3l2MeISdLOvxTTsQPzG7UGhUTcu3xLqZqHPuLJTwquXXlGRmineUtF2heyCg35KyxP j2n9debtsodq3IgNGqGC/zI0nmajGLChK5Zg9fyLk0TSiO1DXfnHpfQeM2+EP7/2IIQ2ZD EoHIUs7lkrux7emfnJ7cjNOell07syt1+ZdTQp3c7JEodh+s0PHnfWtjm9w3aw== 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 4VDCFH6068zfch; Tue, 9 Apr 2024 04:11:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 4394BFak033220; Tue, 9 Apr 2024 04:11:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 4394BFKO033217; Tue, 9 Apr 2024 04:11:15 GMT (envelope-from git) Date: Tue, 9 Apr 2024 04:11:15 GMT Message-Id: <202404090411.4394BFKO033217@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: f1994d1eb215 - stable/14 - kern linker: Do not unload a module if it has dependants 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: 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/14 X-Git-Reftype: branch X-Git-Commit: f1994d1eb215a2b7cb644329797dc623ec883120 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=f1994d1eb215a2b7cb644329797dc623ec883120 commit f1994d1eb215a2b7cb644329797dc623ec883120 Author: Zhenlei Huang AuthorDate: 2024-03-26 03:55:45 +0000 Commit: Zhenlei Huang CommitDate: 2024-04-09 04:10:07 +0000 kern linker: Do not unload a module if it has dependants Despite the name, linker_file_unload() will drop a reference and return success when the module file has dependants, i.e. it has more than one reference. When user request to unload such modules then the kernel should reject unambiguously and immediately. PR: 274986 Reviewed by: dfr, dab, jhb MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D42527 (cherry picked from commit f43ff3e15c8b4b161ce09c8ab008abc4222db26b) --- sys/kern/kern_linker.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c index 2b220295f78e..69c746fe376d 100644 --- a/sys/kern/kern_linker.c +++ b/sys/kern/kern_linker.c @@ -1222,6 +1222,8 @@ kern_kldunload(struct thread *td, int fileid, int flags) printf("kldunload: attempt to unload file that was" " loaded by the kernel\n"); error = EBUSY; + } else if (lf->refs > 1) { + error = EBUSY; } else { lf->userrefs--; error = linker_file_unload(lf, flags);