доброго всем вечера!
решил сегодня перейти на «своей» железяке на новое ядро, но ожидаемо уткнулся в кучку проблем общей протяженностью в три экрана вывода ошибок после команды make.
но тут у меня вопрос, правильно ли я начал вносить коррективы, и эквиваленты ли куски под #if-#else? или я что-то пропускаю?
например, было в 4.4:
if (phydev->supported & SUPPORTED_Pause) {
if (phydev->advertising & ADVERTISED_Pause)
phydev->advertising &= ~(ADVERTISED_Pause | DVERTISED_Asym_Pause);
else
phydev->advertising |= ADVERTISED_Pause;
}
стало в 5.4:
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
if (linkmode_test_bit(SUPPORTED_Pause, phydev->supported)) {
dev_err(&phydev->mdio.dev, "%s: Pause supported. Toggling!\n", DEVICE_NAME);
if (linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->advertising)) {
#if 0
linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, mask);
linkmode_set_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, mask);
linkmode_andnot(phydev->advertising, phydev->advertising, mask);
#else
linkmode_clear_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->advertising);
linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, phydev->advertising);
#endif
} else
linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->advertising);
}
p.s. в принципе, мне то, что сразу под #if нравится меньше чем под #else, но «phydev->advertising &= ~(ADVERTISED_Pause | DVERTISED_Asym_Pause);» по-коду встречается еще пару раз, и сейчас вынесу в начало функции linkmode_set_bit'ы и у меня будет только одна строчка «linkmode_andnot(...)» :)