From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83B19C3601E for ; Thu, 3 Apr 2025 17:46:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD6C8280006; Thu, 3 Apr 2025 13:46:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B5F3C280005; Thu, 3 Apr 2025 13:46:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D832280006; Thu, 3 Apr 2025 13:46:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7B02F280005 for ; Thu, 3 Apr 2025 13:46:30 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4724E1C849F for ; Thu, 3 Apr 2025 17:46:31 +0000 (UTC) X-FDA: 83293462182.07.B5DA1FD Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15]) by imf27.hostedemail.com (Postfix) with ESMTP id C5E2040005 for ; Thu, 3 Apr 2025 17:46:28 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=GPeSAtoZ; spf=none (imf27.hostedemail.com: domain of andriy.shevchenko@linux.intel.com has no SPF policy when checking 192.198.163.15) smtp.mailfrom=andriy.shevchenko@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743702389; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Q5gcc5IFZwT5cwfkK1LdyPdDF9nyGh/E1mfzORV+BT4=; b=5peT82HjHRWecithlb/cOUIQ/fDqhqvLKpxALnXXV70Vl/p9XwAZ8pa9Soft8m4p74bKPu NGQV2k09MCWF8pAm+OVHVwP0WHUJokaJC3ry4aC0Wu+5tK7YXXwsUi2JFxY3hr/zcdoVBk QCuB0RFBpt47Uop9UErx3EKS+aUsuc0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=GPeSAtoZ; spf=none (imf27.hostedemail.com: domain of andriy.shevchenko@linux.intel.com has no SPF policy when checking 192.198.163.15) smtp.mailfrom=andriy.shevchenko@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743702389; a=rsa-sha256; cv=none; b=8SXE+auXa8jy89IersH/5Xr6dowFtpoXP9t0rFGJzNVVDztXn7kyXmtFBOZbchxDDK8DWB +H1eNKj48EHASbyZbyYHKkYtNQzYZMuTyT4TLOthF0Jku5SETzj41GPP/+FqgQnrkHMxDd BACWmyP0ENN1aIvcMUIzcfnNPeF/TU0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1743702389; x=1775238389; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=CrVVJHvTACiAZiAbOqNpxsX5Sm/7YBaDo7amhX5eups=; b=GPeSAtoZ0F927Dzz6Lq64SHtN6Z1hldPsuWrbCdBuarDMIOIcsnaa0uC 7DAm9AWJO+52qHhfcbPkMRePrPRdhfXD84sHCJqMbRhltXgKDD4o7Xkl8 9tXdhIyIf+4G8OyWjdubFcB7Vmp3qoIuIW7sR+E1Tyiirr1+Lw6TgqHNy fGhzIqXsQiteK9a1LJHL1l9q68bwqahewIWk9ltus0pcvYVkA7Bhlup5L e7YMm+eYllQYwtuaeQvWzXnaBxMpE9IcX6oIW+rqYaUGtU5jwgoEgmO22 oKEAeV0VOe0G8CWhbV4C6sWzXKolAdVimgtlMTXIfKQUxjkIZv56EuLHS w==; X-CSE-ConnectionGUID: bUd330zdSA65DLktnJ0n0g== X-CSE-MsgGUID: DOr7RgVrTjip7GH31MUQDQ== X-IronPort-AV: E=McAfee;i="6700,10204,11393"; a="45247845" X-IronPort-AV: E=Sophos;i="6.15,184,1739865600"; d="scan'208";a="45247845" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2025 10:46:27 -0700 X-CSE-ConnectionGUID: XL8V0+HVRweSrPe2l+1fFA== X-CSE-MsgGUID: fYhD+ywtTVC4LwHnZlU8Zg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,184,1739865600"; d="scan'208";a="164309309" Received: from smile.fi.intel.com ([10.237.72.58]) by orviesa001.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2025 10:46:24 -0700 Received: from andy by smile.fi.intel.com with local (Exim 4.98.2) (envelope-from ) id 1u0Odw-00000008ssY-2AYW; Thu, 03 Apr 2025 20:46:20 +0300 Date: Thu, 3 Apr 2025 20:46:20 +0300 From: Andy Shevchenko To: Matthew Wilcox Cc: Kees Cook , Vlastimil Babka , Przemek Kitszel , linux-kernel@vger.kernel.org, linux-mm@kvack.org, torvalds@linux-foundation.org, peterz@infradead.org, Jann Horn , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Harry Yoo , Christoph Lameter Subject: Re: [RFC] slab: introduce auto_kfree macro Message-ID: References: <20250401134408.37312-1-przemyslaw.kitszel@intel.com> <3f387b13-5482-46ed-9f52-4a9ed7001e67@suse.cz> <202504030955.5C4B7D82@keescook> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: C5E2040005 X-Stat-Signature: 5twxktdszm4846ipwarye7x19jisa4x7 X-HE-Tag: 1743702388-503241 X-HE-Meta: U2FsdGVkX19hWIT74qMv0XIsrq2DzXC+BC0eslSpEZ/g5ojhZnWYQVbg+MDwCTZ6q0t11ZWd3Rcv2hRnZ6YHz34qKdJt2B3IcNxm1F4ZACTkarNU8RLk01Dwu38JU5YD45v2bkj0xEjeuuOKz2QB0BzuCOg4X+QxLEk58x4tS9TfBXnpl9TLtyprdU+9dx73N8SqpMcW0ol3MB5Rt8juaE01ad+5ND5TYvspX2AukwzkoV8zys2ZKj57RsVt7fy4fB4EIcZpXXISQXgcFH3Al5eAtsR6kCwGlDgfa99OQld7Xf/sulmZ6fNqLpGizGFOEqg/L3wybLp1EhObluW2UMHdVyl/OohDhjso87M51ITUIg9GiHFNSPsDLoIXJLpB7wG9NiuJoyQ1zlZTiKdT8vQIKeE4Hi6NmBANtX5exrh3Qj8CRg1ldztZQ2nBDsKpiKreWoNnAKrVzHA43eDNoDrKsPUT2cIWiVBIP2ArO93Qd9W3nSXX2l6eIM+DLXXkBY/Ao+mXAvbhLKcx7UTrGiCASADmwTivxLEgPcSfz1Mx/2sJ8G3pqb4CnANsu8juu2SZgfc6lFMxIYvqCE+vuW9PAylDeW9dOMCqtA8I4M+60j0HqZUTHjpjRnZth/qvJSl2Gd/ktEHFELEJHw2/LZ0G8hHwereK3IwcVs1e+eM5wrN3gLmuiqnV9H6X5rfvBJwgckRG9DFTRV5KRWQFwjacwrbjcPvze8uPvLP0gHpS7CioB9bC/HI9dZg9GMMPVqZyME2KAe7kWz3+/uQlJlnZwuqhhw3iqFfDOj8eozbpyz4+c8EpkQIIJHgeCERJUk4J3Q1mys7LPeXgJHv8XBGJYVH6/OkRlEea01zP4wv7au8i3xUMMn/13PBM59zrdYMtZjX4Ua6t5UjIgM9R7XClFjfJB/ZK8ZdaU4imLrSk2sFY7lDbQeJj5pv8TlGPRqNSDVCTb0rUHL0Uupw BKcrEFBn VuKPgyb46UvbtlfzxBvYuxnqz0taX/YqqlMY+lwk+8wFZnKMoAuCiCPIDmDEta9qBOkc9Lvo/P3fdDRtlIKHNAQz1FGzL0EI9gOuPQhvmTdlZFNMHBvdJhFY1zbv//tyIeAx+g5PyNioshpN2TD61F2uN4iNH4vu5fI8BykNXcOvtj4KxJFEIet57W52D7gr31sIqlY2WlHZlgGowkU0z/0CwB/5FNetPgL9mRc/TGNYS+F4rn76Kd97G1F+9+QNKIIYqecDOw5A2l2TaEMf0TgbqE51ICTJ3e+cJtfUKB6t9nbA= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Apr 03, 2025 at 06:35:39PM +0100, Matthew Wilcox wrote: > On Thu, Apr 03, 2025 at 09:59:41AM -0700, Kees Cook wrote: > > On Wed, Apr 02, 2025 at 12:44:50PM +0200, Vlastimil Babka wrote: > > > Cc Kees and others from his related efforts: > > > > > > https://lore.kernel.org/all/20250321202620.work.175-kees@kernel.org/ > > > > I think, unfortunately, the consensus is that "invisible side-effects" > > are not going to be tolerated. After I finish with kmalloc_obj(), I'd > > like to take another run at this for basically providing something like: > > > > static inline __must_check > > void *kfree(void *p) { __kfree(p); return NULL; } > > > > And then switch all: > > > > kfree(s->ptr); > > > > to > > > > s->ptr = kfree(s->ptr); > > > > Where s->ptr isn't used again. > > Umm ... kfree is now going to be __must_check? That's a lot of churn. > > I'd just go with making kfree() return NULL and leave off the > __must_check. It doesn't need the __kfree() indirection either. > That lets individual functions opt into the new safety. Maybe something like void kfree_and_null(void **ptr) { __kfree(*ptr); *ptr = NULL; } ? -- With Best Regards, Andy Shevchenko