From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.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 D341728851C for ; Thu, 20 Nov 2025 14:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763649551; cv=none; b=qGinEDhATv0uFFFbQDW45sCMPfK84UqUKUbBpGhfICOW6aBB6hzmCpn+mLFa7kQUs9Q+wH4QoG6P2vwcoGHuaIVJ/v11xGsyWnaF5b0c8NkAPATHg8FY1soUuiy2kNOeuJGPu3xTwFuKhDqxbSujitRLhjLFlWBNssfRlY4UkBI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763649551; c=relaxed/simple; bh=DH5oSJvR3dJe6OLgj5thuliJ6dQgbaPtx8wjWFyG4Hc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=b+Nb+RGAT1LuEDLJjrOUWNscWS5gJcGAbaP7jXQAaDz39H5wPyPMS90bIzMuU4frHnE/vN/1qYXYKcnrhILWd0hRIwnkUasf7bmdVnsUzZ7tebANvP57VLscDoxTSsL8m5cz7tsKBWUR/hcJB9G5FxpB4/DIwPFsVp+bdUCwD/g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rowland.harvard.edu; spf=fail smtp.mailfrom=g.harvard.edu; dkim=pass (2048-bit key) header.d=rowland.harvard.edu header.i=@rowland.harvard.edu header.b=PrycRMqz; arc=none smtp.client-ip=209.85.160.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rowland.harvard.edu Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=g.harvard.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rowland.harvard.edu header.i=@rowland.harvard.edu header.b="PrycRMqz" Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-4ee44df7750so7493851cf.3 for ; Thu, 20 Nov 2025 06:39:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rowland.harvard.edu; s=google; t=1763649547; x=1764254347; 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=Tsyge+UTNr06nxUBEgnp5/PyL3z7XzvVYDHeavNl7wg=; b=PrycRMqzPB55tkH8kLbqgKN9cJp/I1XRy4y+XkNpjKl8wi+qsU1kpBp3tv9z+9XVPE mwh7cj3OPXQ4CQ1LjxqmwEGC8qP7ofhUujtGFqgwveyJKqht8bFej/GweaUsDZgosw6q 8KMuA97wGqPVicbL9kQO2XrPtLzoyJtxf3yqU/L+zBIUQ5NZVCeAs5A0O1N+t7sw5/T9 RxduPutCBhXiC9tIyG00xy60Jo3/8ByXsKtl0KNP2LN+LJB6TfwvmS2tywJ8x5fqu0BF cLYlug3yPPUqAMU1dCPbmILRKGb5c/djg5yFhWlt3ZOKhvp0Y4WWdXHG3UkK0PG9+/Lg KXeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763649547; x=1764254347; 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=Tsyge+UTNr06nxUBEgnp5/PyL3z7XzvVYDHeavNl7wg=; b=KokEPOGfxI3Cy4qEzfQJaAbpnlNyzu2UVgjbuLiJnAfMSj2cxRNUKE/9byHVnTgqvS NACbfrsdFvqYxUs+V+zugMvT0uWBjjytNQE/tiwX2/TSOkFt0J9bxU4I9XuqwlSFrE9p X2naLOJvoqK81WkbicQL7HITx/04iIDWHxHiHc+9dnDDwcs3HTVQC+Xho22y/jwa+Xa0 hBuy/EWaIgl3rcXOvvxR8GxfQregp2cySPkTift6vYNq/Vx+Ok1R2BDKDzTr885vMTdU j19tknCi5/GZAvSN9NPpBfJtCJVZpDLEJFh8c/UTmQk/yIDSqfY/YNSbs3wJchkDY9sm fgvw== X-Gm-Message-State: AOJu0YxSushY1hs92KVBf1bxWQ3xeLESuXWc5YyfBDzkgp6IjSDXsHgj WRxWgvHbbO6NXyEjAbQR5WqURQGR7klnPSfARJCEjVTjP/2yof3spW49erO8OpltMc2QSktz2el PSrREDg== X-Gm-Gg: ASbGncuKu668hDEDofR1JWYV9IMU+A907+50Bu+vPMx3TE4SBnmqfFEB/cAxTwK7+MQ s9bbTGP0OwtBqeedJXNIiOnuX17I4GRLl21po0/00o7w2890wQHyNiuHDo6Xpso6k36tTIp5bXF b5etLFSrhP4kRQn82KdCnhvl92rWmkRYztsnN+4gggKGit6XxlMWdbccippq3ZgtJUkvxjfd5E+ ZhQVmWe2gJ9MfTEx6nEGlvXq3SMarJprm6nfep5a6UD1rmii2ACq5O7lqjwHw7kEONHlYTQ6Bqy F1MEVFPnTSL/OKLXC7LO5vrYEDS/mTMCLpdPKZy20JtZjfbg8N3PqmmhXKagWXc8xOTQr8RYBF5 crzv5/JJdrOJ4Dh3q1w6NDP2MRJBvVrXxtga/lxwCQpzx4baOHvUlrw6EbaX1wzvQ2dB12ZT5++ HQXaE6gADLX252tsZ02BlJFRkfpd+uGfSxSb3yyEqk X-Google-Smtp-Source: AGHT+IHLp6nckAQVgK/2ngVCfbWWF0HoJBajmN0+NB0f3cs0jt/2m3Sh3dQmu1QWNVCva0eiHfP1Og== X-Received: by 2002:ac8:594d:0:b0:4ee:278c:bde7 with SMTP id d75a77b69052e-4ee4d3c049bmr24878881cf.23.1763649547529; Thu, 20 Nov 2025 06:39:07 -0800 (PST) Received: from rowland.harvard.edu ([140.247.181.15]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4ee48b45ccesm16629521cf.0.2025.11.20.06.39.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 06:39:07 -0800 (PST) Date: Thu, 20 Nov 2025 09:39:05 -0500 From: Alan Stern To: David Laight Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, Greg Kroah-Hartman Subject: Re: [usb-storage] Re: [PATCH 28/44] drivers/usb/storage: use min() instead of min_t() Message-ID: <431b212d-e55d-4936-9318-a3fcf64b69af@rowland.harvard.edu> References: <20251119224140.8616-1-david.laight.linux@gmail.com> <20251119224140.8616-29-david.laight.linux@gmail.com> <4208129f-a768-44e2-843f-309c50ea362f@rowland.harvard.edu> <20251120091802.0b238c96@pumpkin> 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: <20251120091802.0b238c96@pumpkin> On Thu, Nov 20, 2025 at 09:18:02AM +0000, David Laight wrote: > On Wed, 19 Nov 2025 21:59:42 -0500 > Alan Stern wrote: > > > On Wed, Nov 19, 2025 at 10:41:24PM +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(). > > > > In fact, min_t(T, a, b) cannot go wrong as long as all the types are > > unsigned and at least one of a, b has type T or smaller. > > That is backwards, both a and b have to have types at least as large > as T (or rather values that will fit in T). > - which is exactly what people keep getting wrong. > Consider: > u32 a = 4; > u64 b = 0x100000001ull; > then: > min_t(u32, a, b) > has value 1 not 4. You are right. For some reason I was thinking that the comparison took place before the casts, which doesn't make any sense. Alan Stern