diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index aae1949887..327df52c6c 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -999,8 +999,12 @@ _ethtool_ring_set (NMDevice *self, g_hash_table_iter_init (&iter, hash); while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer *) &variant)) { - if (!nm_ethtool_optname_is_ring (name)) + NMEthtoolID ethtool_id = nm_ethtool_id_get_by_name (name); + guint32 u32; + + if (!nm_ethtool_id_is_ring (ethtool_id)) continue; + nm_assert (g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT32)); if (!has_old) { @@ -1014,12 +1018,23 @@ _ethtool_ring_set (NMDevice *self, ring_new = ring_old; } - if (!nm_platform_ethtool_init_ring (platform, - &ring_new, - name, - g_variant_get_uint32 (variant))) { - _LOGW (LOGD_DEVICE, "ethtool: invalid ring setting %s", name); - return; + u32 = g_variant_get_uint32 (variant); + + switch (ethtool_id) { + case NM_ETHTOOL_ID_RING_RX: + ring_new.rx_pending = u32; + break; + case NM_ETHTOOL_ID_RING_RX_JUMBO: + ring_new.rx_jumbo_pending = u32; + break; + case NM_ETHTOOL_ID_RING_RX_MINI: + ring_new.rx_mini_pending = u32; + break; + case NM_ETHTOOL_ID_RING_TX: + ring_new.tx_pending = u32; + break; + default: + nm_assert_not_reached (); } } @@ -1056,8 +1071,6 @@ _ethtool_state_reset (NMDevice *self) _ethtool_ring_reset (self, platform, ethtool_state); } - - static void _ethtool_state_set (NMDevice *self) { diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index b7a43a0ea1..2f2f99f00a 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -3252,41 +3252,6 @@ nm_platform_ethtool_get_link_ring (NMPlatform *self, return nmp_utils_ethtool_get_ring (ifindex, ring); } -gboolean -nm_platform_ethtool_init_ring (NMPlatform *self, - NMEthtoolRingState *ring, - const char *option_name, - guint32 value) -{ - NMEthtoolID ethtool_id; - - g_return_val_if_fail (ring, FALSE); - g_return_val_if_fail (option_name, FALSE); - - ethtool_id = nm_ethtool_id_get_by_name (option_name); - - g_return_val_if_fail (nm_ethtool_id_is_ring (ethtool_id), FALSE); - - switch (ethtool_id) { - case NM_ETHTOOL_ID_RING_RX: - ring->rx_pending = value; - break; - case NM_ETHTOOL_ID_RING_RX_JUMBO: - ring->rx_jumbo_pending = value; - break; - case NM_ETHTOOL_ID_RING_RX_MINI: - ring->rx_mini_pending = value; - break; - case NM_ETHTOOL_ID_RING_TX: - ring->tx_pending = value; - break; - default: - g_return_val_if_reached (FALSE); - } - - return TRUE; -} - gboolean nm_platform_ethtool_set_ring (NMPlatform *self, int ifindex, diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index fb82262979..c4eda16cc4 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -1975,11 +1975,6 @@ gboolean nm_platform_ethtool_get_link_ring (NMPlatform *self, int ifindex, NMEthtoolRingState *ring); -gboolean nm_platform_ethtool_init_ring (NMPlatform *self, - NMEthtoolRingState *ring, - const char *option_name, - guint32 value); - gboolean nm_platform_ethtool_set_ring (NMPlatform *self, int ifindex, const NMEthtoolRingState *ring);