Commit e0de7c93b950b9e784894efc4b529c6958cb747a
Committed by
David S. Miller
1 parent
e035587305
Exists in
master
and in
4 other branches
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>
Showing 3 changed files with 11 additions and 37 deletions Side-by-side Diff
drivers/net/niu.c
... | ... | @@ -7462,10 +7462,12 @@ |
7462 | 7462 | if (fsp->flow_type == IP_USER_FLOW) { |
7463 | 7463 | int i; |
7464 | 7464 | int add_usr_cls = 0; |
7465 | - int ipv6 = 0; | |
7466 | 7465 | struct ethtool_usrip4_spec *uspec = &fsp->h_u.usr_ip4_spec; |
7467 | 7466 | struct ethtool_usrip4_spec *umask = &fsp->m_u.usr_ip4_spec; |
7468 | 7467 | |
7468 | + if (uspec->ip_ver != ETH_RX_NFC_IP4) | |
7469 | + return -EINVAL; | |
7470 | + | |
7469 | 7471 | niu_lock_parent(np, flags); |
7470 | 7472 | |
7471 | 7473 | for (i = 0; i < NIU_L3_PROG_CLS; i++) { |
... | ... | @@ -7494,9 +7496,7 @@ |
7494 | 7496 | default: |
7495 | 7497 | break; |
7496 | 7498 | } |
7497 | - if (uspec->ip_ver == ETH_RX_NFC_IP6) | |
7498 | - ipv6 = 1; | |
7499 | - ret = tcam_user_ip_class_set(np, class, ipv6, | |
7499 | + ret = tcam_user_ip_class_set(np, class, 0, | |
7500 | 7500 | uspec->proto, |
7501 | 7501 | uspec->tos, |
7502 | 7502 | umask->tos); |
... | ... | @@ -7553,16 +7553,7 @@ |
7553 | 7553 | ret = -EINVAL; |
7554 | 7554 | goto out; |
7555 | 7555 | case IP_USER_FLOW: |
7556 | - if (fsp->h_u.usr_ip4_spec.ip_ver == ETH_RX_NFC_IP4) { | |
7557 | - niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table, | |
7558 | - class); | |
7559 | - } else { | |
7560 | - /* Not yet implemented */ | |
7561 | - netdev_info(np->dev, "niu%d: In %s(): usr flow for IPv6 not implemented\n", | |
7562 | - parent->index, __func__); | |
7563 | - ret = -EINVAL; | |
7564 | - goto out; | |
7565 | - } | |
7556 | + niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table, class); | |
7566 | 7557 | break; |
7567 | 7558 | default: |
7568 | 7559 | netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n", |
include/linux/ethtool.h
... | ... | @@ -353,20 +353,7 @@ |
353 | 353 | __u8 tos; |
354 | 354 | }; |
355 | 355 | |
356 | -struct ethtool_rawip4_spec { | |
357 | - __be32 ip4src; | |
358 | - __be32 ip4dst; | |
359 | - __u8 hdata[64]; | |
360 | -}; | |
361 | - | |
362 | -struct ethtool_ether_spec { | |
363 | - __be16 ether_type; | |
364 | - __u8 frame_size; | |
365 | - __u8 eframe[16]; | |
366 | -}; | |
367 | - | |
368 | 356 | #define ETH_RX_NFC_IP4 1 |
369 | -#define ETH_RX_NFC_IP6 2 | |
370 | 357 | |
371 | 358 | /** |
372 | 359 | * struct ethtool_usrip4_spec - general flow specification for IPv4 |
373 | 360 | |
... | ... | @@ -403,10 +390,8 @@ |
403 | 390 | struct ethtool_tcpip4_spec sctp_ip4_spec; |
404 | 391 | struct ethtool_ah_espip4_spec ah_ip4_spec; |
405 | 392 | struct ethtool_ah_espip4_spec esp_ip4_spec; |
406 | - struct ethtool_rawip4_spec raw_ip4_spec; | |
407 | - struct ethtool_ether_spec ether_spec; | |
408 | 393 | struct ethtool_usrip4_spec usr_ip4_spec; |
409 | - __u8 hdata[64]; | |
394 | + __u8 hdata[72]; | |
410 | 395 | } h_u, m_u; |
411 | 396 | __u64 ring_cookie; |
412 | 397 | __u32 location; |
413 | 398 | |
... | ... | @@ -496,10 +481,8 @@ |
496 | 481 | struct ethtool_tcpip4_spec sctp_ip4_spec; |
497 | 482 | struct ethtool_ah_espip4_spec ah_ip4_spec; |
498 | 483 | struct ethtool_ah_espip4_spec esp_ip4_spec; |
499 | - struct ethtool_rawip4_spec raw_ip4_spec; | |
500 | - struct ethtool_ether_spec ether_spec; | |
501 | 484 | struct ethtool_usrip4_spec usr_ip4_spec; |
502 | - __u8 hdata[64]; | |
485 | + __u8 hdata[72]; | |
503 | 486 | } h_u, m_u; |
504 | 487 | |
505 | 488 | __u16 vlan_tag; |
net/core/ethtool.c
... | ... | @@ -673,19 +673,19 @@ |
673 | 673 | break; |
674 | 674 | case IP_USER_FLOW: |
675 | 675 | sprintf(p, "\tSrc IP addr: 0x%x\n", |
676 | - fsc->fs.h_u.raw_ip4_spec.ip4src); | |
676 | + fsc->fs.h_u.usr_ip4_spec.ip4src); | |
677 | 677 | p += ETH_GSTRING_LEN; |
678 | 678 | num_strings++; |
679 | 679 | sprintf(p, "\tSrc IP mask: 0x%x\n", |
680 | - fsc->fs.m_u.raw_ip4_spec.ip4src); | |
680 | + fsc->fs.m_u.usr_ip4_spec.ip4src); | |
681 | 681 | p += ETH_GSTRING_LEN; |
682 | 682 | num_strings++; |
683 | 683 | sprintf(p, "\tDest IP addr: 0x%x\n", |
684 | - fsc->fs.h_u.raw_ip4_spec.ip4dst); | |
684 | + fsc->fs.h_u.usr_ip4_spec.ip4dst); | |
685 | 685 | p += ETH_GSTRING_LEN; |
686 | 686 | num_strings++; |
687 | 687 | sprintf(p, "\tDest IP mask: 0x%x\n", |
688 | - fsc->fs.m_u.raw_ip4_spec.ip4dst); | |
688 | + fsc->fs.m_u.usr_ip4_spec.ip4dst); | |
689 | 689 | p += ETH_GSTRING_LEN; |
690 | 690 | num_strings++; |
691 | 691 | break; |