CC: [email protected] CC: [email protected] CC: [email protected] TO: Jiri Slaby <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git devel head: 7532b9db97a43f18170870ff0363a6839d575ed1 commit: 7960954c3082123b48b212c32cab0c85bd551411 [31/34] mxser: switch to uart_driver :::::: branch date: 31 hours ago :::::: commit date: 33 hours ago config: x86_64-randconfig-c007-20220124 (https://download.01.org/0day-ci/archive/20220128/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f400a6012c668dfaa73462caf067ceb074e66c47) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git/commit/?id=7960954c3082123b48b212c32cab0c85bd551411 git remote add jirislaby https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git git fetch --no-tags jirislaby devel git checkout 7960954c3082123b48b212c32cab0c85bd551411 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) drivers/base/swnode.c:577:26: note: '?' condition is true struct swnode *swnode = to_swnode(fwnode); ^ drivers/base/swnode.c:49:3: note: expanded from macro 'to_swnode' is_software_node(__to_swnode_fwnode) ? \ ^ drivers/base/swnode.c:581:7: note: 'swnode' is non-null if (!swnode) ^~~~~~ drivers/base/swnode.c:581:2: note: Taking false branch if (!swnode) ^ drivers/base/swnode.c:584:6: note: Assuming 'endpoint' is null if (endpoint) { ^~~~~~~~ drivers/base/swnode.c:584:2: note: Taking false branch if (endpoint) { ^ drivers/base/swnode.c:589:7: note: Assuming 'parent' is null if (!parent) ^~~~~~~ drivers/base/swnode.c:589:3: note: Taking true branch if (!parent) ^ drivers/base/swnode.c:592:10: note: Calling 'swnode_graph_find_next_port' port = swnode_graph_find_next_port(parent, NULL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/base/swnode.c:559:2: note: Loop condition is true. Entering loop body while ((port = software_node_get_next_child(parent, old))) { ^ drivers/base/swnode.c:564:16: note: '?' condition is false if (!strncmp(to_swnode(port)->node->name, "port@", ^ drivers/base/swnode.c:49:3: note: expanded from macro 'to_swnode' is_software_node(__to_swnode_fwnode) ? \ ^ drivers/base/swnode.c:564:16: note: Access to field 'node' results in a dereference of a null pointer if (!strncmp(to_swnode(port)->node->name, "port@", ^ drivers/base/swnode.c:46:2: note: expanded from macro 'to_swnode' ({ \ ^ drivers/base/swnode.c:1110:29: warning: Access to field 'managed' results in a dereference of a null pointer [clang-analyzer-core.NullDereference] to_swnode(fwnode)->managed = true; ^ drivers/base/swnode.c:1103:6: note: Assuming 'parent' is null if (parent && !p) ^~~~~~ drivers/base/swnode.c:1103:13: note: Left side of '&&' is false if (parent && !p) ^ drivers/base/swnode.c:1107:6: note: Calling 'IS_ERR' if (IS_ERR(fwnode)) ^~~~~~~~~~~~~~ include/linux/err.h:36:2: note: Returning zero, which participates in a condition later return IS_ERR_VALUE((unsigned long)ptr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/base/swnode.c:1107:6: note: Returning from 'IS_ERR' if (IS_ERR(fwnode)) ^~~~~~~~~~~~~~ drivers/base/swnode.c:1107:2: note: Taking false branch if (IS_ERR(fwnode)) ^ drivers/base/swnode.c:1110:2: note: '?' condition is false to_swnode(fwnode)->managed = true; ^ drivers/base/swnode.c:49:3: note: expanded from macro 'to_swnode' is_software_node(__to_swnode_fwnode) ? \ ^ drivers/base/swnode.c:1110:29: note: Access to field 'managed' results in a dereference of a null pointer to_swnode(fwnode)->managed = true; ^ Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/tty/mxser.c:396:7: warning: Although the value stored to 'hwid' is used in the enclosing expression, the value is never actually read from 'hwid' [clang-analyzer-deadcode.DeadStores] if ((hwid = inb(io + UART_MCR)) != 0) { ^ drivers/tty/mxser.c:396:7: note: Although the value stored to 'hwid' is used in the enclosing expression, the value is never actually read from 'hwid' >> drivers/tty/mxser.c:766:21: warning: Value stored to 'info' during its >> initialization is never read [clang-analyzer-deadcode.DeadStores] struct mxser_port *info = to_mport(uport); ^~~~ ~~~~~~~~~~~~~~~ drivers/tty/mxser.c:766:21: note: Value stored to 'info' during its initialization is never read struct mxser_port *info = to_mport(uport); ^~~~ ~~~~~~~~~~~~~~~ drivers/tty/mxser.c:854:21: warning: Value stored to 'info' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct mxser_port *info = to_mport(uport); ^~~~ ~~~~~~~~~~~~~~~ drivers/tty/mxser.c:854:21: note: Value stored to 'info' during its initialization is never read struct mxser_port *info = to_mport(uport); ^~~~ ~~~~~~~~~~~~~~~ >> drivers/tty/mxser.c:1693:4: warning: Value stored to 'int_cnt' is never read >> [clang-analyzer-deadcode.DeadStores] int_cnt = 0; ^ ~ drivers/tty/mxser.c:1693:4: note: Value stored to 'int_cnt' is never read int_cnt = 0; ^ ~ Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. fs/btrfs/extent-tree.c:1124:13: warning: Dereference of null pointer (loaded from variable 'last_ref') [clang-analyzer-core.NullDereference] *last_ref = 1; ^ fs/btrfs/extent-tree.c:1469:6: note: Assuming 'path' is non-null if (!path) ^~~~~ fs/btrfs/extent-tree.c:1469:2: note: Taking false branch if (!path) ^ fs/btrfs/extent-tree.c:1473:8: note: Calling 'insert_inline_extent_backref' ret = insert_inline_extent_backref(trans, path, bytenr, num_bytes, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/extent-tree.c:1152:6: note: Assuming 'ret' is equal to 0 if (ret == 0) { ^~~~~~~~ fs/btrfs/extent-tree.c:1152:2: note: Taking true branch if (ret == 0) { ^ fs/btrfs/extent-tree.c:1157:7: note: Assuming 'owner' is >= BTRFS_FIRST_FREE_OBJECTID if (owner < BTRFS_FIRST_FREE_OBJECTID) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/extent-tree.c:1157:3: note: Taking false branch if (owner < BTRFS_FIRST_FREE_OBJECTID) { ^ fs/btrfs/extent-tree.c:1170:22: note: Passing null pointer value via 5th parameter 'last_ref' extent_op, NULL); ^ include/linux/stddef.h:8:14: note: expanded from macro 'NULL' #define NULL ((void *)0) ^~~~~~~~~~~ fs/btrfs/extent-tree.c:1169:3: note: Calling 'update_inline_extent_backref' update_inline_extent_backref(path, iref, refs_to_add, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/extent-tree.c:1091:10: note: Assuming 'refs_to_mod' is < 0 WARN_ON(refs_to_mod < 0 && refs + refs_to_mod <= 0); ^ include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ fs/btrfs/extent-tree.c:1091:10: note: Left side of '&&' is true WARN_ON(refs_to_mod < 0 && refs + refs_to_mod <= 0); ^ fs/btrfs/extent-tree.c:1091:29: note: Assuming the condition is false WARN_ON(refs_to_mod < 0 && refs + refs_to_mod <= 0); ^ include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ fs/btrfs/extent-tree.c:1091:2: note: Taking false branch WARN_ON(refs_to_mod < 0 && refs + refs_to_mod <= 0); ^ include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON' if (unlikely(__ret_warn_on)) \ ^ fs/btrfs/extent-tree.c:1094:6: note: Assuming 'extent_op' is null if (extent_op) ^~~~~~~~~ fs/btrfs/extent-tree.c:1094:2: note: Taking false branch if (extent_op) ^ fs/btrfs/extent-tree.c:1102:9: note: Assuming 'type' is equal to BTRFS_REF_TYPE_INVALID ASSERT(type != BTRFS_REF_TYPE_INVALID); ^ fs/btrfs/ctree.h:3496:29: note: expanded from macro 'ASSERT' #define ASSERT(expr) (void)(expr) ^~~~ fs/btrfs/extent-tree.c:1104:6: note: 'type' is not equal to BTRFS_EXTENT_DATA_REF_KEY if (type == BTRFS_EXTENT_DATA_REF_KEY) { ^~~~ fs/btrfs/extent-tree.c:1104:2: note: Taking false branch if (type == BTRFS_EXTENT_DATA_REF_KEY) { ^ fs/btrfs/extent-tree.c:1107:13: note: 'type' is not equal to BTRFS_SHARED_DATA_REF_KEY } else if (type == BTRFS_SHARED_DATA_REF_KEY) { ^~~~ fs/btrfs/extent-tree.c:1107:9: note: Taking false branch } else if (type == BTRFS_SHARED_DATA_REF_KEY) { ^ fs/btrfs/extent-tree.c:1112:10: note: Assuming the condition is false BUG_ON(refs_to_mod != -1); ^ include/asm-generic/bug.h:65:45: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^~~~~~~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/btrfs/extent-tree.c:1112:3: note: Taking false branch BUG_ON(refs_to_mod != -1); ^ include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) vim +/info +766 drivers/tty/mxser.c ee7e5e66f2d4fa drivers/tty/mxser.c Jiri Slaby 2021-09-22 763 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 764 static int mxser_startup(struct uart_port *uport) ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 765 { 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 @766 struct mxser_port *info = to_mport(uport); ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 767 unsigned long flags; ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 768 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 769 BUG_ON("we use kfifo"); ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 770 135900fa3f9910 drivers/tty/mxser.c Jiri Slaby 2021-12-10 771 spin_lock_irqsave(&uport->lock, flags); ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 772 67fa137c2b9fbd drivers/tty/mxser.c Jiri Slaby 2021-12-10 773 if (!uport->type) { 135900fa3f9910 drivers/tty/mxser.c Jiri Slaby 2021-12-10 774 spin_unlock_irqrestore(&uport->lock, flags); 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 775 return -EINVAL; ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 776 } 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 777 ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 778 /* 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 779 * Clear the FIFO buffers and disable them 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 780 * (they will be reenabled in mxser_change_speed()) ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 781 */ ee7e5e66f2d4fa drivers/tty/mxser.c Jiri Slaby 2021-09-22 782 mxser_disable_and_clear_FIFO(info); 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 783 ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 784 /* 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 785 * At this point there's no way the LSR could still be 0xFF; 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 786 * if it is, then bail out, because there's likely no UART 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 787 * here. ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 788 */ ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 789 if (inb(uport->iobase + UART_LSR) == 0xff) { 135900fa3f9910 drivers/tty/mxser.c Jiri Slaby 2021-12-10 790 spin_unlock_irqrestore(&uport->lock, flags); 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 791 return -ENODEV; 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 792 } 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 793 ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 794 /* 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 795 * Clear the interrupt registers. ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 796 */ ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 797 (void) inb(uport->iobase + UART_LSR); ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 798 (void) inb(uport->iobase + UART_RX); ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 799 (void) inb(uport->iobase + UART_IIR); ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 800 (void) inb(uport->iobase + UART_MSR); 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 801 ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 802 /* 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 803 * Now, initialize the UART ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 804 */ ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 805 outb(UART_LCR_WLEN8, uport->iobase + UART_LCR); /* reset DLAB */ 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 806 info->MCR = UART_MCR_DTR | UART_MCR_RTS; ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 807 outb(info->MCR, uport->iobase + UART_MCR); ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 808 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 809 /* 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 810 * Finally, enable interrupts 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 811 */ 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 812 info->IER = UART_IER_MSI | UART_IER_RLSI | UART_IER_RDI; ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 813 292955a7c011e2 drivers/tty/mxser.c Jiri Slaby 2021-06-18 814 if (info->board->must_hwid) 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 815 info->IER |= MOXA_MUST_IER_EGDAI; ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 816 outb(info->IER, uport->iobase + UART_IER); /* enable interrupts */ ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 817 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 818 /* 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 819 * And clear the interrupt registers again for luck. 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 820 */ ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 821 (void) inb(uport->iobase + UART_LSR); ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 822 (void) inb(uport->iobase + UART_RX); ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 823 (void) inb(uport->iobase + UART_IIR); ec197f1fd0d68f drivers/tty/mxser.c Jiri Slaby 2021-12-10 824 (void) inb(uport->iobase + UART_MSR); ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 825 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 826 //kfifo_reset(&port->xmit_fifo); 7960954c308212 drivers/tty/mxser.c Jiri Slaby 2021-12-01 827 BUG_ON("kfifo_reset"); 135900fa3f9910 drivers/tty/mxser.c Jiri Slaby 2021-12-10 828 spin_unlock_irqrestore(&uport->lock, flags); ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 829 1c45607ad3eb73 drivers/char/mxser.c Jiri Slaby 2008-02-07 830 return 0; ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 831 } ^1da177e4c3f41 drivers/char/mxser.c Linus Torvalds 2005-04-16 832 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
