:::::: 
:::::: 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]

Reply via email to