core: optimize hash table search in _ethtool_fec_set

Break the loop as soon as we've found the value.

Fixes: 19bed3121f ('ethtool: support Forward Error Correction(fec)')
This commit is contained in:
Íñigo Huguet
2025-04-03 09:32:26 +02:00
parent cbdd0d9cca
commit 245f0e0b35

View File

@@ -2788,13 +2788,11 @@ _ethtool_fec_set(NMDevice *self,
g_hash_table_iter_init(&iter, hash); g_hash_table_iter_init(&iter, hash);
while (g_hash_table_iter_next(&iter, (gpointer *) &name, (gpointer *) &variant)) { while (g_hash_table_iter_next(&iter, (gpointer *) &name, (gpointer *) &variant)) {
NMEthtoolID ethtool_id = nm_ethtool_id_get_by_name(name); if (nm_ethtool_id_is_fec(nm_ethtool_id_get_by_name(name))) {
nm_assert(g_variant_is_of_type(variant, G_VARIANT_TYPE_UINT32));
if (!nm_ethtool_id_is_fec(ethtool_id)) fec_mode = g_variant_get_uint32(variant);
continue; break;
}
nm_assert(g_variant_is_of_type(variant, G_VARIANT_TYPE_UINT32));
fec_mode = g_variant_get_uint32(variant);
} }
/* The NM_SETTING_ETHTOOL_FEC_MODE_NONE is query only value, hence do nothing. */ /* The NM_SETTING_ETHTOOL_FEC_MODE_NONE is query only value, hence do nothing. */