From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A56A638838F for ; Wed, 15 Jul 2026 14:57:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784127473; cv=none; b=X5Z3FrI+5p6VJc+kQQ0vUCIpm2JO1FofDo7fYFemp4LLRp6bbTW4sXQwJFBwlNUI8G63XdW31D5McatJlf40i0O7vhZ51BvVaXuhI4buA+r0X1ccgO3H6kmXFrvkM7/66HKDhEr89irr/juR5OMCeqTU1WxF23z1Tg2B9hRrWfY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784127473; c=relaxed/simple; bh=PW2mJfHyZjlyN9S4GL4Lp8iMlrLqmfztMPwvmMcY94k=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=DyCsQv856voSFnB8DB/Gglk6062G4NNlnaV21xEU/ZARoQsCL+wBuKW1u6LzuDMZBm3KO5TQWPlF55Muze3asOmu3uGYI5XNHoR12L9pVDQoBd/ZLKFSzgappiwaEA+AVGYNbyIuw8n9xVlq8LtxYyyJzgxs4thqLYEHIxR7QrQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=XWmRTXbO; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="XWmRTXbO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBE871F00ACA; Wed, 15 Jul 2026 14:57:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1784127472; bh=vfRtnxjfZ3oU5T8Eb23alHZ01HPHPeSx5LRzVurCIs4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=XWmRTXbOhEKSC9lNphNVaZiyeZhWAd7O1tT/kcuv6INW7mRKBx3OAWJUAoBAbfkl8 6QPLs30GBIAdTYjSsNSVdQv3y4VGPeHS81YaFzncJbtVRagXRJcZ9YFjwqzdif10Ct aQRSFRS7RzS7chVM7JLTkugoU6tGby+xgEy4Tw4U= Date: Wed, 15 Jul 2026 16:57:45 +0200 From: Greg Kroah-Hartman To: Vincent Mailhol Cc: Alexey Dobriyan , Andrew Morton , Rasmus Villemoes , Sakari Ailus , Nick Desaulniers , Alexander Lobakin , Arnd Bergmann , David Sterba , Ivo van Doorn , linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3] container_of: remove useless pair of parentheses Message-ID: <2026071505-fracture-opt-5374@gregkh> References: <20260714-containerof_refactor-v1-0-b5c31164d2ad@kernel.org> <20260714-containerof_refactor-v1-2-b5c31164d2ad@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Wed, Jul 15, 2026 at 04:51:28PM +0200, Vincent Mailhol wrote: > On 15/07/2026 at 16:30, Alexey Dobriyan wrote: > > On Tue, Jul 14, 2026 at 08:18:02PM +0200, Vincent Mailhol wrote: > >> The last expression in container_of() doesn't need an extra pair of > >> parenthesis. Remove it. > >> > >> Signed-off-by: Vincent Mailhol > >> --- > >> include/linux/container_of.h | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/include/linux/container_of.h b/include/linux/container_of.h > >> index 28500a62ab7e..68153170db32 100644 > >> --- a/include/linux/container_of.h > >> +++ b/include/linux/container_of.h > >> @@ -21,7 +21,7 @@ > >> static_assert(__same_type(*(ptr), typeof_member(type, member)) || \ > >> __same_type(*(ptr), void), \ > >> "pointer type mismatch in container_of()"); \ > >> - ((type *)(__mptr - offsetof(type, member))); }) > >> + (type *)(__mptr - offsetof(type, member)); }) > > > > container_of_const() has the same problem. > > Yes. But scoped I my series to the container_of() macro only. > > I don't plan to send a follow-up patch to remove the other useless > parenthesis. The things which really bothered me was the __mptr > variable which I removed in patch #3. And with that, I am done with > what I wanted to contribute in this file. > > But you are welcome to do this clean-up if you feel the need for it. > > > And it should parenthesize first argument to _Generic. > > Do you mean like this: > > #define container_of_const(ptr, type, member) \ > _Generic((ptr), \ > const typeof(*(ptr)) *: ((const type *)container_of(ptr, type, member)),\ > default: ((type *)container_of(ptr, type, member)) \ > ) > > ? > > Why would parenthesis be needed here? I don't see what kind of > expression would make the current implementation unsafe. It took me a while working with container_of_const() to get it right with the (), so be careful removing any. thanks, greg k-h