Loading drivers/net/phy/phylink.c +2 −5 Original line number Diff line number Diff line Loading @@ -117,9 +117,7 @@ static int phylink_is_empty_linkmode(const unsigned long *linkmode) phylink_set(tmp, Pause); phylink_set(tmp, Asym_Pause); bitmap_andnot(tmp, linkmode, tmp, __ETHTOOL_LINK_MODE_MASK_NBITS); return linkmode_empty(tmp); return linkmode_subset(linkmode, tmp); } static const char *phylink_an_mode_str(unsigned int mode) Loading Loading @@ -1728,8 +1726,7 @@ static int phylink_sfp_module_insert(void *upstream, if (phy_interface_mode_is_8023z(iface) && pl->phydev) return -EINVAL; changed = !bitmap_equal(pl->supported, support, __ETHTOOL_LINK_MODE_MASK_NBITS); changed = !linkmode_equal(pl->supported, support); if (changed) { linkmode_copy(pl->supported, support); linkmode_copy(pl->link_config.advertising, config.advertising); Loading include/linux/linkmode.h +6 −0 Original line number Diff line number Diff line Loading @@ -82,4 +82,10 @@ static inline int linkmode_equal(const unsigned long *src1, return bitmap_equal(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); } static inline int linkmode_subset(const unsigned long *src1, const unsigned long *src2) { return bitmap_subset(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); } #endif /* __LINKMODE_H */ Loading
drivers/net/phy/phylink.c +2 −5 Original line number Diff line number Diff line Loading @@ -117,9 +117,7 @@ static int phylink_is_empty_linkmode(const unsigned long *linkmode) phylink_set(tmp, Pause); phylink_set(tmp, Asym_Pause); bitmap_andnot(tmp, linkmode, tmp, __ETHTOOL_LINK_MODE_MASK_NBITS); return linkmode_empty(tmp); return linkmode_subset(linkmode, tmp); } static const char *phylink_an_mode_str(unsigned int mode) Loading Loading @@ -1728,8 +1726,7 @@ static int phylink_sfp_module_insert(void *upstream, if (phy_interface_mode_is_8023z(iface) && pl->phydev) return -EINVAL; changed = !bitmap_equal(pl->supported, support, __ETHTOOL_LINK_MODE_MASK_NBITS); changed = !linkmode_equal(pl->supported, support); if (changed) { linkmode_copy(pl->supported, support); linkmode_copy(pl->link_config.advertising, config.advertising); Loading
include/linux/linkmode.h +6 −0 Original line number Diff line number Diff line Loading @@ -82,4 +82,10 @@ static inline int linkmode_equal(const unsigned long *src1, return bitmap_equal(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); } static inline int linkmode_subset(const unsigned long *src1, const unsigned long *src2) { return bitmap_subset(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); } #endif /* __LINKMODE_H */