* [linux-next:master 11181/11507] fs/iomap/direct-io.c:996 __iomap_dio_read_simple() warn: bitwise AND condition is false here
@ 2026-08-02 23:43 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-02 23:43 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Christoph Hellwig <hch@lst.de>
CC: Christian Brauner <brauner@kernel.org>
CC: "Darrick J. Wong" <djwong@kernel.org>
CC: Fengnan Chang <changfengnan@bytedance.com>
CC: Joanne Koong <joannelkoong@gmail.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 415606a7be939835db9b0d6b711887586646346d
commit: 335d4b6201ac317d906e6a694f07de0792325fee [11181/11507] iomap: decouple simple direct I/O reads from iomap_dio_rw
:::::: branch date: 2 days ago
:::::: commit date: 3 days ago
config: x86_64-randconfig-161-20260803 (https://download.01.org/0day-ci/archive/20260803/202608030751.N396tSCu-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9187-g5189e3fb
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202608030751.N396tSCu-lkp@intel.com/
New smatch warnings:
fs/iomap/direct-io.c:996 __iomap_dio_read_simple() warn: bitwise AND condition is false here
Old smatch warnings:
fs/iomap/direct-io.c:376 iomap_dio_bio_iter_one() warn: bitwise AND condition is false here
fs/iomap/internal.h:15 iomap_max_bio_size() warn: bitwise AND condition is false here
vim +996 fs/iomap/direct-io.c
36f199c8d0ee4b Fengnan Chang 2026-07-01 985
335d4b6201ac31 Christoph Hellwig 2026-07-29 986 ssize_t __iomap_dio_read_simple(struct kiocb *iocb, struct iov_iter *iter,
335d4b6201ac31 Christoph Hellwig 2026-07-29 987 struct iomap_iter *iomi)
36f199c8d0ee4b Fengnan Chang 2026-07-01 988 {
36f199c8d0ee4b Fengnan Chang 2026-07-01 989 struct iomap_dio_simple *sr;
36f199c8d0ee4b Fengnan Chang 2026-07-01 990 unsigned int alignment;
36f199c8d0ee4b Fengnan Chang 2026-07-01 991 struct bio *bio;
36f199c8d0ee4b Fengnan Chang 2026-07-01 992 ssize_t ret;
36f199c8d0ee4b Fengnan Chang 2026-07-01 993
335d4b6201ac31 Christoph Hellwig 2026-07-29 994 if (iomi->iomap.type != IOMAP_MAPPED ||
335d4b6201ac31 Christoph Hellwig 2026-07-29 995 iomi->iomap.offset + iomi->iomap.length < iomi->pos + iomi->len ||
335d4b6201ac31 Christoph Hellwig 2026-07-29 @996 (iomi->iomap.flags & IOMAP_F_INTEGRITY)) {
36f199c8d0ee4b Fengnan Chang 2026-07-01 997 ret = -ENOTBLK;
335d4b6201ac31 Christoph Hellwig 2026-07-29 998 goto out_dio_end;
36f199c8d0ee4b Fengnan Chang 2026-07-01 999 }
36f199c8d0ee4b Fengnan Chang 2026-07-01 1000
335d4b6201ac31 Christoph Hellwig 2026-07-29 1001 alignment = iomap_dio_alignment(iomi->inode, iomi->iomap.bdev, 0);
335d4b6201ac31 Christoph Hellwig 2026-07-29 1002 if ((iomi->pos | iomi->len) & (alignment - 1)) {
36f199c8d0ee4b Fengnan Chang 2026-07-01 1003 ret = -EINVAL;
335d4b6201ac31 Christoph Hellwig 2026-07-29 1004 goto out_dio_end;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1005 }
36f199c8d0ee4b Fengnan Chang 2026-07-01 1006
335d4b6201ac31 Christoph Hellwig 2026-07-29 1007 if (unlikely(!iomi->inode->i_sb->s_dio_done_wq &&
335d4b6201ac31 Christoph Hellwig 2026-07-29 1008 !is_sync_kiocb(iocb))) {
335d4b6201ac31 Christoph Hellwig 2026-07-29 1009 ret = sb_init_dio_done_wq(iomi->inode->i_sb);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1010 if (ret < 0)
335d4b6201ac31 Christoph Hellwig 2026-07-29 1011 goto out_dio_end;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1012 }
36f199c8d0ee4b Fengnan Chang 2026-07-01 1013
335d4b6201ac31 Christoph Hellwig 2026-07-29 1014 trace_iomap_dio_rw_begin(iocb, iter, 0, 0);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1015
335d4b6201ac31 Christoph Hellwig 2026-07-29 1016 bio = bio_alloc_bioset(iomi->iomap.bdev,
36f199c8d0ee4b Fengnan Chang 2026-07-01 1017 bio_iov_vecs_to_alloc(iter, BIO_MAX_VECS),
36f199c8d0ee4b Fengnan Chang 2026-07-01 1018 REQ_OP_READ, GFP_KERNEL, &iomap_dio_simple_pool);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1019 sr = container_of(bio, struct iomap_dio_simple, bio);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1020 sr->iocb = iocb;
335d4b6201ac31 Christoph Hellwig 2026-07-29 1021 sr->dio_flags = 0;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1022
335d4b6201ac31 Christoph Hellwig 2026-07-29 1023 bio->bi_iter.bi_sector = iomap_sector(&iomi->iomap, iomi->pos);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1024 bio->bi_ioprio = iocb->ki_ioprio;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1025
36f199c8d0ee4b Fengnan Chang 2026-07-01 1026 ret = bio_iov_iter_get_pages(bio, iter, alignment - 1);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1027 if (unlikely(ret))
36f199c8d0ee4b Fengnan Chang 2026-07-01 1028 goto out_bio_put;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1029
335d4b6201ac31 Christoph Hellwig 2026-07-29 1030 if (bio->bi_iter.bi_size != iomi->len) {
36f199c8d0ee4b Fengnan Chang 2026-07-01 1031 iov_iter_revert(iter, bio->bi_iter.bi_size);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1032 ret = -ENOTBLK;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1033 goto out_bio_release_pages;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1034 }
36f199c8d0ee4b Fengnan Chang 2026-07-01 1035
36f199c8d0ee4b Fengnan Chang 2026-07-01 1036 sr->size = bio->bi_iter.bi_size;
335d4b6201ac31 Christoph Hellwig 2026-07-29 1037 if (user_backed_iter(iter)) {
36f199c8d0ee4b Fengnan Chang 2026-07-01 1038 bio_set_pages_dirty(bio);
335d4b6201ac31 Christoph Hellwig 2026-07-29 1039 sr->dio_flags |= IOMAP_DIO_USER_BACKED;
335d4b6201ac31 Christoph Hellwig 2026-07-29 1040 }
36f199c8d0ee4b Fengnan Chang 2026-07-01 1041
36f199c8d0ee4b Fengnan Chang 2026-07-01 1042 if (iocb->ki_flags & IOCB_NOWAIT)
36f199c8d0ee4b Fengnan Chang 2026-07-01 1043 bio->bi_opf |= REQ_NOWAIT;
335d4b6201ac31 Christoph Hellwig 2026-07-29 1044
335d4b6201ac31 Christoph Hellwig 2026-07-29 1045 if (is_sync_kiocb(iocb)) {
335d4b6201ac31 Christoph Hellwig 2026-07-29 1046 submit_bio_wait(bio);
335d4b6201ac31 Christoph Hellwig 2026-07-29 1047 return iomap_dio_simple_complete(sr);
335d4b6201ac31 Christoph Hellwig 2026-07-29 1048 }
335d4b6201ac31 Christoph Hellwig 2026-07-29 1049
335d4b6201ac31 Christoph Hellwig 2026-07-29 1050 if ((iocb->ki_flags & IOCB_HIPRI)) {
36f199c8d0ee4b Fengnan Chang 2026-07-01 1051 bio->bi_opf |= REQ_POLLED;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1052 WRITE_ONCE(iocb->private, bio);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1053 }
36f199c8d0ee4b Fengnan Chang 2026-07-01 1054 bio->bi_end_io = iomap_dio_simple_end_io;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1055 submit_bio(bio);
335d4b6201ac31 Christoph Hellwig 2026-07-29 1056 trace_iomap_dio_rw_queued(iomi->inode, iocb->ki_pos, iomi->len);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1057 return -EIOCBQUEUED;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1058
36f199c8d0ee4b Fengnan Chang 2026-07-01 1059 out_bio_release_pages:
36f199c8d0ee4b Fengnan Chang 2026-07-01 1060 bio_release_pages(bio, false);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1061 out_bio_put:
36f199c8d0ee4b Fengnan Chang 2026-07-01 1062 bio_put(bio);
335d4b6201ac31 Christoph Hellwig 2026-07-29 1063 out_dio_end:
335d4b6201ac31 Christoph Hellwig 2026-07-29 1064 inode_dio_end(iomi->inode);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1065 return ret;
36f199c8d0ee4b Fengnan Chang 2026-07-01 1066 }
335d4b6201ac31 Christoph Hellwig 2026-07-29 1067 EXPORT_SYMBOL_GPL(__iomap_dio_read_simple);
36f199c8d0ee4b Fengnan Chang 2026-07-01 1068
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-02 23:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-02 23:43 [linux-next:master 11181/11507] fs/iomap/direct-io.c:996 __iomap_dio_read_simple() warn: bitwise AND condition is false here kernel test robot
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.