All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.