From nobody Thu Dec 18 15:03:37 2025 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (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 4E139364054 for ; Tue, 16 Dec 2025 16:00:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765900812; cv=none; b=mtaXRKQQyoxQnPPiSZDeNGxuRDPP2+5QyeibbP5CtGoK6ZHZEG2ZUFDxa1l+8esBM7XlNz/UMFgqQlDc0HkUu+bYuWD2R6LQs4fDCYAQbOAk2rw4zqkFNCxyEUbkI+/kOKOnZS3BYxOJ2gz2JPn89FnuUFYTv+OJwI817ox5Gzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765900812; c=relaxed/simple; bh=NfVFaEsgYlTNWhHiG9lD88HgIX1yIjeLewaZDgU2dKI=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=rcF4mvk54xLM/U2PZHrwT+YzjZuzY+TrW2Q/SVUyB96Py6mgH5nil/V6bLu4hVnFa1JN/Wd+oIYWTWitkEAuf5St3fiLUJaN5JHb91DGgA1xjRqWViTKPHwdfKbKvWFdLD+t8w6IkVrWHjvjISInXbkyfUABmtQzdQPP7BqVmto= 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=MUJcr+EY; arc=none smtp.client-ip=209.85.208.43 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="MUJcr+EY" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-64198771a9bso6703279a12.2 for ; Tue, 16 Dec 2025 08:00:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765900808; x=1766505608; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Jc74d610ubg8JlIaa6JmNgUpYxdbPfvvf6uFfQxvzNI=; b=MUJcr+EYy+trg9fJNHwpzJAguFImGpsTWW0pq8+H4MdNhqlgPwvFqjgR0OBTzvDl9Z EjWJeDvfNgREwery6RT2SbRa2dr5onVM1En7oiAystbKJ4fwYZPxt3Ruazg5bljnsgsp JAtzNjMMAZoHnhMQeRNwcjubzKDrHzYPxYy234jNKVssQT0UlDM7/r44HNw2SwI+HFmH 0ChUqynClvVSZwC6eWmSFq+TLKb28GYIDzBvBcoxovtnMGfR5r7bJAlj/YZaACzx/0O1 WLdwyULGzDst5yRHc1fG8kJ3j83qWdYXcKLE1tIIgCNEwDgkZQ77n04wprT2l7HG6DRM YYng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765900808; x=1766505608; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Jc74d610ubg8JlIaa6JmNgUpYxdbPfvvf6uFfQxvzNI=; b=htazaq461HLkbyos7YJ/OE4k/3DthlzAbk878pohtS0ZJn42Opls7ge1vqCiOHjhua qWs6W5SCLv4vPkxczlHLDTrbHNmPXVRkOytSmXcmmx/BcQy4Mjmwc/5exwkXT30LFqdG NLW4iH/oYAjm2HOYIctctdH15C/0CScILJXWWjfFbC6vcK3zxiE8VyDXvbjG6uBq2hjX fZgl2H7WGUmgtScLKFSsc1TMDNudVNEt8fPQDn1npYjPNdQOXhFPFTB2Iii67FmVK2CU 9VxEf0WW3QkfTLnrNn4qseunayDejto4mE8RXT1zay2ySseNPTpl/aIOxkOyJcmt93C2 1j5Q== X-Forwarded-Encrypted: i=1; AJvYcCWC1YU43KNc4qBcF0jiyBkcUzAqw0tRje/gZ8vN5+/6qWr8bCbXr77eoA1DFmIMBpVmhFNGeutzNprcy1w=@vger.kernel.org X-Gm-Message-State: AOJu0YxfP7J2u+By/LgJI8FRJt5D3dX51cgILszSxItArROl5U/M7Uwa wYIjzI7k0YbnnNHgOrpAOcWTigI/M6pGZgzhXE/HH4vSSqqqdgdbGrHwg5BdRw== X-Gm-Gg: AY/fxX6bt2zX7l6GonUjvnbMVysZwYue2G/Q3nU61c/x46ffPvnkmHScTk/gQ+N06C6 QOk/nGk5V+92KynusMR8ruszoewSVfJzQsoAbiAQAkJSMcPwU+bYvG63lOvG2syAQCk/7poMX3N xMeQeQQEumGbc0ymv+6NervBxRbdwwrojd79I7h2NTCOWnajOZsE4+1+kJn0HBmPGvSxkypqvTz to/bOaTNgyD0oLC5bYvDSUYZT8fanoFuw+vzc3JvG01tzk3kHxwazvrS3CF7xGrUW9ktLu9Hbe0 1WiZvppHS3/A36DGrhXvEfjgXE2FyvRezQMFGDRhXMM/ZTnqgf4TeX5nLn4t+mLCN9riyCZut3e UOUH9JqTMzPY232b+whEvCgr0wvz0bGJeF4ZqVD5v1BSM+7ImoeAQFxL9l5kxcZLeY51HQqXyUf Ev/9RApFJ8R6oxvX5voThD4aCHgagtrxK0XURIryH11iV90LbIwupGe/8T9yOv+hWKkvh/R8SES OmNYJsVocY= X-Google-Smtp-Source: AGHT+IE++hUTpvVDoXTnEPkKwj2xABrPJXo5oPLEznAqITCPrZaE2A39nltiMCOFhyKLkzIMNDObkg== X-Received: by 2002:a05:600d:105:b0:47a:97c7:f08b with SMTP id 5b1f17b1804b1-47a97c7f1a9mr66099745e9.31.1765894609327; Tue, 16 Dec 2025 06:16:49 -0800 (PST) Received: from snowdrop.snailnet.com (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47a8f74b44csm240035745e9.3.2025.12.16.06.16.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 06:16:49 -0800 (PST) From: david.laight.linux@gmail.com To: Bernd Schubert , Miklos Szeredi , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: David Laight , kernel test robot Subject: [PATCH] fuse: change fuse_wr_pages() to avoid signedness error from min() Date: Tue, 16 Dec 2025 14:16:47 +0000 Message-Id: <20251216141647.13911-1-david.laight.linux@gmail.com> X-Mailer: git-send-email 2.39.5 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Laight On 32bit builds the 'number of pages required' calculation is signed and min() complains because max_pages is unsigned. Change the calcualtion that determines the number of pages by adding the 'offset in page' to 'len' rather than subtracting the end and start pages. Although the 64bit value is still signed, the compiler knows it isn't negative so min() doesn't complain. The generated code is also slightly better. Forcing the calculation to 32 bits (eg len + (size_t)(pos & ...)) generates much better code and is probably safe because len should be limited to 'INT_MAX - PAGE_SIZE). Fixes: 0f5bb0cfb0b4 ("fs: use min() or umin() instead of min_t()") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202512160948.O7QqxHj2-lkp@int= el.com/ Signed-off-by: David Laight --- fs/fuse/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 4f71eb5a9bac..98edb6a2255d 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1323,7 +1323,7 @@ static ssize_t fuse_fill_write_pages(struct fuse_io_a= rgs *ia, static inline unsigned int fuse_wr_pages(loff_t pos, size_t len, unsigned int max_pages) { - return min(((pos + len - 1) >> PAGE_SHIFT) - (pos >> PAGE_SHIFT) + 1, + return min(((len + (pos & (PAGE_SIZE - 1)) - 1) >> PAGE_SHIFT) + 1, max_pages); } =20 --=20 2.39.5