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 F35D1C4345F for ; Mon, 29 Apr 2024 18:34:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 532936B0085; Mon, 29 Apr 2024 14:34:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E3A56B0087; Mon, 29 Apr 2024 14:34:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D1796B0088; Mon, 29 Apr 2024 14:34:35 -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 1E8086B0085 for ; Mon, 29 Apr 2024 14:34:35 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9B8ADA039B for ; Mon, 29 Apr 2024 18:34:34 +0000 (UTC) X-FDA: 82063420068.19.587CBA4 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf17.hostedemail.com (Postfix) with ESMTP id DE56740005 for ; Mon, 29 Apr 2024 18:34:32 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=DknZsuwz; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714415673; 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=jC6bSyr5oonwWrDWbGBbEJAkPCiv04wjoLO2Q3L5KgU=; b=8T7wo2w2smI4FbJj7P22aTY8I+EPOBVyDWSJtOuMcsm/c9gx4WH1fa2oJK283PNN36b6bp TBGOh+DJV2GaqNcBBjVhnnzyFtyKObw/WfzvkFQy5MNlxznnBsWjvmMOgASB6E92Foc7OW 7RiCHyS2baLLDcbQp6Px7YpE8C/qqfY= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=DknZsuwz; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714415673; a=rsa-sha256; cv=none; b=wu3w8xUaiKE6PzLUL+yoklGXG5hCoo9zIGKAET0Wnf3wQYWIPtqvxQ2Y0XupbD5GDYd1ZR JlcwCZ8DrYhnrEK0QAdPYUyGiKFGWiSvuygbcXItdUDLwGO9i+O/lInLzzaE0hgo5sSxNd ZSCjZfu23HHb4FgJb7M5j3y5Qm5F9Nk= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=jC6bSyr5oonwWrDWbGBbEJAkPCiv04wjoLO2Q3L5KgU=; b=DknZsuwzHHHEgR7uIz155aKKoP muMbKntDvFIhGVgxlwB1C3G37ruqpiueUsgPiHrKoEhreK3riyfPmzgWGNjgs1wFl0IlCa0vfZnM1 jTsbtPZUkATj20Fw7uE3hFa/uzFsAEXNYsvL6WZiAl+WgFMN8urqS1pj73wY2OXulo4c2jbFpI8z0 eeLeLq8GYnZG1TqcwORanP2M47MM59gYy1PSaHDKRPnl0ObM8dH3IYSbvW8dAdfcgVVjhADuAU6g9 ZMUqox2L5PCr3y+RdssQKDID7ATf7KF/C4zvM6HwGrKKZrBAZvUr0jQVWnn3JXZBHWJHZKggn+1F7 6t/VgbWw==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1VpY-0000000D53Q-3aYH; Mon, 29 Apr 2024 18:34:24 +0000 Date: Mon, 29 Apr 2024 19:34:24 +0100 From: Matthew Wilcox To: "Christoph Lameter (Ampere)" Cc: Dan Carpenter , Peter Zijlstra , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Bartosz Golaszewski Subject: Re: [PATCH] mm/slab: make __free(kfree) accept error pointers Message-ID: References: <285fee25-b447-47a1-9e00-3deb8f9af53e@moroto.mountain> <571761df-fe50-49e8-8d56-65fbdec9a185@moroto.mountain> <6406512f-12de-1ab6-05c9-4583c0cb01e6@linux.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6406512f-12de-1ab6-05c9-4583c0cb01e6@linux.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: DE56740005 X-Stat-Signature: osr97eg617ezoeje3w7ztnbgnocdmypm X-Rspam-User: X-HE-Tag: 1714415672-209773 X-HE-Meta: U2FsdGVkX1+SWa2orxgYiqzsXG6W5EvRKQNHXhT5l9RMR4e5KDV4QgwhESJTY+6M/r1v0AhOKeJYFV83J1OnF/FPkwx9HmEh1UfW9igw+dg9AB0Fo8glbmANnLrkOoPcTcFEAMfG/pZhNKMVAFtjiCzGioOTVvS1GCnZIStjwYTyisXKkGsZJTsbVv/9DQjSNy6w6ptEFJFFeVLhOcHp86j5jVfpHi5QJlgqjShVmB8En87RcSwCB5o3uaA60wWQ47R70XNCq+5TyE+XHOQ5DjJCy9XYICclfZAC5MnJQpGJdQMb1kkYgHyv/J9kcHh19sRJBEBEEWECaLL/nxbZ16KDBT5Nw5lHWGuY4NFVSCuX7OtdZvU31rjTWQm6OJQNAdwvbq7RJv6HqG0FWKqfO/gnvkn3JaIgRCDsVtvizykrLabNbvN8JN9gdKCIYJUNo0yqtHufHXiAnWGxqFX4fm4Mz4xko5m0Bs8qZCgQa6RY9CQKCYumAqUNnrSI2fYCwtyKVEDYlwdFpLKoS1KdrzWPsYiX1acesp6Qv2inH876sr1UuuDSdf171O5K5bKXKfDFcC5r8cYYUpciFTEhe1IoLCqoIo5V5P6DXF/Tv/pX+bRTymr9avar9iDetmDp3vXkGKzbzJj1WE8RQGN4vwr/k6LxH6N0ViiHCGbyXBQN5awfxMEkMurGMj7L1nk4ufc0sq1rF0bxx33Kt1MVTEdpRwbutP9PjYveaYoub53jq1yvmNXiFvRJlyKCcnI6CuvUdrH5HM17/QsJLNpZRcA4U8R0o+7IuxhBuQ2FgqPx2VkIaS2bVb6r0mSeF1xVQk7jiHeMnuujAQfbpMJ0zOaGsO3+EkXpvPIHDfoNc8n3vG7w/VHVNN2llq4qSnVko1/ExD8UZOYOzGyIgfK9sy5roBueLXw873yAyY5rN4QTDJgxegs0YxABItdEoXMoG0RLR4aCYF1b081/RII GvTGVztl PgRD/Ckde7oc7+Sdf5ujK4U7xbFlW7CezX1pgCANgTVw50Q9ypBZOvNuNmhjKbeECRSOJ2TKrTBkeNTGlrX51e+DkJaV4BmZzZuVAl62fDKsp7pzhNsOFIF431+m4ke/td5JqSIookpGQxBsujS2IWeCEBKsd22rZzj5qN2NM7T59+BjAKPPUV/QbCvT7iL3jb5PsEh1BveBt/mXsLxoQ1Ng7pQA8pFjnCUWRckBpH4K053AwH+SMVYyNM1eKbQ3m9Huc 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 Mon, Apr 29, 2024 at 09:29:58AM -0700, Christoph Lameter (Ampere) wrote: > On Mon, 29 Apr 2024, Dan Carpenter wrote: > > > I've always thought freeing pointers that have not been allocated is > > sloppy so I like that kfree() doesn't allow error pointers. We always > > catch it before it reaches production and that teaches people better > > habbits. Personally, I like how free_netdev() only accepts valid > > pointers. > > kfree() already checks for NULL and ZERO pointers. We should add these > checks in *one* location. > > Maybe issue a WARN_ONCE() and simply treat it as a NULL pointer if an error > code is passed? Did you even read the initial patch? The point is that this new automatic destructor path can pass error pointers to the destructor for completely valid code. Warning would completely defeat the purpose of this exercise.