On Mon, 8 Jul 2024 11:33:00 -0700 Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > On Mon, 8 Jul 2024 11:38:46 +0200 Kory Maincent wrote: > [...] > [...] > > Don't worry I understand the code well enough to resolve any conflicts > (famous last words?). And if we fix as part of ethnl_set_pse_validate() > then there's no conflict, AFAICT. As you can see in the patch I just sent https://lore.kernel.org/netdev/20240709131201.166421-1-kory.maincent@xxxxxxxxxxx/T/#u the fix is not in set_pse_validate() therefore you will have a merge conflict. You could do this to solve the merge conflict: --- a/net/ethtool/pse-pd.c +++ b/net/ethtool/pse-pd.c @@ -256,6 +256,7 @@ static int ethnl_set_pse(struct ethnl_req_info *req_info, struct genl_info *info) { struct net_device *dev = req_info->dev; + struct pse_control_config config = {}; struct nlattr **tb = info->attrs; struct phy_device *phydev; int ret = 0; @@ -273,15 +274,13 @@ ethnl_set_pse(struct ethnl_req_info *req_info, struct genl_info *info) } /* These values are already validated by the ethnl_pse_set_policy */ + if (tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL]) + config.podl_admin_control = nla_get_u32(tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL]); + if (tb[ETHTOOL_A_C33_PSE_ADMIN_CONTROL]) + config.c33_admin_control = nla_get_u32(tb[ETHTOOL_A_C33_PSE_ADMIN_CONTROL]); + if (tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL] || tb[ETHTOOL_A_C33_PSE_ADMIN_CONTROL]) { - struct pse_control_config config = {}; - - if (pse_has_podl(phydev->psec)) - config.podl_admin_control = nla_get_u32(tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL]); - if (pse_has_c33(phydev->psec)) - config.c33_admin_control = nla_get_u32(tb[ETHTOOL_A_C33_PSE_ADMIN_CONTROL]); - ret = pse_ethtool_set_config(phydev->psec, info->extack, &config); if (ret) Regards, -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com