From nobody Tue Mar 26 03:56:54 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 4V3bbC0xZSz5Fy1J; Tue, 26 Mar 2024 03:56:55 +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 4V3bbB71ZQz4lMj; Tue, 26 Mar 2024 03:56:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1711425415; 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=S1D/yNXlrs9wmU/h7AKAtLLEzMHI934J2Aid3e4IChA=; b=yWfOeBH9i/DVDKeVRjTYs3FQrw6PTMSPERUjEoUdAwZaCv5XhCvrpV2LpkLbtqupbR8BOE 1QhMuk0oF1Cbtf29awNRfyiou63vXTJ0P4cabtyaUK6MzS+6fD5Dd4LAV+UUgKssegmDbM oK+qRFCeanbyp9kivxAR/F+ud1/c48wcgfC26M2BdmizKvgQQkNR0UQHKXqWF4LgztymiA OGEwJsrCLHMBcHCxPpIQ5ZoUVmKLQQ9zKPTnIgrT1EMExvg9tvGvKMyvnshUNujswRW7BE A830SoXqaBS2toQ1tNNmvoMeNFRnywSZ3dwsdAuIjZ5CyIC1D//foKhWccVYGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1711425415; a=rsa-sha256; cv=none; b=v0iVyoCfvdApsDHy3O+GA2krxSZf6f6tOAblPjoTbPTIxASo6ltw1EJ4VsmXG7yfbZjVI3 Q2AFbl9ChEQF0gnWKCfMyWGIseh9utkRbPwxKa+6ynUAKuuNHKHJ3YGyXkT7Y99UW37kZL wiDbpQ6ZV0KXTVjgSAUVXa1Caxt+pBPxnUA7/3heTmGcGugvG5cx4qCT8GF2P7yO0j1D6B 11Wiwr/9hQ19pcRCo1IBdyzLf+OzMUxFjIuV333dcPv/+THXYstEUxcFjjqAajMsGYlkHm w7MfiAyWY++W9+MaxPJUGe+1oDc6nR6Dt+5xTH1mCH52Ixzcf7HlxOwTG1i/1Q== 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=1711425415; 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=S1D/yNXlrs9wmU/h7AKAtLLEzMHI934J2Aid3e4IChA=; b=JYBoqZBeOu0jwhEaURUDIg8KxykOuNwX2zt1jSzzuns1c/sSo9d98gSoL2Zyb44oQeVXdv buAioLtaithTjS1KuFb47ydX+eob7zoJeFYRpW7T8XQq3Ruwna7bFXKlPUJWfsURDWbk71 oxf7OAlA9zH4WL0/MtVeSv0PnJ/Ne3Rj3L+Rf7q8ioDmvcredoQIpjxrBFzdBUATOHkHMr CiNbMgg/u+pnHe/TBSqoP2d635bRRahBll9P9pdZ/pLwYnulDTBMoPv5xedjKgaZqOIgQh LOaFGvWexXzDAP8QPI/XifWHNlqF+7VIslvIWa05DZsLbvZmITM/tnewyt6+mA== 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 4V3bbB6dqWzkrZ; Tue, 26 Mar 2024 03:56:54 +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 42Q3uslE099666; Tue, 26 Mar 2024 03:56:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 42Q3usJT099664; Tue, 26 Mar 2024 03:56:54 GMT (envelope-from git) Date: Tue, 26 Mar 2024 03:56:54 GMT Message-Id: <202403260356.42Q3usJT099664@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Zhenlei Huang Subject: git: f43ff3e15c8b - main - 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/main X-Git-Reftype: branch X-Git-Commit: f43ff3e15c8b4b161ce09c8ab008abc4222db26b Auto-Submitted: auto-generated The branch main has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=f43ff3e15c8b4b161ce09c8ab008abc4222db26b commit f43ff3e15c8b4b161ce09c8ab008abc4222db26b Author: Zhenlei Huang AuthorDate: 2024-03-26 03:55:45 +0000 Commit: Zhenlei Huang CommitDate: 2024-03-26 03:55:45 +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 --- 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 1126bf967966..325dffbfedee 100644 --- a/sys/kern/kern_linker.c +++ b/sys/kern/kern_linker.c @@ -1280,6 +1280,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);