CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: Linux Memory Management List <linux...@kvack.org> TO: Mike Snitzer <snit...@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 3ccc916812598a88b427859679ffd1641e67d4a2 commit: e1c4ab4fd11b5a5c5c59216be5ada04f1fdc87e4 [914/1999] dm: move hot dm_io members to same cacheline as dm_target_io :::::: branch date: 18 hours ago :::::: commit date: 4 days ago compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) drivers/md/dm.c:1384:2: warning: Address of local auto-variable assigned to a function parameter. [autoVariables] ci->bio = &flush_bio; ^ >> drivers/md/dm.c:1685:21: warning: Uninitialized variables: io.magic, >> io.lock, io.start_time, io.data, io.node, io.map_task, io.stats_aux, >> io.flags, io.status, io.io_count, io.md, io.orig_bio, io.tio [uninitvar] if (dm_poll_dm_io(io, iob, flags)) { ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1666:6: note: Assuming condition is false if (!(bio->bi_opf & REQ_DM_POLL_LIST)) ^ drivers/md/dm.c:1685:21: note: Uninitialized variables: io.magic, io.lock, io.start_time, io.data, io.node, io.map_task, io.stats_aux, io.flags, io.status, io.io_count, io.md, io.orig_bio, io.tio if (dm_poll_dm_io(io, iob, flags)) { ^ vim +1685 drivers/md/dm.c b99fdcdc36369d2 Ming Lei 2022-03-04 1656 b99fdcdc36369d2 Ming Lei 2022-03-04 1657 static int dm_poll_bio(struct bio *bio, struct io_comp_batch *iob, b99fdcdc36369d2 Ming Lei 2022-03-04 1658 unsigned int flags) b99fdcdc36369d2 Ming Lei 2022-03-04 1659 { b99fdcdc36369d2 Ming Lei 2022-03-04 1660 struct hlist_head *head = dm_get_bio_hlist_head(bio); b99fdcdc36369d2 Ming Lei 2022-03-04 1661 struct hlist_head tmp = HLIST_HEAD_INIT; b99fdcdc36369d2 Ming Lei 2022-03-04 1662 struct hlist_node *next; b99fdcdc36369d2 Ming Lei 2022-03-04 1663 struct dm_io *io; b99fdcdc36369d2 Ming Lei 2022-03-04 1664 b99fdcdc36369d2 Ming Lei 2022-03-04 1665 /* Only poll normal bio which was marked as REQ_DM_POLL_LIST */ b99fdcdc36369d2 Ming Lei 2022-03-04 1666 if (!(bio->bi_opf & REQ_DM_POLL_LIST)) b99fdcdc36369d2 Ming Lei 2022-03-04 1667 return 0; b99fdcdc36369d2 Ming Lei 2022-03-04 1668 b99fdcdc36369d2 Ming Lei 2022-03-04 1669 WARN_ON_ONCE(hlist_empty(head)); b99fdcdc36369d2 Ming Lei 2022-03-04 1670 b99fdcdc36369d2 Ming Lei 2022-03-04 1671 hlist_move_list(head, &tmp); b99fdcdc36369d2 Ming Lei 2022-03-04 1672 b99fdcdc36369d2 Ming Lei 2022-03-04 1673 /* b99fdcdc36369d2 Ming Lei 2022-03-04 1674 * Restore .bi_private before possibly completing dm_io. b99fdcdc36369d2 Ming Lei 2022-03-04 1675 * b99fdcdc36369d2 Ming Lei 2022-03-04 1676 * bio_poll() is only possible once @bio has been completely b99fdcdc36369d2 Ming Lei 2022-03-04 1677 * submitted via submit_bio_noacct()'s depth-first submission. b99fdcdc36369d2 Ming Lei 2022-03-04 1678 * So there is no dm_queue_poll_io() race associated with b99fdcdc36369d2 Ming Lei 2022-03-04 1679 * clearing REQ_DM_POLL_LIST here. b99fdcdc36369d2 Ming Lei 2022-03-04 1680 */ b99fdcdc36369d2 Ming Lei 2022-03-04 1681 bio->bi_opf &= ~REQ_DM_POLL_LIST; b99fdcdc36369d2 Ming Lei 2022-03-04 1682 bio->bi_private = hlist_entry(tmp.first, struct dm_io, node)->data; b99fdcdc36369d2 Ming Lei 2022-03-04 1683 b99fdcdc36369d2 Ming Lei 2022-03-04 1684 hlist_for_each_entry_safe(io, next, &tmp, node) { b99fdcdc36369d2 Ming Lei 2022-03-04 @1685 if (dm_poll_dm_io(io, iob, flags)) { b99fdcdc36369d2 Ming Lei 2022-03-04 1686 hlist_del_init(&io->node); b99fdcdc36369d2 Ming Lei 2022-03-04 1687 /* b99fdcdc36369d2 Ming Lei 2022-03-04 1688 * clone_endio() has already occurred, so passing b99fdcdc36369d2 Ming Lei 2022-03-04 1689 * error as 0 here doesn't override io->status b99fdcdc36369d2 Ming Lei 2022-03-04 1690 */ b99fdcdc36369d2 Ming Lei 2022-03-04 1691 dm_io_dec_pending(io, 0); b99fdcdc36369d2 Ming Lei 2022-03-04 1692 } b99fdcdc36369d2 Ming Lei 2022-03-04 1693 } b99fdcdc36369d2 Ming Lei 2022-03-04 1694 b99fdcdc36369d2 Ming Lei 2022-03-04 1695 /* Not done? */ b99fdcdc36369d2 Ming Lei 2022-03-04 1696 if (!hlist_empty(&tmp)) { b99fdcdc36369d2 Ming Lei 2022-03-04 1697 bio->bi_opf |= REQ_DM_POLL_LIST; b99fdcdc36369d2 Ming Lei 2022-03-04 1698 /* Reset bio->bi_private to dm_io list head */ b99fdcdc36369d2 Ming Lei 2022-03-04 1699 hlist_move_list(&tmp, head); b99fdcdc36369d2 Ming Lei 2022-03-04 1700 return 0; b99fdcdc36369d2 Ming Lei 2022-03-04 1701 } b99fdcdc36369d2 Ming Lei 2022-03-04 1702 return 1; b99fdcdc36369d2 Ming Lei 2022-03-04 1703 } b99fdcdc36369d2 Ming Lei 2022-03-04 1704 :::::: The code at line 1685 was first introduced by commit :::::: b99fdcdc36369d2a3a26bf44736d420eb629d8b7 dm: support bio polling :::::: TO: Ming Lei <ming....@redhat.com> :::::: CC: Mike Snitzer <snit...@redhat.com> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org