BCC: lkp@intel.com CC: oe-kbuild-all@lists.linux.dev CC: linux-kernel@vger.kernel.org TO: Joseph CHAMG tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: ee6050c8af96bba2f81e8b0793a1fc2f998fcd20 commit: 2dc95a4d30eddac9679f295ba4304a7ab0e4ae02 net: Add dm9051 driver date: 9 months ago :::::: branch date: 19 hours ago :::::: commit date: 9 months ago config: alpha-randconfig-m041-20221030 compiler: alpha-linux-gcc (GCC) 12.1.0 If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Reported-by: Dan Carpenter New smatch warnings: drivers/net/ethernet/davicom/dm9051.c:610 dm9051_get_eeprom() error: uninitialized symbol 'ret'. drivers/net/ethernet/davicom/dm9051.c:632 dm9051_set_eeprom() error: uninitialized symbol 'ret'. Old smatch warnings: drivers/net/ethernet/davicom/dm9051.c:527 dm9051_map_chipid() warn: unsigned 'ret' is never less than zero. drivers/net/ethernet/davicom/dm9051.c:858 dm9051_loop_tx() error: dereferencing freed memory 'skb' vim +/ret +610 drivers/net/ethernet/davicom/dm9051.c 2dc95a4d30edda Joseph CHAMG 2022-02-11 591 2dc95a4d30edda Joseph CHAMG 2022-02-11 592 static int dm9051_get_eeprom(struct net_device *ndev, 2dc95a4d30edda Joseph CHAMG 2022-02-11 593 struct ethtool_eeprom *ee, u8 *data) 2dc95a4d30edda Joseph CHAMG 2022-02-11 594 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 595 struct board_info *db = to_dm9051_board(ndev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 596 int offset = ee->offset; 2dc95a4d30edda Joseph CHAMG 2022-02-11 597 int len = ee->len; 2dc95a4d30edda Joseph CHAMG 2022-02-11 598 int i, ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 599 2dc95a4d30edda Joseph CHAMG 2022-02-11 600 if ((len | offset) & 1) 2dc95a4d30edda Joseph CHAMG 2022-02-11 601 return -EINVAL; 2dc95a4d30edda Joseph CHAMG 2022-02-11 602 2dc95a4d30edda Joseph CHAMG 2022-02-11 603 ee->magic = DM_EEPROM_MAGIC; 2dc95a4d30edda Joseph CHAMG 2022-02-11 604 2dc95a4d30edda Joseph CHAMG 2022-02-11 605 for (i = 0; i < len; i += 2) { 2dc95a4d30edda Joseph CHAMG 2022-02-11 606 ret = dm9051_eeprom_read(db, (offset + i) / 2, data + i); 2dc95a4d30edda Joseph CHAMG 2022-02-11 607 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 608 break; 2dc95a4d30edda Joseph CHAMG 2022-02-11 609 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 @610 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 611 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 612 2dc95a4d30edda Joseph CHAMG 2022-02-11 613 static int dm9051_set_eeprom(struct net_device *ndev, 2dc95a4d30edda Joseph CHAMG 2022-02-11 614 struct ethtool_eeprom *ee, u8 *data) 2dc95a4d30edda Joseph CHAMG 2022-02-11 615 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 616 struct board_info *db = to_dm9051_board(ndev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 617 int offset = ee->offset; 2dc95a4d30edda Joseph CHAMG 2022-02-11 618 int len = ee->len; 2dc95a4d30edda Joseph CHAMG 2022-02-11 619 int i, ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 620 2dc95a4d30edda Joseph CHAMG 2022-02-11 621 if ((len | offset) & 1) 2dc95a4d30edda Joseph CHAMG 2022-02-11 622 return -EINVAL; 2dc95a4d30edda Joseph CHAMG 2022-02-11 623 2dc95a4d30edda Joseph CHAMG 2022-02-11 624 if (ee->magic != DM_EEPROM_MAGIC) 2dc95a4d30edda Joseph CHAMG 2022-02-11 625 return -EINVAL; 2dc95a4d30edda Joseph CHAMG 2022-02-11 626 2dc95a4d30edda Joseph CHAMG 2022-02-11 627 for (i = 0; i < len; i += 2) { 2dc95a4d30edda Joseph CHAMG 2022-02-11 628 ret = dm9051_eeprom_write(db, (offset + i) / 2, data + i); 2dc95a4d30edda Joseph CHAMG 2022-02-11 629 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 630 break; 2dc95a4d30edda Joseph CHAMG 2022-02-11 631 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 @632 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 633 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 634 -- 0-DAY CI Kernel Test Service https://01.org/lkp