From nobody Tue Jan 24 08:53:57 2023 X-Original-To: dev-commits-src-branches@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 4P1LP15F5Gz30wX8; Tue, 24 Jan 2023 08:53:57 +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 4P1LP14dSgz3Qk1; Tue, 24 Jan 2023 08:53:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674550437; 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=9bWYrJcln5S7E9f471Z1zbb2m/g9n7d+JzeIHW2mNjA=; b=GWHet1eB8NWQy+IatBR7lJucv1RDG5pBOvPqUwlpEFRq5bJWLtTGmpdGj/Egw4Ezt7m+Ij yKuVz/qkpR3/Ejl8eGsVSVAFK5PGyT24nSu6qCoN+Lj33es4WW/K9gNXlkvqcemmGQVZtb 9ID/dN6219DuC2/jsOpPzRwxKIr87ePJt+2pm6R+Juytaqj4YrcLPJ3ttkkPbetw7lidpH Z9il41yG/f1qPdjiNpWeDnpVIimkEtCWus131aIQJmraAc11nPA4ibyUOBdl9bqqFbwxRh lpwP7GeEQSzlzLcn4uj+4l51Aigv+xsMDQ1eWFD9/hZjGnoEoTwyj/bTmzqCew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674550437; 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=9bWYrJcln5S7E9f471Z1zbb2m/g9n7d+JzeIHW2mNjA=; b=OS9a1hxlOGmQ1PHX9rnlAJQO83eX8yf6j2ykGHBiD+CfaEFOVOuYeJ6DLQ0yxxdvmJ6+zp XIMwakx96D32+pSE5YKiPLhYas8vAIC6WcHOZdF8gwAq4BDJipp1PxpFMAzh47YA9I7Sqe Xsptz8uAIoUnLAembzcd+muLyekfVqs0Q/n2vBh/z2VcMxNeYIFN4E6b8XVqEcphEVhTe/ 2CcC+Dd51vpq4X+ryIoc/qOAFkzPUHljeJK4QLc3H3uhxUrHXVwQQVctF63VsL2paEgnzy z2I23iqlbkLmxhPkyh5ALNDEm4H3YzUi7orpAmGI+ViYMpPBXAUlF1YX8vlUeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674550437; a=rsa-sha256; cv=none; b=IiWc8Bs5Vu3eFGi5J0aJfo0zAhPzNxvV3CrXT6/amvFHemhaUm/gBQBnzePW95N4+cl74p CwO2CQgRbdhT8JsVUm3mvv3GiCKBv9RY5I6TQz5v0Dsn/ime/nicyhnHb1e6Xj6oSz+Zxp x9g041/QT1itCWQncQNzz7fSeVfaAFDQyrPgVR3PNerhr/yWbtTtgVt5/VWf6P8yty91J8 MvRvEXVwBx2V+5z8A5dIDLLA3rqvFNnEwSg4m58iSUmszqYQR296g8cG6+9+oGTEKlrSfF XVK4q4tQBO6pY203u2FmG/ULdyQ1yytSuM+Pdh3QMj8C+y7Eze6V+EqGIX/ILg== 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 4P1LP13gP9z13Nq; Tue, 24 Jan 2023 08:53:57 +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 30O8rvEH035710; Tue, 24 Jan 2023 08:53:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30O8rv9L035709; Tue, 24 Jan 2023 08:53:57 GMT (envelope-from git) Date: Tue, 24 Jan 2023 08:53:57 GMT Message-Id: <202301240853.30O8rv9L035709@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Emmanuel Vadot Subject: git: e1534bafdab9 - stable/13 - linuxkpi: Add `krealloc_array()` List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e1534bafdab9c09f82b4a2bc429e5bf81fac75fb Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=e1534bafdab9c09f82b4a2bc429e5bf81fac75fb commit e1534bafdab9c09f82b4a2bc429e5bf81fac75fb Author: Jean-Sébastien Pédron AuthorDate: 2022-11-11 17:37:34 +0000 Commit: Emmanuel Vadot CommitDate: 2023-01-24 09:08:00 +0000 linuxkpi: Add `krealloc_array()` In FreeBSD, this is a wrapper on top of `realloc()`. V2: Check if `n * size` would overflow and return `NULL` if that's the case. Suggested by hselasky@ and emaste@. Reviewed by: manu Approved by: manu Differential Revision: https://reviews.freebsd.org/D36959 (cherry picked from commit 1ad6b2b1daa8937b2e1ced43802adba5734ba92b) --- sys/compat/linuxkpi/common/include/linux/slab.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/slab.h b/sys/compat/linuxkpi/common/include/linux/slab.h index 7d590683f346..d76b376c01a2 100644 --- a/sys/compat/linuxkpi/common/include/linux/slab.h +++ b/sys/compat/linuxkpi/common/include/linux/slab.h @@ -178,6 +178,16 @@ krealloc(void *ptr, size_t size, gfp_t flags) return (realloc(ptr, size, M_KMALLOC, linux_check_m_flags(flags))); } +static inline void * +krealloc_array(void *ptr, size_t n, size_t size, gfp_t flags) +{ + if (WOULD_OVERFLOW(n, size)) { + return NULL; + } + + return (realloc(ptr, n * size, M_KMALLOC, linux_check_m_flags(flags))); +} + extern void linux_kfree_async(void *); static inline void