Re: [RESEND PATCH net-next v2] net: phylink: Add helpers for c22 registers without MDIO

From: kernel test robot
Date: Thu Nov 18 2021 - 16:07:35 EST


Hi Sean,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url: https://github.com/0day-ci/linux/commits/Sean-Anderson/net-phylink-Add-helpers-for-c22-registers-without-MDIO/20211119-002726
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git bb8cecf8ba127abca8ccd102207a59c55fdae515
config: hexagon-randconfig-r045-20211118 (attached as .config)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/1af77aa70fbd03602e8db3d621fdaf4e8a301e98
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sean-Anderson/net-phylink-Add-helpers-for-c22-registers-without-MDIO/20211119-002726
git checkout 1af77aa70fbd03602e8db3d621fdaf4e8a301e98
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon

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

All warnings (new ones prefixed by >>):

>> drivers/net/phy/phylink.c:2952:10: warning: result of comparison of constant -22 with expression of type 'u16' (aka 'unsigned short') is always true [-Wtautological-constant-out-of-range-compare]
if (adv != -EINVAL) {
~~~ ^ ~~~~~~~
1 warning generated.


vim +2952 drivers/net/phy/phylink.c

2930
2931 /**
2932 * phylink_mii_c22_pcs_config() - configure clause 22 PCS
2933 * @pcs: a pointer to a &struct mdio_device.
2934 * @mode: link autonegotiation mode
2935 * @interface: the PHY interface mode being configured
2936 * @advertising: the ethtool advertisement mask
2937 *
2938 * Configure a Clause 22 PCS PHY with the appropriate negotiation
2939 * parameters for the @mode, @interface and @advertising parameters.
2940 * Returns negative error number on failure, zero if the advertisement
2941 * has not changed, or positive if there is a change.
2942 */
2943 int phylink_mii_c22_pcs_config(struct mdio_device *pcs, unsigned int mode,
2944 phy_interface_t interface,
2945 const unsigned long *advertising)
2946 {
2947 bool changed = 0;
2948 u16 adv, bmcr;
2949 int ret;
2950
2951 adv = phylink_mii_c22_pcs_encode_advertisement(interface, advertising);
> 2952 if (adv != -EINVAL) {
2953 ret = mdiobus_modify_changed(pcs->bus, pcs->addr,
2954 MII_ADVERTISE, 0xffff, adv);
2955 if (ret < 0)
2956 return ret;
2957 changed = ret;
2958 }
2959
2960 /* Ensure ISOLATE bit is disabled */
2961 if (mode == MLO_AN_INBAND &&
2962 linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, advertising))
2963 bmcr = BMCR_ANENABLE;
2964 else
2965 bmcr = 0;
2966
2967 ret = mdiodev_modify(pcs, MII_BMCR, BMCR_ANENABLE | BMCR_ISOLATE, bmcr);
2968 if (ret < 0)
2969 return ret;
2970
2971 return changed;
2972 }
2973 EXPORT_SYMBOL_GPL(phylink_mii_c22_pcs_config);
2974

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip