From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f173.google.com (mail-yw1-f173.google.com [209.85.128.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4A9635B153 for ; Thu, 20 Nov 2025 15:19:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763651967; cv=none; b=g6Mm1J0ohBUMWB9dPZ/oLij/p4Cu8NsfO5tLTCZRWgi1UPPoYGhua/vVveAMIOvDxeZHSLUKowQgLD+ufANqieWMC/9gbQhTjJq22dqlq9XKWM5GiMSdO8x416AAI+jJkC4PczEdpFAWWxTUXIw3dF62pZi2kqsRJwUcFHzM+9M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763651967; c=relaxed/simple; bh=XQajzhr5GiBBlgmxGNCTgQCwWSqSOr9csW42G05oT3U=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=L/GhMFyY7kA1AbmGtzqbnIuYW0FvoCYWw7GFdIId4ejlzmGAQvyrgQKU8InIjQmVY0aUkeOT19owlgCjkoLzpqveVmBgz/7DOYemI8WLaPgP5gfJ9wxmf0hSISY50lqZcorflb3Fp52Rr3s+hTW/e8B09gYUu6rcFi9PYFsw0wQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RKHJJZAy; arc=none smtp.client-ip=209.85.128.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RKHJJZAy" Received: by mail-yw1-f173.google.com with SMTP id 00721157ae682-78665368a5cso9573117b3.3 for ; Thu, 20 Nov 2025 07:19:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763651964; x=1764256764; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=6fop76EbMlIBUR2H+1so7ObfofKPqjYAwLj999yQMpU=; b=RKHJJZAy3zBDeRA18Y4gHa3VTXBr9z+DoZCPlI3+1gebS5NiX9O4U+62eMPnZsXgI8 6TruIfO0UpNXM0dPLedhFz+8lpD9KL8Xve5YbCp87zx2jRqcNwnAgTgO+r/5jR3mWTtD 8j7ANKySpLLKkiMRdZ1yM066TNZMMnD7VAjnZrySpLwYs4AC8OPU6tGp2CWa1pFDXMkr MIT66QwlhdY4nfVYFqvkN9+m6rwv/3dWjpZPLYRNnwJ6Oovy3X5cHqUHc2Kn20Hghp+2 uOvBqhnYb0OplEQZlRTRVVOB2oN1RFDdFEjN1KKUUjMNhRuJMQpAJnDdj5Lafx9WEr52 H+iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763651964; x=1764256764; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6fop76EbMlIBUR2H+1so7ObfofKPqjYAwLj999yQMpU=; b=neiO/Dm9w4v+uY3wRIkP7mQcIXRZzgIrvrWGgkrpWn78YaRIPHUDI/YXgQTpWgAgzH h7F1bQu4hlajsXVACXp0DEwMvLPHyAyXQJMbmVMtY/bk2VFBmTYWtzfG+WzxwWhJr2sU aJ3AP0cM/DpKUZS3z00l9DLqODWQJGAn0BImeaPFJtv4tlYU74rmRt9bNS5s//IlluIZ hvhwmeDBzvwI7uHdwzq33rvl+rtZsz3uAT/zrAfcPJmUI6QdT8uiqJBXxZJ3Sn0nAYrq kyXMQX9RL4BcAnJkDFNLIZDfWTvXm50T8+fTrATKF4KbdlXwHlnzc/1Dsm2fJicbRsgT 3K5w== X-Gm-Message-State: AOJu0Yx16fzqX0ZDP3KMUjMIFqlgsTf3q6Q+VtLGkxdwMaxdWjcEyTwA Se1/JaUAseDSC3hm1qTAzakHuJWP7alBelNJcytQfQwlLymfQNRymMpE X-Gm-Gg: ASbGncth0VUzcWBZnfjGMTR20IMP7PjRkpFRJDKg8i3hxct82y7Rbz+RObO9P/rNhUB ihrCcVPt5w11W091uuA16EMJbtJrUIx+6r2eF9c6UcOnOrhOIvIKwpQ4uOrHcFaU6bk5lDzXStl frbMV1ROBcsgute9XNSg2jQ246S3gHN4FNjBN7DdJV95fxQv7ChCDTgCD4C5TwvYnjDOd3DSJ1i q0LezoujCLA7VzR644seq8lqGGtvu3tiNqN/LC/WUr4htsugpMM0bBNPuNt4c6FBLGFeA08Lr6j U6xBr3ki4A3vZ3U001JsNOWyxOR9GXsBU0z8uDzjMxbcNbE+OZ5HTBklSq0G4hq62FevhIzS0rB uGDeQriAvsGD9GwjVEDQFQBy2mnXKotRudE7p12Y8sz0PsrSamc1SVbtVki8Obu6F8bvcyY5Mhp ikbEam17JCaHMV2zQ1ufdJ9WMfFY8SqK39HZorXDQWcdbTTIf/gDM1Ww== X-Google-Smtp-Source: AGHT+IEkyFMxtDQi0ruPSS5IsE4FDK9s2v0De4Xv/aco0fFxHtZAzsPON9f8HeVY9fuMCz10GB04Dg== X-Received: by 2002:a05:690e:11c8:b0:63f:b4a1:5408 with SMTP id 956f58d0204a3-642f79bc353mr2728491d50.42.1763651964507; Thu, 20 Nov 2025 07:19:24 -0800 (PST) Received: from localhost (c-73-105-0-253.hsd1.fl.comcast.net. [73.105.0.253]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-642f6eb16f4sm888865d50.0.2025.11.20.07.19.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 07:19:23 -0800 (PST) Date: Thu, 20 Nov 2025 10:19:23 -0500 From: Yury Norov To: david.laight.linux@gmail.com Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH 32/44] nodemask: use min() instead of min_t() Message-ID: References: <20251119224140.8616-1-david.laight.linux@gmail.com> <20251119224140.8616-33-david.laight.linux@gmail.com> 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: <20251119224140.8616-33-david.laight.linux@gmail.com> On Wed, Nov 19, 2025 at 10:41:28PM +0000, david.laight.linux@gmail.com wrote: > From: David Laight > > min_t(unsigned int, a, b) casts an 'unsigned long' to 'unsigned int'. > Use min(a, b) instead as it promotes any 'unsigned int' to 'unsigned long' > and so cannot discard significant bits. > > In this case the 'unsigned long' value is small enough that the result > is ok. > > Detected by an extra check added to min_t(). > > Signed-off-by: David Laight Applied, thanks. > --- > include/linux/nodemask.h | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h > index 7ad1f5c7407e..bd38648c998d 100644 > --- a/include/linux/nodemask.h > +++ b/include/linux/nodemask.h > @@ -245,18 +245,18 @@ static __always_inline int __nodes_weight(const nodemask_t *srcp, unsigned int n > } > > /* FIXME: better would be to fix all architectures to never return > - > MAX_NUMNODES, then the silly min_ts could be dropped. */ > + > MAX_NUMNODES, then the silly min()s could be dropped. */ > > #define first_node(src) __first_node(&(src)) > static __always_inline unsigned int __first_node(const nodemask_t *srcp) > { > - return min_t(unsigned int, MAX_NUMNODES, find_first_bit(srcp->bits, MAX_NUMNODES)); > + return min(MAX_NUMNODES, find_first_bit(srcp->bits, MAX_NUMNODES)); > } > > #define next_node(n, src) __next_node((n), &(src)) > static __always_inline unsigned int __next_node(int n, const nodemask_t *srcp) > { > - return min_t(unsigned int, MAX_NUMNODES, find_next_bit(srcp->bits, MAX_NUMNODES, n+1)); > + return min(MAX_NUMNODES, find_next_bit(srcp->bits, MAX_NUMNODES, n+1)); > } > > /* > @@ -293,8 +293,7 @@ static __always_inline void init_nodemask_of_node(nodemask_t *mask, int node) > #define first_unset_node(mask) __first_unset_node(&(mask)) > static __always_inline unsigned int __first_unset_node(const nodemask_t *maskp) > { > - return min_t(unsigned int, MAX_NUMNODES, > - find_first_zero_bit(maskp->bits, MAX_NUMNODES)); > + return min(MAX_NUMNODES, find_first_zero_bit(maskp->bits, MAX_NUMNODES)); > } > > #define NODE_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(MAX_NUMNODES) > -- > 2.39.5 >