mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 08:09:56 +00:00
ethtool: Remove unimplemented flow specification types
struct ethtool_rawip4_spec and struct ethtool_ether_spec are neither commented nor used by any driver, so remove them. Adjust padding in the user-visible unions that included these structures. Fix references to struct ethtool_rawip4_spec in ethtool_get_rx_ntuple(), which should use struct ethtool_usrip4_spec. struct ethtool_usrip4_spec cannot hold IPv6 host addresses and there is no separate structure that can, so remove ETH_RX_NFC_IP6 and the reference to it in niu. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e035587305
commit
e0de7c93b9
@ -7462,10 +7462,12 @@ static int niu_add_ethtool_tcam_entry(struct niu *np,
|
||||
if (fsp->flow_type == IP_USER_FLOW) {
|
||||
int i;
|
||||
int add_usr_cls = 0;
|
||||
int ipv6 = 0;
|
||||
struct ethtool_usrip4_spec *uspec = &fsp->h_u.usr_ip4_spec;
|
||||
struct ethtool_usrip4_spec *umask = &fsp->m_u.usr_ip4_spec;
|
||||
|
||||
if (uspec->ip_ver != ETH_RX_NFC_IP4)
|
||||
return -EINVAL;
|
||||
|
||||
niu_lock_parent(np, flags);
|
||||
|
||||
for (i = 0; i < NIU_L3_PROG_CLS; i++) {
|
||||
@ -7494,9 +7496,7 @@ static int niu_add_ethtool_tcam_entry(struct niu *np,
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (uspec->ip_ver == ETH_RX_NFC_IP6)
|
||||
ipv6 = 1;
|
||||
ret = tcam_user_ip_class_set(np, class, ipv6,
|
||||
ret = tcam_user_ip_class_set(np, class, 0,
|
||||
uspec->proto,
|
||||
uspec->tos,
|
||||
umask->tos);
|
||||
@ -7553,16 +7553,7 @@ static int niu_add_ethtool_tcam_entry(struct niu *np,
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
case IP_USER_FLOW:
|
||||
if (fsp->h_u.usr_ip4_spec.ip_ver == ETH_RX_NFC_IP4) {
|
||||
niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table,
|
||||
class);
|
||||
} else {
|
||||
/* Not yet implemented */
|
||||
netdev_info(np->dev, "niu%d: In %s(): usr flow for IPv6 not implemented\n",
|
||||
parent->index, __func__);
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table, class);
|
||||
break;
|
||||
default:
|
||||
netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n",
|
||||
|
@ -353,20 +353,7 @@ struct ethtool_ah_espip4_spec {
|
||||
__u8 tos;
|
||||
};
|
||||
|
||||
struct ethtool_rawip4_spec {
|
||||
__be32 ip4src;
|
||||
__be32 ip4dst;
|
||||
__u8 hdata[64];
|
||||
};
|
||||
|
||||
struct ethtool_ether_spec {
|
||||
__be16 ether_type;
|
||||
__u8 frame_size;
|
||||
__u8 eframe[16];
|
||||
};
|
||||
|
||||
#define ETH_RX_NFC_IP4 1
|
||||
#define ETH_RX_NFC_IP6 2
|
||||
|
||||
/**
|
||||
* struct ethtool_usrip4_spec - general flow specification for IPv4
|
||||
@ -403,10 +390,8 @@ struct ethtool_rx_flow_spec {
|
||||
struct ethtool_tcpip4_spec sctp_ip4_spec;
|
||||
struct ethtool_ah_espip4_spec ah_ip4_spec;
|
||||
struct ethtool_ah_espip4_spec esp_ip4_spec;
|
||||
struct ethtool_rawip4_spec raw_ip4_spec;
|
||||
struct ethtool_ether_spec ether_spec;
|
||||
struct ethtool_usrip4_spec usr_ip4_spec;
|
||||
__u8 hdata[64];
|
||||
__u8 hdata[72];
|
||||
} h_u, m_u;
|
||||
__u64 ring_cookie;
|
||||
__u32 location;
|
||||
@ -496,10 +481,8 @@ struct ethtool_rx_ntuple_flow_spec {
|
||||
struct ethtool_tcpip4_spec sctp_ip4_spec;
|
||||
struct ethtool_ah_espip4_spec ah_ip4_spec;
|
||||
struct ethtool_ah_espip4_spec esp_ip4_spec;
|
||||
struct ethtool_rawip4_spec raw_ip4_spec;
|
||||
struct ethtool_ether_spec ether_spec;
|
||||
struct ethtool_usrip4_spec usr_ip4_spec;
|
||||
__u8 hdata[64];
|
||||
__u8 hdata[72];
|
||||
} h_u, m_u;
|
||||
|
||||
__u16 vlan_tag;
|
||||
|
@ -673,19 +673,19 @@ static int ethtool_get_rx_ntuple(struct net_device *dev, void __user *useraddr)
|
||||
break;
|
||||
case IP_USER_FLOW:
|
||||
sprintf(p, "\tSrc IP addr: 0x%x\n",
|
||||
fsc->fs.h_u.raw_ip4_spec.ip4src);
|
||||
fsc->fs.h_u.usr_ip4_spec.ip4src);
|
||||
p += ETH_GSTRING_LEN;
|
||||
num_strings++;
|
||||
sprintf(p, "\tSrc IP mask: 0x%x\n",
|
||||
fsc->fs.m_u.raw_ip4_spec.ip4src);
|
||||
fsc->fs.m_u.usr_ip4_spec.ip4src);
|
||||
p += ETH_GSTRING_LEN;
|
||||
num_strings++;
|
||||
sprintf(p, "\tDest IP addr: 0x%x\n",
|
||||
fsc->fs.h_u.raw_ip4_spec.ip4dst);
|
||||
fsc->fs.h_u.usr_ip4_spec.ip4dst);
|
||||
p += ETH_GSTRING_LEN;
|
||||
num_strings++;
|
||||
sprintf(p, "\tDest IP mask: 0x%x\n",
|
||||
fsc->fs.m_u.raw_ip4_spec.ip4dst);
|
||||
fsc->fs.m_u.usr_ip4_spec.ip4dst);
|
||||
p += ETH_GSTRING_LEN;
|
||||
num_strings++;
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user