[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202401201343.wjSFEBK2-lkp@intel.com>
Date: Sat, 20 Jan 2024 14:06:48 +0800
From: kernel test robot <lkp@...el.com>
To: Jedrzej Jagielski <jedrzej.jagielski@...el.com>,
intel-wired-lan@...ts.osuosl.org
Cc: oe-kbuild-all@...ts.linux.dev, anthony.l.nguyen@...el.com,
netdev@...r.kernel.org,
Jedrzej Jagielski <jedrzej.jagielski@...el.com>
Subject: Re: [PATCH iwl-next v3 3/3] ixgbe: Cleanup after type convertion
Hi Jedrzej,
kernel test robot noticed the following build warnings:
[auto build test WARNING on tnguy-next-queue/dev-queue]
url: https://github.com/intel-lab-lkp/linux/commits/Jedrzej-Jagielski/ixgbe-Fix-smatch-warnings-after-type-convertion/20240119-015659
base: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git dev-queue
patch link: https://lore.kernel.org/r/20240118134332.470907-3-jedrzej.jagielski%40intel.com
patch subject: [PATCH iwl-next v3 3/3] ixgbe: Cleanup after type convertion
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20240120/202401201343.wjSFEBK2-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240120/202401201343.wjSFEBK2-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401201343.wjSFEBK2-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c: In function 'ixgbe_setup_mac_link_82599':
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c:774:34: error: 'autoc2' undeclared (first use in this function)
774 | u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK;
| ^~~~~~
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c:774:34: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c:776:13: warning: unused variable 'autoc2' [-Wunused-variable]
776 | u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
| ^~~~~~
vim +/autoc2 +776 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
761
762 /**
763 * ixgbe_setup_mac_link_82599 - Set MAC link speed
764 * @hw: pointer to hardware structure
765 * @speed: new link speed
766 * @autoneg_wait_to_complete: true when waiting for completion is needed
767 *
768 * Set the link speed in the AUTOC register and restarts link.
769 **/
770 static int ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
771 ixgbe_link_speed speed,
772 bool autoneg_wait_to_complete)
773 {
774 u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK;
775 ixgbe_link_speed link_capabilities = IXGBE_LINK_SPEED_UNKNOWN;
> 776 u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
777 u32 pma_pmd_1g, link_mode, links_reg, i;
778 bool autoneg = false;
779 int status;
780
781 /* holds the value of AUTOC register at this current point in time */
782 u32 current_autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC);
783 /* holds the cached value of AUTOC register */
784 u32 orig_autoc = 0;
785 /* temporary variable used for comparison purposes */
786 u32 autoc = current_autoc;
787
788 /* Check to see if speed passed in is supported. */
789 status = hw->mac.ops.get_link_capabilities(hw, &link_capabilities,
790 &autoneg);
791 if (status)
792 return status;
793
794 speed &= link_capabilities;
795
796 if (speed == IXGBE_LINK_SPEED_UNKNOWN)
797 return -EINVAL;
798
799 /* Use stored value (EEPROM defaults) of AUTOC to find KR/KX4 support*/
800 if (hw->mac.orig_link_settings_stored)
801 orig_autoc = hw->mac.orig_autoc;
802 else
803 orig_autoc = autoc;
804
805 link_mode = autoc & IXGBE_AUTOC_LMS_MASK;
806 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK;
807
808 if (link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR ||
809 link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN ||
810 link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII) {
811 /* Set KX4/KX/KR support according to speed requested */
812 autoc &= ~(IXGBE_AUTOC_KX4_KX_SUPP_MASK | IXGBE_AUTOC_KR_SUPP);
813 if (speed & IXGBE_LINK_SPEED_10GB_FULL) {
814 if (orig_autoc & IXGBE_AUTOC_KX4_SUPP)
815 autoc |= IXGBE_AUTOC_KX4_SUPP;
816 if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) &&
817 (hw->phy.smart_speed_active == false))
818 autoc |= IXGBE_AUTOC_KR_SUPP;
819 }
820 if (speed & IXGBE_LINK_SPEED_1GB_FULL)
821 autoc |= IXGBE_AUTOC_KX_SUPP;
822 } else if ((pma_pmd_1g == IXGBE_AUTOC_1G_SFI) &&
823 (link_mode == IXGBE_AUTOC_LMS_1G_LINK_NO_AN ||
824 link_mode == IXGBE_AUTOC_LMS_1G_AN)) {
825 /* Switch from 1G SFI to 10G SFI if requested */
826 if ((speed == IXGBE_LINK_SPEED_10GB_FULL) &&
827 (pma_pmd_10g_serial == IXGBE_AUTOC2_10G_SFI)) {
828 autoc &= ~IXGBE_AUTOC_LMS_MASK;
829 autoc |= IXGBE_AUTOC_LMS_10G_SERIAL;
830 }
831 } else if ((pma_pmd_10g_serial == IXGBE_AUTOC2_10G_SFI) &&
832 (link_mode == IXGBE_AUTOC_LMS_10G_SERIAL)) {
833 /* Switch from 10G SFI to 1G SFI if requested */
834 if ((speed == IXGBE_LINK_SPEED_1GB_FULL) &&
835 (pma_pmd_1g == IXGBE_AUTOC_1G_SFI)) {
836 autoc &= ~IXGBE_AUTOC_LMS_MASK;
837 if (autoneg)
838 autoc |= IXGBE_AUTOC_LMS_1G_AN;
839 else
840 autoc |= IXGBE_AUTOC_LMS_1G_LINK_NO_AN;
841 }
842 }
843
844 if (autoc != current_autoc) {
845 /* Restart link */
846 status = hw->mac.ops.prot_autoc_write(hw, autoc, false);
847 if (status)
848 return status;
849
850 /* Only poll for autoneg to complete if specified to do so */
851 if (autoneg_wait_to_complete) {
852 if (link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR ||
853 link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN ||
854 link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII) {
855 links_reg = 0; /*Just in case Autoneg time=0*/
856 for (i = 0; i < IXGBE_AUTO_NEG_TIME; i++) {
857 links_reg =
858 IXGBE_READ_REG(hw, IXGBE_LINKS);
859 if (links_reg & IXGBE_LINKS_KX_AN_COMP)
860 break;
861 msleep(100);
862 }
863 if (!(links_reg & IXGBE_LINKS_KX_AN_COMP)) {
864 status = -EIO;
865 hw_dbg(hw, "Autoneg did not complete.\n");
866 }
867 }
868 }
869
870 /* Add delay to filter out noises during initial link setup */
871 msleep(50);
872 }
873
874 return status;
875 }
876
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists