diff --git a/src/libnm-platform/nm-platform.c b/src/libnm-platform/nm-platform.c index 853157d204..86e193dc0c 100644 --- a/src/libnm-platform/nm-platform.c +++ b/src/libnm-platform/nm-platform.c @@ -3211,7 +3211,6 @@ gboolean nm_platform_link_veth_get_properties(NMPlatform *self, int ifindex, int *out_peer_ifindex) { const NMPlatformLink *plink; - int peer_ifindex; plink = nm_platform_link_get(self, ifindex); if (!plink) @@ -3220,23 +3219,10 @@ nm_platform_link_veth_get_properties(NMPlatform *self, int ifindex, int *out_pee if (plink->type != NM_LINK_TYPE_VETH) return FALSE; - if (plink->parent != 0) { - NM_SET_OUT(out_peer_ifindex, plink->parent); - return TRUE; - } + if (plink->parent == 0) + return FALSE; - /* Pre-4.1 kernel did not expose the peer_ifindex as IFA_LINK. Lookup via ethtool. */ - if (out_peer_ifindex) { - nm_auto_pop_netns NMPNetns *netns = NULL; - - if (!nm_platform_netns_push(self, &netns)) - return FALSE; - peer_ifindex = nmp_ethtool_ioctl_get_peer_ifindex(plink->ifindex); - if (peer_ifindex <= 0) - return FALSE; - - *out_peer_ifindex = peer_ifindex; - } + NM_SET_OUT(out_peer_ifindex, plink->parent); return TRUE; } diff --git a/src/libnm-platform/nmp-ethtool-ioctl.c b/src/libnm-platform/nmp-ethtool-ioctl.c index 830b02f6cc..9694eaecb1 100644 --- a/src/libnm-platform/nmp-ethtool-ioctl.c +++ b/src/libnm-platform/nmp-ethtool-ioctl.c @@ -1190,33 +1190,6 @@ nmp_ethtool_ioctl_supports_vlans(int ifindex) return !(features->features[block].active & (1 << bit)); } -int -nmp_ethtool_ioctl_get_peer_ifindex(int ifindex) -{ - nm_auto_socket_handle SocketHandle shandle = SOCKET_HANDLE_INIT(ifindex); - gsize stats_len; - gs_free struct ethtool_stats *stats_free = NULL; - struct ethtool_stats *stats; - int peer_ifindex_stat; - - g_return_val_if_fail(ifindex > 0, 0); - - peer_ifindex_stat = ethtool_get_stringset_index(&shandle, ETH_SS_STATS, "peer_ifindex"); - if (peer_ifindex_stat < 0) { - nm_log_dbg(LOGD_PLATFORM, "ethtool[%d]: peer_ifindex stat does not exist?", ifindex); - return FALSE; - } - - stats_len = sizeof(*stats) + (peer_ifindex_stat + 1) * sizeof(guint64); - stats = nm_malloc0_maybe_a(300, stats_len, &stats_free); - stats->cmd = ETHTOOL_GSTATS; - stats->n_stats = peer_ifindex_stat + 1; - if (_ethtool_call_handle(&shandle, stats, stats_len) < 0) - return 0; - - return stats->data[peer_ifindex_stat]; -} - gboolean nmp_ethtool_ioctl_get_wake_on_lan(int ifindex) { diff --git a/src/libnm-platform/nmp-ethtool-ioctl.h b/src/libnm-platform/nmp-ethtool-ioctl.h index cb93e9cf55..1c973649eb 100644 --- a/src/libnm-platform/nmp-ethtool-ioctl.h +++ b/src/libnm-platform/nmp-ethtool-ioctl.h @@ -9,8 +9,6 @@ gboolean nmp_ethtool_ioctl_supports_carrier_detect(int ifindex); gboolean nmp_ethtool_ioctl_supports_vlans(int ifindex); -int nmp_ethtool_ioctl_get_peer_ifindex(int ifindex); - gboolean nmp_ethtool_ioctl_get_wake_on_lan(int ifindex); gboolean nmp_ethtool_ioctl_set_wake_on_lan(int ifindex,