From: Nathan Chancellor <nathan@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: Dominique Martinet via B4 Relay
<devnull+asmadeus.codewreck.org@kernel.org>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Christian Brauner <brauner@kernel.org>,
David Howells <dhowells@redhat.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Linux Memory Management List <linux-mm@kvack.org>,
Maximilian Bosch <maximilian@mbosch.me>,
Ryan Lahfa <ryan@lahfa.xyz>,
Christian Theune <ct@flyingcircus.io>,
Arnout Engelen <arnout@bzzt.net>,
linux-kernel@vger.kernel.org, linux-block@vger.kernel.org,
linux-fsdevel@vger.kernel.org,
Dominique Martinet <asmadeus@codewreck.org>,
stable@vger.kernel.org
Subject: Re: [PATCH 1/2] iov_iter: iterate_folioq: fix handling of offset >= folio size
Date: Tue, 12 Aug 2025 22:16:33 -0700 [thread overview]
Message-ID: <20250813051633.GA3895812@ax162> (raw)
In-Reply-To: <202508120250.Eooq2ydr-lkp@intel.com>
On Tue, Aug 12, 2025 at 02:55:55AM +0800, kernel test robot wrote:
> Hi Dominique,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on 8f5ae30d69d7543eee0d70083daf4de8fe15d585]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Dominique-Martinet-via-B4-Relay/iov_iter-iterate_folioq-fix-handling-of-offset-folio-size/20250811-154319
> base: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
> patch link: https://lore.kernel.org/r/20250811-iot_iter_folio-v1-1-d9c223adf93c%40codewreck.org
> patch subject: [PATCH 1/2] iov_iter: iterate_folioq: fix handling of offset >= folio size
> config: i386-buildonly-randconfig-002-20250811 (https://download.01.org/0day-ci/archive/20250812/202508120250.Eooq2ydr-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250812/202508120250.Eooq2ydr-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202508120250.Eooq2ydr-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
> In file included from lib/iov_iter.c:14:
> >> include/linux/iov_iter.h:171:7: warning: variable 'remain' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
> 171 | if (skip >= fsize)
> | ^~~~~~~~~~~~~
> include/linux/iov_iter.h:190:7: note: uninitialized use occurs here
> 190 | if (remain)
> | ^~~~~~
> include/linux/iov_iter.h:171:3: note: remove the 'if' if its condition is always false
> 171 | if (skip >= fsize)
> | ^~~~~~~~~~~~~~~~~~
> 172 | goto next;
> | ~~~~~~~~~
> include/linux/iov_iter.h:163:22: note: initialize the variable 'remain' to silence this warning
> 163 | size_t part, remain, consumed;
> | ^
> | = 0
> 1 warning generated.
I see this in -next now, should remain be zero initialized or is there
some other fix that is needed?
> vim +171 include/linux/iov_iter.h
>
> 143
> 144 /*
> 145 * Handle ITER_FOLIOQ.
> 146 */
> 147 static __always_inline
> 148 size_t iterate_folioq(struct iov_iter *iter, size_t len, void *priv, void *priv2,
> 149 iov_step_f step)
> 150 {
> 151 const struct folio_queue *folioq = iter->folioq;
> 152 unsigned int slot = iter->folioq_slot;
> 153 size_t progress = 0, skip = iter->iov_offset;
> 154
> 155 if (slot == folioq_nr_slots(folioq)) {
> 156 /* The iterator may have been extended. */
> 157 folioq = folioq->next;
> 158 slot = 0;
> 159 }
> 160
> 161 do {
> 162 struct folio *folio = folioq_folio(folioq, slot);
> 163 size_t part, remain, consumed;
> 164 size_t fsize;
> 165 void *base;
> 166
> 167 if (!folio)
> 168 break;
> 169
> 170 fsize = folioq_folio_size(folioq, slot);
> > 171 if (skip >= fsize)
> 172 goto next;
> 173 base = kmap_local_folio(folio, skip);
> 174 part = umin(len, PAGE_SIZE - skip % PAGE_SIZE);
> 175 remain = step(base, progress, part, priv, priv2);
> 176 kunmap_local(base);
> 177 consumed = part - remain;
> 178 len -= consumed;
> 179 progress += consumed;
> 180 skip += consumed;
> 181 if (skip >= fsize) {
> 182 next:
> 183 skip = 0;
> 184 slot++;
> 185 if (slot == folioq_nr_slots(folioq) && folioq->next) {
> 186 folioq = folioq->next;
> 187 slot = 0;
> 188 }
> 189 }
> 190 if (remain)
> 191 break;
> 192 } while (len);
> 193
> 194 iter->folioq_slot = slot;
> 195 iter->folioq = folioq;
> 196 iter->iov_offset = skip;
> 197 iter->count -= progress;
> 198 return progress;
> 199 }
> 200
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-08-13 5:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-11 7:39 [PATCH 0/2] iterate_folioq bug when offset==size (Was: [REGRESSION] 9pfs issues on 6.12-rc1) Dominique Martinet
2025-08-11 7:39 ` Dominique Martinet via B4 Relay
2025-08-11 7:39 ` [PATCH 1/2] iov_iter: iterate_folioq: fix handling of offset >= folio size Dominique Martinet
2025-08-11 7:39 ` Dominique Martinet via B4 Relay
2025-08-11 14:37 ` David Howells
2025-08-11 21:37 ` asmadeus
2025-08-12 9:34 ` David Howells
2025-08-12 21:13 ` asmadeus
2025-08-11 18:55 ` kernel test robot
2025-08-13 5:16 ` Nathan Chancellor [this message]
2025-08-13 5:34 ` Dominique Martinet
2025-08-13 13:39 ` Andy Shevchenko
2025-08-13 13:45 ` Dominique Martinet
2025-08-13 13:52 ` Andy Shevchenko
2025-08-14 1:14 ` Dominique Martinet
2025-08-13 23:04 ` Paul E. McKenney
2025-08-13 13:49 ` David Howells
2025-08-11 7:39 ` [PATCH 2/2] iov_iter: iov_folioq_get_pages: don't leave empty slot behind Dominique Martinet
2025-08-11 7:39 ` Dominique Martinet via B4 Relay
2025-08-11 13:13 ` Arnout Engelen
2025-08-11 14:38 ` David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250813051633.GA3895812@ax162 \
--to=nathan@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=arnout@bzzt.net \
--cc=asmadeus@codewreck.org \
--cc=brauner@kernel.org \
--cc=ct@flyingcircus.io \
--cc=devnull+asmadeus.codewreck.org@kernel.org \
--cc=dhowells@redhat.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=maximilian@mbosch.me \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ryan@lahfa.xyz \
--cc=stable@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.