:::::: :::::: Manual check reason: "low confidence static check warning: drivers/spi/spidev.c:577:13: warning: Uninitialized variable: iter->devt [uninitvar]" ::::::
CC: [email protected] BCC: [email protected] CC: [email protected] TO: Jakob Koschel <[email protected]> CC: Mark Brown <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b047602d579b4fb028128a525f056bbdc890e7f0 commit: d50d7e91c6e5ccd71f21ba1aec3fef7ee4229fd6 spi: spidev: replace usage of found with dedicated list iterator variable date: 3 months ago :::::: branch date: 8 hours ago :::::: commit date: 3 months ago compiler: powerpc-linux-gcc (GCC) 11.3.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout d50d7e91c6e5ccd71f21ba1aec3fef7ee4229fd6 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> cppcheck warnings: (new ones prefixed by >>) >> drivers/usb/misc/ftdi-elan.c:994:8: warning: Local variable 'c' shadows >> outer variable [shadowVariable] u8 *c = 4 + ftdi->response; ^ drivers/usb/misc/ftdi-elan.c:976:6: note: Shadowed declaration u8 c = ftdi->bulk_in_buffer[++ftdi->bulk_in_last]; ^ drivers/usb/misc/ftdi-elan.c:994:8: note: Shadow variable u8 *c = 4 + ftdi->response; ^ cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> drivers/usb/mon/mon_bin.c:432:4: warning: Assignment of function parameter >> has no effect outside the function. [uselessAssignmentArg] offset = mon_copy_to_buff(rp, offset, sg_virt(sg), ^ drivers/usb/mon/mon_bin.c:848:3: warning: Assignment of function parameter has no effect outside the function. [uselessAssignmentArg] nbytes -= step_len; ^ >> drivers/usb/mon/mon_bin.c:849:3: warning: Assignment of function parameter >> has no effect outside the function. Did you forget dereferencing it? >> [uselessAssignmentPtrArg] buf += step_len; ^ >> drivers/spi/spidev.c:577:13: warning: Uninitialized variable: iter->devt >> [uninitvar] if (iter->devt == inode->i_rdev) { ^ -- >> drivers/staging/pi433/pi433_if.c:1066:9: warning: Redundant initialization >> for 'retval'. The initialized value is overwritten before it is read. >> [redundantInitialization] retval = idr_alloc(&pi433_idr, device, 0, N_PI433_MINORS, GFP_KERNEL); ^ drivers/staging/pi433/pi433_if.c:1063:13: note: retval is initialized int retval = -ENOMEM; ^ drivers/staging/pi433/pi433_if.c:1066:9: note: retval is overwritten retval = idr_alloc(&pi433_idr, device, 0, N_PI433_MINORS, GFP_KERNEL); ^ >> kernel/relay.c:360:2: warning: %d in format string (no. 2) requires 'int' >> but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] snprintf(tmpname, NAME_MAX, "%s%d", chan->base_filename, cpu); ^ >> drivers/vfio/vfio.c:316:49: warning: Parameter 'iommu_group' can be declared >> with const [constParameter] __vfio_group_get_from_iommu(struct iommu_group *iommu_group) ^ >> drivers/vfio/vfio.c:508:23: warning: Parameter 'dev' can be declared with >> const [constParameter] struct device *dev) ^ drivers/vfio/vfio.c:1995:56: warning: Parameter 'test_group' can be declared with const [constParameter] bool vfio_external_group_match_file(struct vfio_group *test_group, ^ >> drivers/vfio/vfio.c:252:12: warning: Uninitialized variable: tmp->ops >> [uninitvar] if (tmp->ops == ops) { ^ drivers/vfio/vfio.c:243:6: note: Assuming condition is false if (!driver) ^ drivers/vfio/vfio.c:252:12: note: Uninitialized variable: tmp->ops if (tmp->ops == ops) { ^ >> drivers/vfio/vfio.c:273:15: warning: Uninitialized variable: driver->ops >> [uninitvar] if (driver->ops == ops) { ^ >> drivers/vfio/vfio.c:321:14: warning: Uninitialized variable: >> group->iommu_group [uninitvar] if (group->iommu_group == iommu_group) { ^ drivers/vfio/vfio.c:579:23: warning: Uninitialized variable: unbound->dev [uninitvar] if (dev == unbound->dev) { ^ >> drivers/vfio/vfio.c:1071:45: warning: Uninitialized variables: driver.ops, >> driver.vfio_next [uninitvar] if (!vfio_iommu_driver_allowed(container, driver)) ^ drivers/vfio/vfio.c:1062:41: note: Assuming condition is false if (list_empty(&container->group_list) || container->iommu_driver) { ^ drivers/vfio/vfio.c:1062:41: note: Assuming condition is false if (list_empty(&container->group_list) || container->iommu_driver) { ^ drivers/vfio/vfio.c:1071:45: note: Uninitialized variables: driver.ops, driver.vfio_next if (!vfio_iommu_driver_allowed(container, driver)) ^ -- >> fs/overlayfs/copy_up.c:417:57: warning: Possible null pointer dereference: >> fh [nullPointer] err = ovl_check_setxattr(ofs, upper, OVL_XATTR_ORIGIN, fh->buf, ^ fs/overlayfs/copy_up.c:400:28: note: Assignment 'fh=NULL', assigned value is 0 const struct ovl_fh *fh = NULL; ^ fs/overlayfs/copy_up.c:408:23: note: Assuming condition is false if (ovl_can_decode_fh(lower->d_sb)) { ^ fs/overlayfs/copy_up.c:417:57: note: Null pointer dereference err = ovl_check_setxattr(ofs, upper, OVL_XATTR_ORIGIN, fh->buf, ^ >> fs/overlayfs/copy_up.c:107:10: warning: Local variable 'new' shadows outer >> argument [shadowArgument] void *new; ^ fs/overlayfs/copy_up.c:48:21: note: Shadowed declaration struct dentry *new) ^ fs/overlayfs/copy_up.c:107:10: note: Shadow variable void *new; ^ -- >> fs/coredump.c:401:15: warning: Redundant initialization for 'core_waiters'. >> The initialized value is overwritten before it is read. >> [redundantInitialization] core_waiters = zap_threads(tsk, core_state, exit_code); ^ fs/coredump.c:395:19: note: core_waiters is initialized int core_waiters = -EBUSY; ^ fs/coredump.c:401:15: note: core_waiters is overwritten core_waiters = zap_threads(tsk, core_state, exit_code); ^ >> kernel/bpf/bpf_iter.c:457:12: warning: Boolean result is used in bitwise >> operation. Clarify expression with parentheses. [clarifyCondition] if (!ulen ^ !ubuf) ^ kernel/bpf/bpf_iter.c:518:29: warning: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition] if (bpfptr_is_null(ulinfo) ^ !linfo_len) ^ >> kernel/bpf/bpf_iter.c:312:26: warning: Uninitialized variable: >> tinfo->reg_info [uninitvar] if (reg_info == tinfo->reg_info) { ^ >> kernel/bpf/bpf_iter.c:344:14: warning: Uninitialized variable: tinfo->btf_id >> [uninitvar] if (tinfo->btf_id && tinfo->btf_id == prog_btf_id) { ^ kernel/bpf/bpf_iter.c:339:13: note: Assuming condition is false if (strncmp(attach_fname, prefix, prefix_len)) ^ kernel/bpf/bpf_iter.c:344:14: note: Uninitialized variable: tinfo->btf_id if (tinfo->btf_id && tinfo->btf_id == prog_btf_id) { ^ kernel/bpf/bpf_iter.c:372:14: warning: Uninitialized variable: tinfo->btf_id [uninitvar] if (tinfo->btf_id == prog->aux->attach_btf_id) { ^ >> kernel/bpf/bpf_iter.c:376:8: warning: Uninitialized variable: reg_info >> [uninitvar] if (reg_info->get_func_proto) ^ kernel/bpf/bpf_iter.c:375:20: note: Assignment 'reg_info=tinfo->reg_info', assigned value is <Uninit> reg_info = tinfo->reg_info; ^ kernel/bpf/bpf_iter.c:376:8: note: Uninitialized variable: reg_info if (reg_info->get_func_proto) ^ >> drivers/tty/tty_io.c:545:61: warning: Parameter 'tty' can be declared with >> const [constParameter] static struct file *tty_release_redirect(struct tty_struct *tty) ^ -- >> fs/pipe.c:1071:73: warning: Parameter 'cnt' can be declared with const >> [constParameter] static int wait_for_partner(struct pipe_inode_info *pipe, unsigned int *cnt) ^ -- >> drivers/usb/misc/ftdi-elan.c:2206:6: warning: Local variable 'roothub_a' >> shadows outer function [shadowFunction] u32 roothub_a; ^ drivers/usb/host/ohci.h:718:19: note: Shadowed declaration static inline u32 roothub_a (struct ohci_hcd *hc) ^ drivers/usb/misc/ftdi-elan.c:2206:6: note: Shadow variable u32 roothub_a; ^ >> drivers/usb/host/ohci.h:697:56: warning: Shifting signed 32-bit value by 31 >> bits is implementation-defined behaviour [shiftTooManyBitsSigned] u32 fit = ohci_readl(ohci, &ohci->regs->fminterval) & FIT; ^ drivers/usb/host/ohci.h:699:2: warning: Shifting signed 32-bit value by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned] ohci_writel (ohci, (fit ^ FIT) | ohci->fminterval, ^ >> drivers/usb/misc/ftdi-elan.c:2207:13: warning: Shifting signed 32-bit value >> by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned] int mask = OHCI_INTR_INIT; ^ drivers/usb/misc/ftdi-elan.c:2211:11: warning: Shifting signed 32-bit value by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned] retval = ftdi_write_pcimem(ftdi, intrdisable, OHCI_INTR_MIE); ^ drivers/usb/misc/ftdi-elan.c:2308:11: warning: Shifting signed 32-bit value by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned] retval = ftdi_write_pcimem(ftdi, fminterval, ^ drivers/usb/misc/ftdi-elan.c:2350:11: warning: Shifting signed 32-bit value by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned] retval = ftdi_write_pcimem(ftdi, intrdisable, ^ >> drivers/usb/host/ohci.h:697:56: warning: Signed integer overflow for >> expression '1<<31'. [integerOverflow] u32 fit = ohci_readl(ohci, &ohci->regs->fminterval) & FIT; ^ drivers/usb/host/ohci.h:699:2: warning: Signed integer overflow for expression '1<<31'. [integerOverflow] ohci_writel (ohci, (fit ^ FIT) | ohci->fminterval, ^ >> drivers/usb/misc/ftdi-elan.c:2207:13: warning: Signed integer overflow for >> expression '1<<31'. [integerOverflow] int mask = OHCI_INTR_INIT; ^ drivers/usb/misc/ftdi-elan.c:2211:11: warning: Signed integer overflow for expression '1<<31'. [integerOverflow] retval = ftdi_write_pcimem(ftdi, intrdisable, OHCI_INTR_MIE); ^ drivers/usb/misc/ftdi-elan.c:2308:11: warning: Signed integer overflow for expression '1<<31'. [integerOverflow] retval = ftdi_write_pcimem(ftdi, fminterval, ^ drivers/usb/misc/ftdi-elan.c:2350:11: warning: Signed integer overflow for expression '1<<31'. [integerOverflow] retval = ftdi_write_pcimem(ftdi, intrdisable, ^ drivers/usb/misc/ftdi-elan.c:2362:18: warning: Signed integer overflow for expression '0xff<<24'. [integerOverflow] roothub_a &= ~(RH_A_POTPGT | RH_A_NPS); ^ >> drivers/usb/misc/ftdi-elan.c:2781:27: warning: Uninitialized variables: >> ftdi.ftdi_list, ftdi.u132_lock, ftdi.command_next, ftdi.command_head, >> ftdi.respond_next, ftdi.respond_head, ftdi.synchronized, ftdi.enumerated, >> ftdi.registered, ftdi.initialized, ftdi.card_ejected, ftdi.function, >> ftdi.sequence_num, ftdi.disconnected, ftdi.gone_away, ftdi.stuck_status, >> ftdi.status_queue_delay, ftdi.sw_lock, ftdi.udev, ftdi.interface, >> ftdi.class, ftdi.status_work, ftdi.command_work, ftdi.respond_work, >> ftdi.platform_data, ftdi.platform_dev, ftdi.bulk_in_buffer, >> ftdi.bulk_in_size, ftdi.bulk_in_last, ftdi.bulk_in_left, >> ftdi.bulk_in_endpointAddr, ftdi.bulk_out_endpointAddr, ftdi.kref, >> ftdi.controlreg, ftdi.expected, ftdi.received, ftdi.ed_found [uninitvar] ftdi_status_cancel_work(ftdi); ^ vim +577 drivers/spi/spidev.c 7d48ec3698e7b7 Bernhard Walle 2011-02-03 568 814a8d50eb1d88 Andrea Paterniani 2007-05-08 569 static int spidev_open(struct inode *inode, struct file *filp) 814a8d50eb1d88 Andrea Paterniani 2007-05-08 570 { d50d7e91c6e5cc Jakob Koschel 2022-03-24 571 struct spidev_data *spidev = NULL, *iter; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 572 int status = -ENXIO; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 573 814a8d50eb1d88 Andrea Paterniani 2007-05-08 574 mutex_lock(&device_list_lock); 814a8d50eb1d88 Andrea Paterniani 2007-05-08 575 d50d7e91c6e5cc Jakob Koschel 2022-03-24 576 list_for_each_entry(iter, &device_list, device_entry) { d50d7e91c6e5cc Jakob Koschel 2022-03-24 @577 if (iter->devt == inode->i_rdev) { 814a8d50eb1d88 Andrea Paterniani 2007-05-08 578 status = 0; d50d7e91c6e5cc Jakob Koschel 2022-03-24 579 spidev = iter; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 580 break; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 581 } 814a8d50eb1d88 Andrea Paterniani 2007-05-08 582 } 865f6d1974ddd9 Ray Jui 2014-10-09 583 d50d7e91c6e5cc Jakob Koschel 2022-03-24 584 if (!spidev) { 865f6d1974ddd9 Ray Jui 2014-10-09 585 pr_debug("spidev: nothing for minor %d\n", iminor(inode)); 865f6d1974ddd9 Ray Jui 2014-10-09 586 goto err_find_dev; 865f6d1974ddd9 Ray Jui 2014-10-09 587 } 865f6d1974ddd9 Ray Jui 2014-10-09 588 865f6d1974ddd9 Ray Jui 2014-10-09 589 if (!spidev->tx_buffer) { 865f6d1974ddd9 Ray Jui 2014-10-09 590 spidev->tx_buffer = kmalloc(bufsiz, GFP_KERNEL); 865f6d1974ddd9 Ray Jui 2014-10-09 591 if (!spidev->tx_buffer) { 814a8d50eb1d88 Andrea Paterniani 2007-05-08 592 dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); 814a8d50eb1d88 Andrea Paterniani 2007-05-08 593 status = -ENOMEM; 865f6d1974ddd9 Ray Jui 2014-10-09 594 goto err_find_dev; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 595 } 814a8d50eb1d88 Andrea Paterniani 2007-05-08 596 } 865f6d1974ddd9 Ray Jui 2014-10-09 597 865f6d1974ddd9 Ray Jui 2014-10-09 598 if (!spidev->rx_buffer) { 865f6d1974ddd9 Ray Jui 2014-10-09 599 spidev->rx_buffer = kmalloc(bufsiz, GFP_KERNEL); 865f6d1974ddd9 Ray Jui 2014-10-09 600 if (!spidev->rx_buffer) { 865f6d1974ddd9 Ray Jui 2014-10-09 601 dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); 865f6d1974ddd9 Ray Jui 2014-10-09 602 status = -ENOMEM; 865f6d1974ddd9 Ray Jui 2014-10-09 603 goto err_alloc_rx_buf; 865f6d1974ddd9 Ray Jui 2014-10-09 604 } 865f6d1974ddd9 Ray Jui 2014-10-09 605 } 865f6d1974ddd9 Ray Jui 2014-10-09 606 814a8d50eb1d88 Andrea Paterniani 2007-05-08 607 spidev->users++; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 608 filp->private_data = spidev; c5bf68fe0c86a5 Kirill Smelkov 2019-03-26 609 stream_open(inode, filp); 814a8d50eb1d88 Andrea Paterniani 2007-05-08 610 865f6d1974ddd9 Ray Jui 2014-10-09 611 mutex_unlock(&device_list_lock); 865f6d1974ddd9 Ray Jui 2014-10-09 612 return 0; 865f6d1974ddd9 Ray Jui 2014-10-09 613 865f6d1974ddd9 Ray Jui 2014-10-09 614 err_alloc_rx_buf: 865f6d1974ddd9 Ray Jui 2014-10-09 615 kfree(spidev->tx_buffer); 865f6d1974ddd9 Ray Jui 2014-10-09 616 spidev->tx_buffer = NULL; 865f6d1974ddd9 Ray Jui 2014-10-09 617 err_find_dev: 814a8d50eb1d88 Andrea Paterniani 2007-05-08 618 mutex_unlock(&device_list_lock); 814a8d50eb1d88 Andrea Paterniani 2007-05-08 619 return status; 814a8d50eb1d88 Andrea Paterniani 2007-05-08 620 } 814a8d50eb1d88 Andrea Paterniani 2007-05-08 621 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
