From nobody Mon Mar 20 20:47:50 2023 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 4PgRdM1kPPz40DhL; Mon, 20 Mar 2023 20:47:51 +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 4PgRdM0NFnz3kJr; Mon, 20 Mar 2023 20:47:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679345271; 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=p+xLAXk56Y5Wmwb4CG/E2A4EVM7p9L3tX+SFXIxlaxk=; b=fhkt9MBt2vvMxKd1Mb2hU9XiWuBnyvx+HNC0A/krEy2LbAda3z/WPn/i9KubsKaB4Ds0kA eNAdQ/l2P8p/DLezhOE4EjI9VMAuZ/FXA77o64hyIBF2Dwoi437m1tn5jma5zeF4cQEtFb LeXujYdLgNjtosAZ63qmV1GLrVcfA5pH5zFOD/tzYjyyDDPRkmKdqMabVv2iZWUHnHTHxl l1Q2exOVzB8bfSdJkXy/pV80sati9z36nqNR/m/JwqVBxlQxzy85wQaCKAfHDTQiXhIMUG 6UrMthvddoP03vLWyE4OBzNP1aEJ1SA4rcK2V/abCwy2a1UNw5p7N0g7C6dzBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679345271; 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=p+xLAXk56Y5Wmwb4CG/E2A4EVM7p9L3tX+SFXIxlaxk=; b=vokINdo9fG9w+Pj9G4HCU8npKODURO5L72ZYuyCZYVpnmCEA8hZsKD+B74tAxvkInEuMN0 MsMvpKqElb00UgBIEPKmehntSpC00THqKoqnU+3Kuwiuwf8TDgvT6xN9UgTBCdu+CcCLek ncEl+DW+qPMJ5bRABypBn8+Ueo5H4kbE3I/e43dnV+eoAbMZYfhPhjxOhWsZLrA5psRNfN bQpiYhQGTeRIj7NBSELO9oflQ9+2WDsCUXBPBlAf93hUfJFs3eRs28rleoYl8FaC3/ZMls hvbKyIs0LjP4fvaSOSBzgFJQoNONdtNANYQM7wvMWQt83gY8QbXOD/+gJFfI/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1679345271; a=rsa-sha256; cv=none; b=k9czoy2ZTT0NBKJGB22E+zzf1XyAae3lq13qir0OtCfU5Fy5CzdwfCF4BYLZ0PH5EOV+5n F0NxMv84ODQPjGSNBaDonFyqw0qMjARU8iVDdd48Ca2B9oaBZ8Il3odFtDPU8Qq2jV+L3i KsMetWOOjagQ3XQFn6eTD/MxkycF7xGcPH4KOX7tmv4ndq2jiBLnWnXjQcxHY09JlxlZgY TZ4kiePfCAZRWzHnknLMOuvnXvMXq/GHjGxfHiYkoAEHsCv2xY2ZQj2/H7ZIjzoZ+AaHB4 Dco/uImp1hqoZa/5jn+abXKlVD0Jm1jXCMfO+AFKfoSxjYy+NSjG6VS6sPmxjw== 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 4PgRdL6Ktczl1v; Mon, 20 Mar 2023 20:47:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 32KKloU1083319; Mon, 20 Mar 2023 20:47:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 32KKlo0v083318; Mon, 20 Mar 2023 20:47:50 GMT (envelope-from git) Date: Mon, 20 Mar 2023 20:47:50 GMT Message-Id: <202303202047.32KKlo0v083318@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: =?utf-8?Q?Jean-S=C3=A9bastien=20P=C3=A9dron?= Subject: git: 1b4e08b4832d - main - linuxkpi: Support non-NULL zero-size pointers 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: dumbbell X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1b4e08b4832deeea4b9121cdaed4f6700bdab03f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dumbbell: URL: https://cgit.FreeBSD.org/src/commit/?id=1b4e08b4832deeea4b9121cdaed4f6700bdab03f commit 1b4e08b4832deeea4b9121cdaed4f6700bdab03f Author: Jean-Sébastien Pédron AuthorDate: 2023-02-20 20:50:29 +0000 Commit: Jean-Sébastien Pédron CommitDate: 2023-03-20 20:47:36 +0000 linuxkpi: Support non-NULL zero-size pointers DRM drivers set some pointers to `ZERO_SIZE_PTR` directly (without allocating anything), to treat pointers which were "initialized" (set to `ZERO_SIZE_PTR`) with no memory allocation like really allocated pointers. NULL isn't used because it represents a third state. Reviewed by: emaste, manu Approved by: emaste, manu Differential Revision: https://reviews.freebsd.org/D39055 --- sys/compat/linuxkpi/common/include/linux/slab.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/slab.h b/sys/compat/linuxkpi/common/include/linux/slab.h index 915f33acf67e..a2cce4cfe75a 100644 --- a/sys/compat/linuxkpi/common/include/linux/slab.h +++ b/sys/compat/linuxkpi/common/include/linux/slab.h @@ -90,7 +90,8 @@ struct linux_kmem_cache; /* drm-kmod 5.4 compat */ #define kfree_async(ptr) kfree(ptr); -#define ZERO_OR_NULL_PTR(x) ((x) == NULL) +#define ZERO_SIZE_PTR ((void *)16) +#define ZERO_OR_NULL_PTR(x) ((x) == NULL || (x) == ZERO_SIZE_PTR) static inline gfp_t linux_check_m_flags(gfp_t flags) @@ -195,6 +196,9 @@ extern void linux_kfree_async(void *); static inline void kfree(const void *ptr) { + if (ZERO_OR_NULL_PTR(ptr)) + return; + if (curthread->td_critnest != 0) linux_kfree_async(__DECONST(void *, ptr)); else @@ -204,6 +208,9 @@ kfree(const void *ptr) static __inline void kfree_sensitive(const void *ptr) { + if (ZERO_OR_NULL_PTR(ptr)) + return; + zfree(__DECONST(void *, ptr), M_KMALLOC); }