lkml.org 
[lkml]   [2022]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectdrivers/net/usb/lan78xx.c:4573:8: warning: Local variable 'ret' shadows outer variable [shadowVariable]
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 672c0c5173427e6b3e2a9bbb7be51ceeec78093a
commit: 5f4cc6e25148cc141f97afb41b4dfe9eb1cce613 lan78xx: Fix race conditions in suspend/resume handling
date: 8 months ago
compiler: arc-elf-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
# apt-get install cppcheck
git checkout 5f4cc6e25148cc141f97afb41b4dfe9eb1cce613
cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


cppcheck warnings: (new ones prefixed by >>)
^
drivers/net/usb/lan78xx.c:1873:6: note: ret is overwritten
ret = lan78xx_write_reg(dev, MII_ACC, addr);
^
drivers/net/usb/lan78xx.c:1131:7: warning: Local variable 'i' shadows outer variable [shadowVariable]
int i;
^
drivers/net/usb/lan78xx.c:1100:6: note: Shadowed declaration
int i;
^
drivers/net/usb/lan78xx.c:1131:7: note: Shadow variable
int i;
^
>> drivers/net/usb/lan78xx.c:4573:8: warning: Local variable 'ret' shadows outer variable [shadowVariable]
int ret = usb_submit_urb(dev->urb_intr, GFP_KERNEL);
^
drivers/net/usb/lan78xx.c:4557:6: note: Shadowed declaration
int ret;
^
drivers/net/usb/lan78xx.c:4573:8: note: Shadow variable
int ret = usb_submit_urb(dev->urb_intr, GFP_KERNEL);
^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

^
drivers/net/usb/lan78xx.c:1873:6: note: ret is overwritten
ret = lan78xx_write_reg(dev, MII_ACC, addr);
^
>> drivers/net/usb/lan78xx.c:1048:23: warning: Parameter 'addr' can be declared with const [constParameter]
int index, u8 addr[ETH_ALEN])
^
>> drivers/net/usb/lan78xx.c:793:25: warning: Parameter 'data' can be declared with const [constParameter]
u32 length, u8 *data)
^

vim +/ret +4573 drivers/net/usb/lan78xx.c

4552
4553 static int lan78xx_resume(struct usb_interface *intf)
4554 {
4555 struct lan78xx_net *dev = usb_get_intfdata(intf);
4556 bool dev_open;
4557 int ret;
4558
4559 mutex_lock(&dev->dev_mutex);
4560
4561 netif_dbg(dev, ifup, dev->net, "resuming device");
4562
4563 dev_open = test_bit(EVENT_DEV_OPEN, &dev->flags);
4564
4565 if (dev_open) {
4566 bool pipe_halted = false;
4567
4568 ret = lan78xx_flush_tx_fifo(dev);
4569 if (ret < 0)
4570 goto out;
4571
4572 if (dev->urb_intr) {
> 4573 int ret = usb_submit_urb(dev->urb_intr, GFP_KERNEL);
4574
4575 if (ret < 0) {
4576 if (ret == -ENODEV)
4577 netif_device_detach(dev->net);
4578
4579 netdev_warn(dev->net, "Failed to submit intr URB");
4580 }
4581 }
4582
4583 spin_lock_irq(&dev->txq.lock);
4584
4585 if (netif_device_present(dev->net)) {
4586 pipe_halted = lan78xx_submit_deferred_urbs(dev);
4587
4588 if (pipe_halted)
4589 lan78xx_defer_kevent(dev, EVENT_TX_HALT);
4590 }
4591
4592 clear_bit(EVENT_DEV_ASLEEP, &dev->flags);
4593
4594 spin_unlock_irq(&dev->txq.lock);
4595
4596 if (!pipe_halted &&
4597 netif_device_present(dev->net) &&
4598 (skb_queue_len(&dev->txq) < dev->tx_qlen))
4599 netif_start_queue(dev->net);
4600
4601 ret = lan78xx_start_tx_path(dev);
4602 if (ret < 0)
4603 goto out;
4604
4605 tasklet_schedule(&dev->bh);
4606
4607 if (!timer_pending(&dev->stat_monitor)) {
4608 dev->delta = 1;
4609 mod_timer(&dev->stat_monitor,
4610 jiffies + STAT_UPDATE_TIMER);
4611 }
4612
4613 } else {
4614 clear_bit(EVENT_DEV_ASLEEP, &dev->flags);
4615 }
4616
4617 ret = lan78xx_write_reg(dev, WUCSR2, 0);
4618 if (ret < 0)
4619 goto out;
4620 ret = lan78xx_write_reg(dev, WUCSR, 0);
4621 if (ret < 0)
4622 goto out;
4623 ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL);
4624 if (ret < 0)
4625 goto out;
4626
4627 ret = lan78xx_write_reg(dev, WUCSR2, WUCSR2_NS_RCD_ |
4628 WUCSR2_ARP_RCD_ |
4629 WUCSR2_IPV6_TCPSYN_RCD_ |
4630 WUCSR2_IPV4_TCPSYN_RCD_);
4631 if (ret < 0)
4632 goto out;
4633
4634 ret = lan78xx_write_reg(dev, WUCSR, WUCSR_EEE_TX_WAKE_ |
4635 WUCSR_EEE_RX_WAKE_ |
4636 WUCSR_PFDA_FR_ |
4637 WUCSR_RFE_WAKE_FR_ |
4638 WUCSR_WUFR_ |
4639 WUCSR_MPR_ |
4640 WUCSR_BCST_FR_);
4641 if (ret < 0)
4642 goto out;
4643
4644 ret = 0;
4645 out:
4646 mutex_unlock(&dev->dev_mutex);
4647
4648 return ret;
4649 }
4650

--
0-DAY CI Kernel Test Service
https://01.org/lkp

\
 
 \ /
  Last update: 2022-05-02 18:12    [W:0.033 / U:0.712 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site