Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ethtool: extend ringparam setting/getting API with rx_buf_len

Add two new parameters kernel_ringparam and extack for
.get_ringparam and .set_ringparam to extend more ring params
through netlink.

Signed-off-by: Hao Chen <chenhao288@hisilicon.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Hao Chen and committed by
David S. Miller
74624944 0b70c256

+617 -212
+3 -1
arch/um/drivers/vector_kern.c
··· 1441 1441 } 1442 1442 1443 1443 static void vector_get_ringparam(struct net_device *netdev, 1444 - struct ethtool_ringparam *ring) 1444 + struct ethtool_ringparam *ring, 1445 + struct kernel_ethtool_ringparam *kernel_ring, 1446 + struct netlink_ext_ack *extack) 1445 1447 { 1446 1448 struct vector_private *vp = netdev_priv(netdev); 1447 1449
+3 -1
drivers/net/can/c_can/c_can_ethtool.c
··· 20 20 } 21 21 22 22 static void c_can_get_ringparam(struct net_device *netdev, 23 - struct ethtool_ringparam *ring) 23 + struct ethtool_ringparam *ring, 24 + struct kernel_ethtool_ringparam *kernel_ring, 25 + struct netlink_ext_ack *extack) 24 26 { 25 27 struct c_can_priv *priv = netdev_priv(netdev); 26 28
+3 -1
drivers/net/ethernet/3com/typhoon.c
··· 1138 1138 } 1139 1139 1140 1140 static void 1141 - typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) 1141 + typhoon_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering, 1142 + struct kernel_ethtool_ringparam *kernel_ering, 1143 + struct netlink_ext_ack *extack) 1142 1144 { 1143 1145 ering->rx_max_pending = RXENT_ENTRIES; 1144 1146 ering->tx_max_pending = TXLO_ENTRIES - 1;
+6 -2
drivers/net/ethernet/amazon/ena/ena_ethtool.c
··· 465 465 } 466 466 467 467 static void ena_get_ringparam(struct net_device *netdev, 468 - struct ethtool_ringparam *ring) 468 + struct ethtool_ringparam *ring, 469 + struct kernel_ethtool_ringparam *kernel_ring, 470 + struct netlink_ext_ack *extack) 469 471 { 470 472 struct ena_adapter *adapter = netdev_priv(netdev); 471 473 ··· 478 476 } 479 477 480 478 static int ena_set_ringparam(struct net_device *netdev, 481 - struct ethtool_ringparam *ring) 479 + struct ethtool_ringparam *ring, 480 + struct kernel_ethtool_ringparam *kernel_ring, 481 + struct netlink_ext_ack *extack) 482 482 { 483 483 struct ena_adapter *adapter = netdev_priv(netdev); 484 484 u32 new_tx_size, new_rx_size;
+6 -2
drivers/net/ethernet/amd/pcnet32.c
··· 860 860 } 861 861 862 862 static void pcnet32_get_ringparam(struct net_device *dev, 863 - struct ethtool_ringparam *ering) 863 + struct ethtool_ringparam *ering, 864 + struct kernel_ethtool_ringparam *kernel_ering, 865 + struct netlink_ext_ack *extack) 864 866 { 865 867 struct pcnet32_private *lp = netdev_priv(dev); 866 868 ··· 873 871 } 874 872 875 873 static int pcnet32_set_ringparam(struct net_device *dev, 876 - struct ethtool_ringparam *ering) 874 + struct ethtool_ringparam *ering, 875 + struct kernel_ethtool_ringparam *kernel_ering, 876 + struct netlink_ext_ack *extack) 877 877 { 878 878 struct pcnet32_private *lp = netdev_priv(dev); 879 879 unsigned long flags;
+8 -3
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
··· 619 619 return pdata->phy_if.module_eeprom(pdata, eeprom, data); 620 620 } 621 621 622 - static void xgbe_get_ringparam(struct net_device *netdev, 623 - struct ethtool_ringparam *ringparam) 622 + static void 623 + xgbe_get_ringparam(struct net_device *netdev, 624 + struct ethtool_ringparam *ringparam, 625 + struct kernel_ethtool_ringparam *kernel_ringparam, 626 + struct netlink_ext_ack *extack) 624 627 { 625 628 struct xgbe_prv_data *pdata = netdev_priv(netdev); 626 629 ··· 634 631 } 635 632 636 633 static int xgbe_set_ringparam(struct net_device *netdev, 637 - struct ethtool_ringparam *ringparam) 634 + struct ethtool_ringparam *ringparam, 635 + struct kernel_ethtool_ringparam *kernel_ringparam, 636 + struct netlink_ext_ack *extack) 638 637 { 639 638 struct xgbe_prv_data *pdata = netdev_priv(netdev); 640 639 unsigned int rx, tx;
+6 -2
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
··· 812 812 } 813 813 814 814 static void aq_get_ringparam(struct net_device *ndev, 815 - struct ethtool_ringparam *ring) 815 + struct ethtool_ringparam *ring, 816 + struct kernel_ethtool_ringparam *kernel_ring, 817 + struct netlink_ext_ack *extack) 816 818 { 817 819 struct aq_nic_s *aq_nic = netdev_priv(ndev); 818 820 struct aq_nic_cfg_s *cfg; ··· 829 827 } 830 828 831 829 static int aq_set_ringparam(struct net_device *ndev, 832 - struct ethtool_ringparam *ring) 830 + struct ethtool_ringparam *ring, 831 + struct kernel_ethtool_ringparam *kernel_ring, 832 + struct netlink_ext_ack *extack) 833 833 { 834 834 struct aq_nic_s *aq_nic = netdev_priv(ndev); 835 835 const struct aq_hw_caps_s *hw_caps;
+6 -2
drivers/net/ethernet/atheros/atlx/atl1.c
··· 3438 3438 } 3439 3439 3440 3440 static void atl1_get_ringparam(struct net_device *netdev, 3441 - struct ethtool_ringparam *ring) 3441 + struct ethtool_ringparam *ring, 3442 + struct kernel_ethtool_ringparam *kernel_ring, 3443 + struct netlink_ext_ack *extack) 3442 3444 { 3443 3445 struct atl1_adapter *adapter = netdev_priv(netdev); 3444 3446 struct atl1_tpd_ring *txdr = &adapter->tpd_ring; ··· 3453 3451 } 3454 3452 3455 3453 static int atl1_set_ringparam(struct net_device *netdev, 3456 - struct ethtool_ringparam *ring) 3454 + struct ethtool_ringparam *ring, 3455 + struct kernel_ethtool_ringparam *kernel_ring, 3456 + struct netlink_ext_ack *extack) 3457 3457 { 3458 3458 struct atl1_adapter *adapter = netdev_priv(netdev); 3459 3459 struct atl1_tpd_ring *tpdr = &adapter->tpd_ring;
+6 -2
drivers/net/ethernet/broadcom/b44.c
··· 1961 1961 } 1962 1962 1963 1963 static void b44_get_ringparam(struct net_device *dev, 1964 - struct ethtool_ringparam *ering) 1964 + struct ethtool_ringparam *ering, 1965 + struct kernel_ethtool_ringparam *kernel_ering, 1966 + struct netlink_ext_ack *extack) 1965 1967 { 1966 1968 struct b44 *bp = netdev_priv(dev); 1967 1969 ··· 1974 1972 } 1975 1973 1976 1974 static int b44_set_ringparam(struct net_device *dev, 1977 - struct ethtool_ringparam *ering) 1975 + struct ethtool_ringparam *ering, 1976 + struct kernel_ethtool_ringparam *kernel_ering, 1977 + struct netlink_ext_ack *extack) 1978 1978 { 1979 1979 struct b44 *bp = netdev_priv(dev); 1980 1980
+18 -7
drivers/net/ethernet/broadcom/bcm63xx_enet.c
··· 1497 1497 } 1498 1498 } 1499 1499 1500 - static void bcm_enet_get_ringparam(struct net_device *dev, 1501 - struct ethtool_ringparam *ering) 1500 + static void 1501 + bcm_enet_get_ringparam(struct net_device *dev, 1502 + struct ethtool_ringparam *ering, 1503 + struct kernel_ethtool_ringparam *kernel_ering, 1504 + struct netlink_ext_ack *extack) 1502 1505 { 1503 1506 struct bcm_enet_priv *priv; 1504 1507 ··· 1515 1512 } 1516 1513 1517 1514 static int bcm_enet_set_ringparam(struct net_device *dev, 1518 - struct ethtool_ringparam *ering) 1515 + struct ethtool_ringparam *ering, 1516 + struct kernel_ethtool_ringparam *kernel_ering, 1517 + struct netlink_ext_ack *extack) 1519 1518 { 1520 1519 struct bcm_enet_priv *priv; 1521 1520 int was_running; ··· 2584 2579 } 2585 2580 } 2586 2581 2587 - static void bcm_enetsw_get_ringparam(struct net_device *dev, 2588 - struct ethtool_ringparam *ering) 2582 + static void 2583 + bcm_enetsw_get_ringparam(struct net_device *dev, 2584 + struct ethtool_ringparam *ering, 2585 + struct kernel_ethtool_ringparam *kernel_ering, 2586 + struct netlink_ext_ack *extack) 2589 2587 { 2590 2588 struct bcm_enet_priv *priv; 2591 2589 ··· 2603 2595 ering->tx_pending = priv->tx_ring_size; 2604 2596 } 2605 2597 2606 - static int bcm_enetsw_set_ringparam(struct net_device *dev, 2607 - struct ethtool_ringparam *ering) 2598 + static int 2599 + bcm_enetsw_set_ringparam(struct net_device *dev, 2600 + struct ethtool_ringparam *ering, 2601 + struct kernel_ethtool_ringparam *kernel_ering, 2602 + struct netlink_ext_ack *extack) 2608 2603 { 2609 2604 struct bcm_enet_priv *priv; 2610 2605 int was_running;
+6 -2
drivers/net/ethernet/broadcom/bnx2.c
··· 7318 7318 } 7319 7319 7320 7320 static void 7321 - bnx2_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) 7321 + bnx2_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering, 7322 + struct kernel_ethtool_ringparam *kernel_ering, 7323 + struct netlink_ext_ack *extack) 7322 7324 { 7323 7325 struct bnx2 *bp = netdev_priv(dev); 7324 7326 ··· 7391 7389 } 7392 7390 7393 7391 static int 7394 - bnx2_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) 7392 + bnx2_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering, 7393 + struct kernel_ethtool_ringparam *kernel_ering, 7394 + struct netlink_ext_ack *extack) 7395 7395 { 7396 7396 struct bnx2 *bp = netdev_priv(dev); 7397 7397 int rc;
+6 -2
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
··· 1914 1914 } 1915 1915 1916 1916 static void bnx2x_get_ringparam(struct net_device *dev, 1917 - struct ethtool_ringparam *ering) 1917 + struct ethtool_ringparam *ering, 1918 + struct kernel_ethtool_ringparam *kernel_ering, 1919 + struct netlink_ext_ack *extack) 1918 1920 { 1919 1921 struct bnx2x *bp = netdev_priv(dev); 1920 1922 ··· 1940 1938 } 1941 1939 1942 1940 static int bnx2x_set_ringparam(struct net_device *dev, 1943 - struct ethtool_ringparam *ering) 1941 + struct ethtool_ringparam *ering, 1942 + struct kernel_ethtool_ringparam *kernel_ering, 1943 + struct netlink_ext_ack *extack) 1944 1944 { 1945 1945 struct bnx2x *bp = netdev_priv(dev); 1946 1946
+6 -2
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
··· 775 775 } 776 776 777 777 static void bnxt_get_ringparam(struct net_device *dev, 778 - struct ethtool_ringparam *ering) 778 + struct ethtool_ringparam *ering, 779 + struct kernel_ethtool_ringparam *kernel_ering, 780 + struct netlink_ext_ack *extack) 779 781 { 780 782 struct bnxt *bp = netdev_priv(dev); 781 783 ··· 796 794 } 797 795 798 796 static int bnxt_set_ringparam(struct net_device *dev, 799 - struct ethtool_ringparam *ering) 797 + struct ethtool_ringparam *ering, 798 + struct kernel_ethtool_ringparam *kernel_ering, 799 + struct netlink_ext_ack *extack) 800 800 { 801 801 struct bnxt *bp = netdev_priv(dev); 802 802
+8 -2
drivers/net/ethernet/broadcom/tg3.c
··· 12390 12390 return r; 12391 12391 } 12392 12392 12393 - static void tg3_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) 12393 + static void tg3_get_ringparam(struct net_device *dev, 12394 + struct ethtool_ringparam *ering, 12395 + struct kernel_ethtool_ringparam *kernel_ering, 12396 + struct netlink_ext_ack *extack) 12394 12397 { 12395 12398 struct tg3 *tp = netdev_priv(dev); 12396 12399 ··· 12414 12411 ering->tx_pending = tp->napi[0].tx_pending; 12415 12412 } 12416 12413 12417 - static int tg3_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) 12414 + static int tg3_set_ringparam(struct net_device *dev, 12415 + struct ethtool_ringparam *ering, 12416 + struct kernel_ethtool_ringparam *kernel_ering, 12417 + struct netlink_ext_ack *extack) 12418 12418 { 12419 12419 struct tg3 *tp = netdev_priv(dev); 12420 12420 int i, irq_sync = 0, err = 0;
+6 -2
drivers/net/ethernet/brocade/bna/bnad_ethtool.c
··· 405 405 406 406 static void 407 407 bnad_get_ringparam(struct net_device *netdev, 408 - struct ethtool_ringparam *ringparam) 408 + struct ethtool_ringparam *ringparam, 409 + struct kernel_ethtool_ringparam *kernel_ringparam, 410 + struct netlink_ext_ack *extack) 409 411 { 410 412 struct bnad *bnad = netdev_priv(netdev); 411 413 ··· 420 418 421 419 static int 422 420 bnad_set_ringparam(struct net_device *netdev, 423 - struct ethtool_ringparam *ringparam) 421 + struct ethtool_ringparam *ringparam, 422 + struct kernel_ethtool_ringparam *kernel_ringparam, 423 + struct netlink_ext_ack *extack) 424 424 { 425 425 int i, current_err, err = 0; 426 426 struct bnad *bnad = netdev_priv(netdev);
+6 -2
drivers/net/ethernet/cadence/macb_main.c
··· 3135 3135 } 3136 3136 3137 3137 static void macb_get_ringparam(struct net_device *netdev, 3138 - struct ethtool_ringparam *ring) 3138 + struct ethtool_ringparam *ring, 3139 + struct kernel_ethtool_ringparam *kernel_ring, 3140 + struct netlink_ext_ack *extack) 3139 3141 { 3140 3142 struct macb *bp = netdev_priv(netdev); 3141 3143 ··· 3149 3147 } 3150 3148 3151 3149 static int macb_set_ringparam(struct net_device *netdev, 3152 - struct ethtool_ringparam *ring) 3150 + struct ethtool_ringparam *ring, 3151 + struct kernel_ethtool_ringparam *kernel_ring, 3152 + struct netlink_ext_ack *extack) 3153 3153 { 3154 3154 struct macb *bp = netdev_priv(netdev); 3155 3155 u32 new_rx_size, new_tx_size;
+8 -3
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
··· 947 947 948 948 static void 949 949 lio_ethtool_get_ringparam(struct net_device *netdev, 950 - struct ethtool_ringparam *ering) 950 + struct ethtool_ringparam *ering, 951 + struct kernel_ethtool_ringparam *kernel_ering, 952 + struct netlink_ext_ack *extack) 951 953 { 952 954 struct lio *lio = GET_LIO(netdev); 953 955 struct octeon_device *oct = lio->oct_dev; ··· 1254 1252 return 0; 1255 1253 } 1256 1254 1257 - static int lio_ethtool_set_ringparam(struct net_device *netdev, 1258 - struct ethtool_ringparam *ering) 1255 + static int 1256 + lio_ethtool_set_ringparam(struct net_device *netdev, 1257 + struct ethtool_ringparam *ering, 1258 + struct kernel_ethtool_ringparam *kernel_ering, 1259 + struct netlink_ext_ack *extack) 1259 1260 { 1260 1261 u32 rx_count, tx_count, rx_count_old, tx_count_old; 1261 1262 struct lio *lio = GET_LIO(netdev);
+6 -2
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
··· 467 467 } 468 468 469 469 static void nicvf_get_ringparam(struct net_device *netdev, 470 - struct ethtool_ringparam *ring) 470 + struct ethtool_ringparam *ring, 471 + struct kernel_ethtool_ringparam *kernel_ring, 472 + struct netlink_ext_ack *extack) 471 473 { 472 474 struct nicvf *nic = netdev_priv(netdev); 473 475 struct queue_set *qs = nic->qs; ··· 481 479 } 482 480 483 481 static int nicvf_set_ringparam(struct net_device *netdev, 484 - struct ethtool_ringparam *ring) 482 + struct ethtool_ringparam *ring, 483 + struct kernel_ethtool_ringparam *kernel_ring, 484 + struct netlink_ext_ack *extack) 485 485 { 486 486 struct nicvf *nic = netdev_priv(netdev); 487 487 struct queue_set *qs = nic->qs;
+6 -2
drivers/net/ethernet/chelsio/cxgb/cxgb2.c
··· 710 710 return 0; 711 711 } 712 712 713 - static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e) 713 + static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e, 714 + struct kernel_ethtool_ringparam *kernel_e, 715 + struct netlink_ext_ack *extack) 714 716 { 715 717 struct adapter *adapter = dev->ml_priv; 716 718 int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0; ··· 726 724 e->tx_pending = adapter->params.sge.cmdQ_size[0]; 727 725 } 728 726 729 - static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e) 727 + static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e, 728 + struct kernel_ethtool_ringparam *kernel_e, 729 + struct netlink_ext_ack *extack) 730 730 { 731 731 struct adapter *adapter = dev->ml_priv; 732 732 int jumbo_fl = t1_is_T1B(adapter) ? 1 : 0;
+6 -2
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
··· 1948 1948 return 0; 1949 1949 } 1950 1950 1951 - static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e) 1951 + static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e, 1952 + struct kernel_ethtool_ringparam *kernel_e, 1953 + struct netlink_ext_ack *extack) 1952 1954 { 1953 1955 struct port_info *pi = netdev_priv(dev); 1954 1956 struct adapter *adapter = pi->adapter; ··· 1966 1964 e->tx_pending = q->txq_size[0]; 1967 1965 } 1968 1966 1969 - static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e) 1967 + static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e, 1968 + struct kernel_ethtool_ringparam *kernel_e, 1969 + struct netlink_ext_ack *extack) 1970 1970 { 1971 1971 struct port_info *pi = netdev_priv(dev); 1972 1972 struct adapter *adapter = pi->adapter;
+6 -2
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
··· 890 890 return 0; 891 891 } 892 892 893 - static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e) 893 + static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e, 894 + struct kernel_ethtool_ringparam *kernel_e, 895 + struct netlink_ext_ack *extack) 894 896 { 895 897 const struct port_info *pi = netdev_priv(dev); 896 898 const struct sge *s = &pi->adapter->sge; ··· 908 906 e->tx_pending = s->ethtxq[pi->first_qset].q.size; 909 907 } 910 908 911 - static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e) 909 + static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e, 910 + struct kernel_ethtool_ringparam *kernel_e, 911 + struct netlink_ext_ack *extack) 912 912 { 913 913 int i; 914 914 const struct port_info *pi = netdev_priv(dev);
+6 -2
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
··· 1591 1591 * first Queue Set. 1592 1592 */ 1593 1593 static void cxgb4vf_get_ringparam(struct net_device *dev, 1594 - struct ethtool_ringparam *rp) 1594 + struct ethtool_ringparam *rp, 1595 + struct kernel_ethtool_ringparam *kernel_rp, 1596 + struct netlink_ext_ack *extack) 1595 1597 { 1596 1598 const struct port_info *pi = netdev_priv(dev); 1597 1599 const struct sge *s = &pi->adapter->sge; ··· 1616 1614 * device -- after vetting them of course! 1617 1615 */ 1618 1616 static int cxgb4vf_set_ringparam(struct net_device *dev, 1619 - struct ethtool_ringparam *rp) 1617 + struct ethtool_ringparam *rp, 1618 + struct kernel_ethtool_ringparam *kernel_rp, 1619 + struct netlink_ext_ack *extack) 1620 1620 { 1621 1621 const struct port_info *pi = netdev_priv(dev); 1622 1622 struct adapter *adapter = pi->adapter;
+6 -2
drivers/net/ethernet/cisco/enic/enic_ethtool.c
··· 177 177 } 178 178 179 179 static void enic_get_ringparam(struct net_device *netdev, 180 - struct ethtool_ringparam *ring) 180 + struct ethtool_ringparam *ring, 181 + struct kernel_ethtool_ringparam *kernel_ring, 182 + struct netlink_ext_ack *extack) 181 183 { 182 184 struct enic *enic = netdev_priv(netdev); 183 185 struct vnic_enet_config *c = &enic->config; ··· 191 189 } 192 190 193 191 static int enic_set_ringparam(struct net_device *netdev, 194 - struct ethtool_ringparam *ring) 192 + struct ethtool_ringparam *ring, 193 + struct kernel_ethtool_ringparam *kernel_ring, 194 + struct netlink_ext_ack *extack) 195 195 { 196 196 struct enic *enic = netdev_priv(netdev); 197 197 struct vnic_enet_config *c = &enic->config;
+6 -2
drivers/net/ethernet/cortina/gemini.c
··· 2105 2105 } 2106 2106 2107 2107 static void gmac_get_ringparam(struct net_device *netdev, 2108 - struct ethtool_ringparam *rp) 2108 + struct ethtool_ringparam *rp, 2109 + struct kernel_ethtool_ringparam *kernel_rp, 2110 + struct netlink_ext_ack *extack) 2109 2111 { 2110 2112 struct gemini_ethernet_port *port = netdev_priv(netdev); 2111 2113 ··· 2125 2123 } 2126 2124 2127 2125 static int gmac_set_ringparam(struct net_device *netdev, 2128 - struct ethtool_ringparam *rp) 2126 + struct ethtool_ringparam *rp, 2127 + struct kernel_ethtool_ringparam *kernel_rp, 2128 + struct netlink_ext_ack *extack) 2129 2129 { 2130 2130 struct gemini_ethernet_port *port = netdev_priv(netdev); 2131 2131 int err = 0;
+3 -1
drivers/net/ethernet/emulex/benet/be_ethtool.c
··· 683 683 } 684 684 685 685 static void be_get_ringparam(struct net_device *netdev, 686 - struct ethtool_ringparam *ring) 686 + struct ethtool_ringparam *ring, 687 + struct kernel_ethtool_ringparam *kernel_ring, 688 + struct netlink_ext_ack *extack) 687 689 { 688 690 struct be_adapter *adapter = netdev_priv(netdev); 689 691
+6 -2
drivers/net/ethernet/ethoc.c
··· 945 945 } 946 946 947 947 static void ethoc_get_ringparam(struct net_device *dev, 948 - struct ethtool_ringparam *ring) 948 + struct ethtool_ringparam *ring, 949 + struct kernel_ethtool_ringparam *kernel_ring, 950 + struct netlink_ext_ack *extack) 949 951 { 950 952 struct ethoc *priv = netdev_priv(dev); 951 953 ··· 963 961 } 964 962 965 963 static int ethoc_set_ringparam(struct net_device *dev, 966 - struct ethtool_ringparam *ring) 964 + struct ethtool_ringparam *ring, 965 + struct kernel_ethtool_ringparam *kernel_ring, 966 + struct netlink_ext_ack *extack) 967 967 { 968 968 struct ethoc *priv = netdev_priv(dev); 969 969
+10 -4
drivers/net/ethernet/faraday/ftgmac100.c
··· 1178 1178 strlcpy(info->bus_info, dev_name(&netdev->dev), sizeof(info->bus_info)); 1179 1179 } 1180 1180 1181 - static void ftgmac100_get_ringparam(struct net_device *netdev, 1182 - struct ethtool_ringparam *ering) 1181 + static void 1182 + ftgmac100_get_ringparam(struct net_device *netdev, 1183 + struct ethtool_ringparam *ering, 1184 + struct kernel_ethtool_ringparam *kernel_ering, 1185 + struct netlink_ext_ack *extack) 1183 1186 { 1184 1187 struct ftgmac100 *priv = netdev_priv(netdev); 1185 1188 ··· 1193 1190 ering->tx_pending = priv->tx_q_entries; 1194 1191 } 1195 1192 1196 - static int ftgmac100_set_ringparam(struct net_device *netdev, 1197 - struct ethtool_ringparam *ering) 1193 + static int 1194 + ftgmac100_set_ringparam(struct net_device *netdev, 1195 + struct ethtool_ringparam *ering, 1196 + struct kernel_ethtool_ringparam *kernel_ering, 1197 + struct netlink_ext_ack *extack) 1198 1198 { 1199 1199 struct ftgmac100 *priv = netdev_priv(netdev); 1200 1200
+3 -1
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
··· 562 562 } 563 563 564 564 static void enetc_get_ringparam(struct net_device *ndev, 565 - struct ethtool_ringparam *ring) 565 + struct ethtool_ringparam *ring, 566 + struct kernel_ethtool_ringparam *kernel_ring, 567 + struct netlink_ext_ack *extack) 566 568 { 567 569 struct enetc_ndev_priv *priv = netdev_priv(ndev); 568 570
+6 -2
drivers/net/ethernet/freescale/gianfar_ethtool.c
··· 372 372 * rx, rx_mini, and rx_jumbo rings are the same size, as mini and 373 373 * jumbo are ignored by the driver */ 374 374 static void gfar_gringparam(struct net_device *dev, 375 - struct ethtool_ringparam *rvals) 375 + struct ethtool_ringparam *rvals, 376 + struct kernel_ethtool_ringparam *kernel_rvals, 377 + struct netlink_ext_ack *extack) 376 378 { 377 379 struct gfar_private *priv = netdev_priv(dev); 378 380 struct gfar_priv_tx_q *tx_queue = NULL; ··· 401 399 * necessary so that we don't mess things up while we're in motion. 402 400 */ 403 401 static int gfar_sringparam(struct net_device *dev, 404 - struct ethtool_ringparam *rvals) 402 + struct ethtool_ringparam *rvals, 403 + struct kernel_ethtool_ringparam *kernel_rvals, 404 + struct netlink_ext_ack *extack) 405 405 { 406 406 struct gfar_private *priv = netdev_priv(dev); 407 407 int err = 0, i;
+6 -2
drivers/net/ethernet/freescale/ucc_geth_ethtool.c
··· 207 207 208 208 static void 209 209 uec_get_ringparam(struct net_device *netdev, 210 - struct ethtool_ringparam *ring) 210 + struct ethtool_ringparam *ring, 211 + struct kernel_ethtool_ringparam *kernel_ring, 212 + struct netlink_ext_ack *extack) 211 213 { 212 214 struct ucc_geth_private *ugeth = netdev_priv(netdev); 213 215 struct ucc_geth_info *ug_info = ugeth->ug_info; ··· 228 226 229 227 static int 230 228 uec_set_ringparam(struct net_device *netdev, 231 - struct ethtool_ringparam *ring) 229 + struct ethtool_ringparam *ring, 230 + struct kernel_ethtool_ringparam *kernel_ring, 231 + struct netlink_ext_ack *extack) 232 232 { 233 233 struct ucc_geth_private *ugeth = netdev_priv(netdev); 234 234 struct ucc_geth_info *ug_info = ugeth->ug_info;
+3 -1
drivers/net/ethernet/google/gve/gve_ethtool.c
··· 419 419 } 420 420 421 421 static void gve_get_ringparam(struct net_device *netdev, 422 - struct ethtool_ringparam *cmd) 422 + struct ethtool_ringparam *cmd, 423 + struct kernel_ethtool_ringparam *kernel_cmd, 424 + struct netlink_ext_ack *extack) 423 425 { 424 426 struct gve_priv *priv = netdev_priv(netdev); 425 427
+5 -1
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
··· 663 663 * hns_get_ringparam - get ring parameter 664 664 * @net_dev: net device 665 665 * @param: ethtool parameter 666 + * @kernel_param: ethtool external parameter 667 + * @extack: netlink extended ACK report struct 666 668 */ 667 669 static void hns_get_ringparam(struct net_device *net_dev, 668 - struct ethtool_ringparam *param) 670 + struct ethtool_ringparam *param, 671 + struct kernel_ethtool_ringparam *kernel_param, 672 + struct netlink_ext_ack *extack) 669 673 { 670 674 struct hns_nic_priv *priv = netdev_priv(net_dev); 671 675 struct hnae_ae_ops *ops;
+6 -2
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
··· 643 643 } 644 644 645 645 static void hns3_get_ringparam(struct net_device *netdev, 646 - struct ethtool_ringparam *param) 646 + struct ethtool_ringparam *param, 647 + struct kernel_ethtool_ringparam *kernel_param, 648 + struct netlink_ext_ack *extack) 647 649 { 648 650 struct hns3_nic_priv *priv = netdev_priv(netdev); 649 651 struct hnae3_handle *h = priv->ae_handle; ··· 1083 1081 } 1084 1082 1085 1083 static int hns3_set_ringparam(struct net_device *ndev, 1086 - struct ethtool_ringparam *param) 1084 + struct ethtool_ringparam *param, 1085 + struct kernel_ethtool_ringparam *kernel_param, 1086 + struct netlink_ext_ack *extack) 1087 1087 { 1088 1088 struct hns3_nic_priv *priv = netdev_priv(ndev); 1089 1089 struct hnae3_handle *h = priv->ae_handle;
+6 -2
drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
··· 547 547 } 548 548 549 549 static void hinic_get_ringparam(struct net_device *netdev, 550 - struct ethtool_ringparam *ring) 550 + struct ethtool_ringparam *ring, 551 + struct kernel_ethtool_ringparam *kernel_ring, 552 + struct netlink_ext_ack *extack) 551 553 { 552 554 struct hinic_dev *nic_dev = netdev_priv(netdev); 553 555 ··· 582 580 } 583 581 584 582 static int hinic_set_ringparam(struct net_device *netdev, 585 - struct ethtool_ringparam *ring) 583 + struct ethtool_ringparam *ring, 584 + struct kernel_ethtool_ringparam *kernel_ring, 585 + struct netlink_ext_ack *extack) 586 586 { 587 587 struct hinic_dev *nic_dev = netdev_priv(netdev); 588 588 u16 new_sq_depth, new_rq_depth;
+5 -2
drivers/net/ethernet/ibm/emac/core.c
··· 2137 2137 return 0; 2138 2138 } 2139 2139 2140 - static void emac_ethtool_get_ringparam(struct net_device *ndev, 2141 - struct ethtool_ringparam *rp) 2140 + static void 2141 + emac_ethtool_get_ringparam(struct net_device *ndev, 2142 + struct ethtool_ringparam *rp, 2143 + struct kernel_ethtool_ringparam *kernel_rp, 2144 + struct netlink_ext_ack *extack) 2142 2145 { 2143 2146 rp->rx_max_pending = rp->rx_pending = NUM_RX_BUFF; 2144 2147 rp->tx_max_pending = rp->tx_pending = NUM_TX_BUFF;
+6 -2
drivers/net/ethernet/ibm/ibmvnic.c
··· 3088 3088 } 3089 3089 3090 3090 static void ibmvnic_get_ringparam(struct net_device *netdev, 3091 - struct ethtool_ringparam *ring) 3091 + struct ethtool_ringparam *ring, 3092 + struct kernel_ethtool_ringparam *kernel_ring, 3093 + struct netlink_ext_ack *extack) 3092 3094 { 3093 3095 struct ibmvnic_adapter *adapter = netdev_priv(netdev); 3094 3096 ··· 3110 3108 } 3111 3109 3112 3110 static int ibmvnic_set_ringparam(struct net_device *netdev, 3113 - struct ethtool_ringparam *ring) 3111 + struct ethtool_ringparam *ring, 3112 + struct kernel_ethtool_ringparam *kernel_ring, 3113 + struct netlink_ext_ack *extack) 3114 3114 { 3115 3115 struct ibmvnic_adapter *adapter = netdev_priv(netdev); 3116 3116 int ret;
+6 -2
drivers/net/ethernet/intel/e100.c
··· 2557 2557 } 2558 2558 2559 2559 static void e100_get_ringparam(struct net_device *netdev, 2560 - struct ethtool_ringparam *ring) 2560 + struct ethtool_ringparam *ring, 2561 + struct kernel_ethtool_ringparam *kernel_ring, 2562 + struct netlink_ext_ack *extack) 2561 2563 { 2562 2564 struct nic *nic = netdev_priv(netdev); 2563 2565 struct param_range *rfds = &nic->params.rfds; ··· 2572 2570 } 2573 2571 2574 2572 static int e100_set_ringparam(struct net_device *netdev, 2575 - struct ethtool_ringparam *ring) 2573 + struct ethtool_ringparam *ring, 2574 + struct kernel_ethtool_ringparam *kernel_ring, 2575 + struct netlink_ext_ack *extack) 2576 2576 { 2577 2577 struct nic *nic = netdev_priv(netdev); 2578 2578 struct param_range *rfds = &nic->params.rfds;
+6 -2
drivers/net/ethernet/intel/e1000/e1000_ethtool.c
··· 539 539 } 540 540 541 541 static void e1000_get_ringparam(struct net_device *netdev, 542 - struct ethtool_ringparam *ring) 542 + struct ethtool_ringparam *ring, 543 + struct kernel_ethtool_ringparam *kernel_ring, 544 + struct netlink_ext_ack *extack) 543 545 { 544 546 struct e1000_adapter *adapter = netdev_priv(netdev); 545 547 struct e1000_hw *hw = &adapter->hw; ··· 558 556 } 559 557 560 558 static int e1000_set_ringparam(struct net_device *netdev, 561 - struct ethtool_ringparam *ring) 559 + struct ethtool_ringparam *ring, 560 + struct kernel_ethtool_ringparam *kernel_ring, 561 + struct netlink_ext_ack *extack) 562 562 { 563 563 struct e1000_adapter *adapter = netdev_priv(netdev); 564 564 struct e1000_hw *hw = &adapter->hw;
+6 -2
drivers/net/ethernet/intel/e1000e/ethtool.c
··· 655 655 } 656 656 657 657 static void e1000_get_ringparam(struct net_device *netdev, 658 - struct ethtool_ringparam *ring) 658 + struct ethtool_ringparam *ring, 659 + struct kernel_ethtool_ringparam *kernel_ring, 660 + struct netlink_ext_ack *extack) 659 661 { 660 662 struct e1000_adapter *adapter = netdev_priv(netdev); 661 663 ··· 668 666 } 669 667 670 668 static int e1000_set_ringparam(struct net_device *netdev, 671 - struct ethtool_ringparam *ring) 669 + struct ethtool_ringparam *ring, 670 + struct kernel_ethtool_ringparam *kernel_ring, 671 + struct netlink_ext_ack *extack) 672 672 { 673 673 struct e1000_adapter *adapter = netdev_priv(netdev); 674 674 struct e1000_ring *temp_tx = NULL, *temp_rx = NULL;
+6 -2
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
··· 502 502 } 503 503 504 504 static void fm10k_get_ringparam(struct net_device *netdev, 505 - struct ethtool_ringparam *ring) 505 + struct ethtool_ringparam *ring, 506 + struct kernel_ethtool_ringparam *kernel_ring, 507 + struct netlink_ext_ack *extack) 506 508 { 507 509 struct fm10k_intfc *interface = netdev_priv(netdev); 508 510 ··· 519 517 } 520 518 521 519 static int fm10k_set_ringparam(struct net_device *netdev, 522 - struct ethtool_ringparam *ring) 520 + struct ethtool_ringparam *ring, 521 + struct kernel_ethtool_ringparam *kernel_ring, 522 + struct netlink_ext_ack *extack) 523 523 { 524 524 struct fm10k_intfc *interface = netdev_priv(netdev); 525 525 struct fm10k_ring *temp_ring;
+6 -2
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
··· 1916 1916 } 1917 1917 1918 1918 static void i40e_get_ringparam(struct net_device *netdev, 1919 - struct ethtool_ringparam *ring) 1919 + struct ethtool_ringparam *ring, 1920 + struct kernel_ethtool_ringparam *kernel_ring, 1921 + struct netlink_ext_ack *extack) 1920 1922 { 1921 1923 struct i40e_netdev_priv *np = netdev_priv(netdev); 1922 1924 struct i40e_pf *pf = np->vsi->back; ··· 1946 1944 } 1947 1945 1948 1946 static int i40e_set_ringparam(struct net_device *netdev, 1949 - struct ethtool_ringparam *ring) 1947 + struct ethtool_ringparam *ring, 1948 + struct kernel_ethtool_ringparam *kernel_ring, 1949 + struct netlink_ext_ack *extack) 1950 1950 { 1951 1951 struct i40e_ring *tx_rings = NULL, *rx_rings = NULL; 1952 1952 struct i40e_netdev_priv *np = netdev_priv(netdev);
+10 -2
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
··· 580 580 * iavf_get_ringparam - Get ring parameters 581 581 * @netdev: network interface device structure 582 582 * @ring: ethtool ringparam structure 583 + * @kernel_ring: ethtool extenal ringparam structure 584 + * @extack: netlink extended ACK report struct 583 585 * 584 586 * Returns current ring parameters. TX and RX rings are reported separately, 585 587 * but the number of rings is not reported. 586 588 **/ 587 589 static void iavf_get_ringparam(struct net_device *netdev, 588 - struct ethtool_ringparam *ring) 590 + struct ethtool_ringparam *ring, 591 + struct kernel_ethtool_ringparam *kernel_ring, 592 + struct netlink_ext_ack *extack) 589 593 { 590 594 struct iavf_adapter *adapter = netdev_priv(netdev); 591 595 ··· 603 599 * iavf_set_ringparam - Set ring parameters 604 600 * @netdev: network interface device structure 605 601 * @ring: ethtool ringparam structure 602 + * @kernel_ring: ethtool external ringparam structure 603 + * @extack: netlink extended ACK report struct 606 604 * 607 605 * Sets ring parameters. TX and RX rings are controlled separately, but the 608 606 * number of rings is not specified, so all rings get the same settings. 609 607 **/ 610 608 static int iavf_set_ringparam(struct net_device *netdev, 611 - struct ethtool_ringparam *ring) 609 + struct ethtool_ringparam *ring, 610 + struct kernel_ethtool_ringparam *kernel_ring, 611 + struct netlink_ext_ack *extack) 612 612 { 613 613 struct iavf_adapter *adapter = netdev_priv(netdev); 614 614 u32 new_rx_count, new_tx_count;
+6 -2
drivers/net/ethernet/intel/ice/ice_ethtool.c
··· 2686 2686 } 2687 2687 2688 2688 static void 2689 - ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) 2689 + ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, 2690 + struct kernel_ethtool_ringparam *kernel_ring, 2691 + struct netlink_ext_ack *extack) 2690 2692 { 2691 2693 struct ice_netdev_priv *np = netdev_priv(netdev); 2692 2694 struct ice_vsi *vsi = np->vsi; ··· 2706 2704 } 2707 2705 2708 2706 static int 2709 - ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) 2707 + ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, 2708 + struct kernel_ethtool_ringparam *kernel_ring, 2709 + struct netlink_ext_ack *extack) 2710 2710 { 2711 2711 struct ice_netdev_priv *np = netdev_priv(netdev); 2712 2712 struct ice_tx_ring *xdp_rings = NULL;
+6 -2
drivers/net/ethernet/intel/igb/igb_ethtool.c
··· 864 864 } 865 865 866 866 static void igb_get_ringparam(struct net_device *netdev, 867 - struct ethtool_ringparam *ring) 867 + struct ethtool_ringparam *ring, 868 + struct kernel_ethtool_ringparam *kernel_ring, 869 + struct netlink_ext_ack *extack) 868 870 { 869 871 struct igb_adapter *adapter = netdev_priv(netdev); 870 872 ··· 877 875 } 878 876 879 877 static int igb_set_ringparam(struct net_device *netdev, 880 - struct ethtool_ringparam *ring) 878 + struct ethtool_ringparam *ring, 879 + struct kernel_ethtool_ringparam *kernel_ring, 880 + struct netlink_ext_ack *extack) 881 881 { 882 882 struct igb_adapter *adapter = netdev_priv(netdev); 883 883 struct igb_ring *temp_ring;
+6 -2
drivers/net/ethernet/intel/igbvf/ethtool.c
··· 175 175 } 176 176 177 177 static void igbvf_get_ringparam(struct net_device *netdev, 178 - struct ethtool_ringparam *ring) 178 + struct ethtool_ringparam *ring, 179 + struct kernel_ethtool_ringparam *kernel_ring, 180 + struct netlink_ext_ack *extack) 179 181 { 180 182 struct igbvf_adapter *adapter = netdev_priv(netdev); 181 183 struct igbvf_ring *tx_ring = adapter->tx_ring; ··· 190 188 } 191 189 192 190 static int igbvf_set_ringparam(struct net_device *netdev, 193 - struct ethtool_ringparam *ring) 191 + struct ethtool_ringparam *ring, 192 + struct kernel_ethtool_ringparam *kernel_ring, 193 + struct netlink_ext_ack *extack) 194 194 { 195 195 struct igbvf_adapter *adapter = netdev_priv(netdev); 196 196 struct igbvf_ring *temp_ring;
+10 -4
drivers/net/ethernet/intel/igc/igc_ethtool.c
··· 567 567 return ret_val; 568 568 } 569 569 570 - static void igc_ethtool_get_ringparam(struct net_device *netdev, 571 - struct ethtool_ringparam *ring) 570 + static void 571 + igc_ethtool_get_ringparam(struct net_device *netdev, 572 + struct ethtool_ringparam *ring, 573 + struct kernel_ethtool_ringparam *kernel_ering, 574 + struct netlink_ext_ack *extack) 572 575 { 573 576 struct igc_adapter *adapter = netdev_priv(netdev); 574 577 ··· 581 578 ring->tx_pending = adapter->tx_ring_count; 582 579 } 583 580 584 - static int igc_ethtool_set_ringparam(struct net_device *netdev, 585 - struct ethtool_ringparam *ring) 581 + static int 582 + igc_ethtool_set_ringparam(struct net_device *netdev, 583 + struct ethtool_ringparam *ring, 584 + struct kernel_ethtool_ringparam *kernel_ering, 585 + struct netlink_ext_ack *extack) 586 586 { 587 587 struct igc_adapter *adapter = netdev_priv(netdev); 588 588 struct igc_ring *temp_ring;
+6 -2
drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c
··· 464 464 465 465 static void 466 466 ixgb_get_ringparam(struct net_device *netdev, 467 - struct ethtool_ringparam *ring) 467 + struct ethtool_ringparam *ring, 468 + struct kernel_ethtool_ringparam *kernel_ring, 469 + struct netlink_ext_ack *extack) 468 470 { 469 471 struct ixgb_adapter *adapter = netdev_priv(netdev); 470 472 struct ixgb_desc_ring *txdr = &adapter->tx_ring; ··· 480 478 481 479 static int 482 480 ixgb_set_ringparam(struct net_device *netdev, 483 - struct ethtool_ringparam *ring) 481 + struct ethtool_ringparam *ring, 482 + struct kernel_ethtool_ringparam *kernel_ring, 483 + struct netlink_ext_ack *extack) 484 484 { 485 485 struct ixgb_adapter *adapter = netdev_priv(netdev); 486 486 struct ixgb_desc_ring *txdr = &adapter->tx_ring;
+6 -2
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
··· 1118 1118 } 1119 1119 1120 1120 static void ixgbe_get_ringparam(struct net_device *netdev, 1121 - struct ethtool_ringparam *ring) 1121 + struct ethtool_ringparam *ring, 1122 + struct kernel_ethtool_ringparam *kernel_ring, 1123 + struct netlink_ext_ack *extack) 1122 1124 { 1123 1125 struct ixgbe_adapter *adapter = netdev_priv(netdev); 1124 1126 struct ixgbe_ring *tx_ring = adapter->tx_ring[0]; ··· 1133 1131 } 1134 1132 1135 1133 static int ixgbe_set_ringparam(struct net_device *netdev, 1136 - struct ethtool_ringparam *ring) 1134 + struct ethtool_ringparam *ring, 1135 + struct kernel_ethtool_ringparam *kernel_ring, 1136 + struct netlink_ext_ack *extack) 1137 1137 { 1138 1138 struct ixgbe_adapter *adapter = netdev_priv(netdev); 1139 1139 struct ixgbe_ring *temp_ring;
+6 -2
drivers/net/ethernet/intel/ixgbevf/ethtool.c
··· 225 225 } 226 226 227 227 static void ixgbevf_get_ringparam(struct net_device *netdev, 228 - struct ethtool_ringparam *ring) 228 + struct ethtool_ringparam *ring, 229 + struct kernel_ethtool_ringparam *kernel_ring, 230 + struct netlink_ext_ack *extack) 229 231 { 230 232 struct ixgbevf_adapter *adapter = netdev_priv(netdev); 231 233 ··· 238 236 } 239 237 240 238 static int ixgbevf_set_ringparam(struct net_device *netdev, 241 - struct ethtool_ringparam *ring) 239 + struct ethtool_ringparam *ring, 240 + struct kernel_ethtool_ringparam *kernel_ring, 241 + struct netlink_ext_ack *extack) 242 242 { 243 243 struct ixgbevf_adapter *adapter = netdev_priv(netdev); 244 244 struct ixgbevf_ring *tx_ring = NULL, *rx_ring = NULL;
+6 -2
drivers/net/ethernet/marvell/mv643xx_eth.c
··· 1638 1638 } 1639 1639 1640 1640 static void 1641 - mv643xx_eth_get_ringparam(struct net_device *dev, struct ethtool_ringparam *er) 1641 + mv643xx_eth_get_ringparam(struct net_device *dev, struct ethtool_ringparam *er, 1642 + struct kernel_ethtool_ringparam *kernel_er, 1643 + struct netlink_ext_ack *extack) 1642 1644 { 1643 1645 struct mv643xx_eth_private *mp = netdev_priv(dev); 1644 1646 ··· 1652 1650 } 1653 1651 1654 1652 static int 1655 - mv643xx_eth_set_ringparam(struct net_device *dev, struct ethtool_ringparam *er) 1653 + mv643xx_eth_set_ringparam(struct net_device *dev, struct ethtool_ringparam *er, 1654 + struct kernel_ethtool_ringparam *kernel_er, 1655 + struct netlink_ext_ack *extack) 1656 1656 { 1657 1657 struct mv643xx_eth_private *mp = netdev_priv(dev); 1658 1658
+10 -4
drivers/net/ethernet/marvell/mvneta.c
··· 4510 4510 } 4511 4511 4512 4512 4513 - static void mvneta_ethtool_get_ringparam(struct net_device *netdev, 4514 - struct ethtool_ringparam *ring) 4513 + static void 4514 + mvneta_ethtool_get_ringparam(struct net_device *netdev, 4515 + struct ethtool_ringparam *ring, 4516 + struct kernel_ethtool_ringparam *kernel_ring, 4517 + struct netlink_ext_ack *extack) 4515 4518 { 4516 4519 struct mvneta_port *pp = netdev_priv(netdev); 4517 4520 ··· 4524 4521 ring->tx_pending = pp->tx_ring_size; 4525 4522 } 4526 4523 4527 - static int mvneta_ethtool_set_ringparam(struct net_device *dev, 4528 - struct ethtool_ringparam *ring) 4524 + static int 4525 + mvneta_ethtool_set_ringparam(struct net_device *dev, 4526 + struct ethtool_ringparam *ring, 4527 + struct kernel_ethtool_ringparam *kernel_ring, 4528 + struct netlink_ext_ack *extack) 4529 4529 { 4530 4530 struct mvneta_port *pp = netdev_priv(dev); 4531 4531
+10 -4
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
··· 5431 5431 sizeof(drvinfo->bus_info)); 5432 5432 } 5433 5433 5434 - static void mvpp2_ethtool_get_ringparam(struct net_device *dev, 5435 - struct ethtool_ringparam *ring) 5434 + static void 5435 + mvpp2_ethtool_get_ringparam(struct net_device *dev, 5436 + struct ethtool_ringparam *ring, 5437 + struct kernel_ethtool_ringparam *kernel_ring, 5438 + struct netlink_ext_ack *extack) 5436 5439 { 5437 5440 struct mvpp2_port *port = netdev_priv(dev); 5438 5441 ··· 5445 5442 ring->tx_pending = port->tx_ring_size; 5446 5443 } 5447 5444 5448 - static int mvpp2_ethtool_set_ringparam(struct net_device *dev, 5449 - struct ethtool_ringparam *ring) 5445 + static int 5446 + mvpp2_ethtool_set_ringparam(struct net_device *dev, 5447 + struct ethtool_ringparam *ring, 5448 + struct kernel_ethtool_ringparam *kernel_ring, 5449 + struct netlink_ext_ack *extack) 5450 5450 { 5451 5451 struct mvpp2_port *port = netdev_priv(dev); 5452 5452 u16 prev_rx_ring_size = port->rx_ring_size;
+6 -2
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
··· 360 360 } 361 361 362 362 static void otx2_get_ringparam(struct net_device *netdev, 363 - struct ethtool_ringparam *ring) 363 + struct ethtool_ringparam *ring, 364 + struct kernel_ethtool_ringparam *kernel_ring, 365 + struct netlink_ext_ack *extack) 364 366 { 365 367 struct otx2_nic *pfvf = netdev_priv(netdev); 366 368 struct otx2_qset *qs = &pfvf->qset; ··· 374 372 } 375 373 376 374 static int otx2_set_ringparam(struct net_device *netdev, 377 - struct ethtool_ringparam *ring) 375 + struct ethtool_ringparam *ring, 376 + struct kernel_ethtool_ringparam *kernel_ring, 377 + struct netlink_ext_ack *extack) 378 378 { 379 379 struct otx2_nic *pfvf = netdev_priv(netdev); 380 380 bool if_up = netif_running(netdev);
+6 -2
drivers/net/ethernet/marvell/skge.c
··· 492 492 } 493 493 494 494 static void skge_get_ring_param(struct net_device *dev, 495 - struct ethtool_ringparam *p) 495 + struct ethtool_ringparam *p, 496 + struct kernel_ethtool_ringparam *kernel_p, 497 + struct netlink_ext_ack *extack) 496 498 { 497 499 struct skge_port *skge = netdev_priv(dev); 498 500 ··· 506 504 } 507 505 508 506 static int skge_set_ring_param(struct net_device *dev, 509 - struct ethtool_ringparam *p) 507 + struct ethtool_ringparam *p, 508 + struct kernel_ethtool_ringparam *kernel_p, 509 + struct netlink_ext_ack *extack) 510 510 { 511 511 struct skge_port *skge = netdev_priv(dev); 512 512 int err = 0;
+6 -2
drivers/net/ethernet/marvell/sky2.c
··· 4149 4149 } 4150 4150 4151 4151 static void sky2_get_ringparam(struct net_device *dev, 4152 - struct ethtool_ringparam *ering) 4152 + struct ethtool_ringparam *ering, 4153 + struct kernel_ethtool_ringparam *kernel_ering, 4154 + struct netlink_ext_ack *extack) 4153 4155 { 4154 4156 struct sky2_port *sky2 = netdev_priv(dev); 4155 4157 ··· 4163 4161 } 4164 4162 4165 4163 static int sky2_set_ringparam(struct net_device *dev, 4166 - struct ethtool_ringparam *ering) 4164 + struct ethtool_ringparam *ering, 4165 + struct kernel_ethtool_ringparam *kernel_ering, 4166 + struct netlink_ext_ack *extack) 4167 4167 { 4168 4168 struct sky2_port *sky2 = netdev_priv(dev); 4169 4169
+6 -2
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
··· 1141 1141 } 1142 1142 1143 1143 static int mlx4_en_set_ringparam(struct net_device *dev, 1144 - struct ethtool_ringparam *param) 1144 + struct ethtool_ringparam *param, 1145 + struct kernel_ethtool_ringparam *kernel_param, 1146 + struct netlink_ext_ack *extack) 1145 1147 { 1146 1148 struct mlx4_en_priv *priv = netdev_priv(dev); 1147 1149 struct mlx4_en_dev *mdev = priv->mdev; ··· 1210 1208 } 1211 1209 1212 1210 static void mlx4_en_get_ringparam(struct net_device *dev, 1213 - struct ethtool_ringparam *param) 1211 + struct ethtool_ringparam *param, 1212 + struct kernel_ethtool_ringparam *kernel_param, 1213 + struct netlink_ext_ack *extack) 1214 1214 { 1215 1215 struct mlx4_en_priv *priv = netdev_priv(dev); 1216 1216
+6 -2
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
··· 314 314 } 315 315 316 316 static void mlx5e_get_ringparam(struct net_device *dev, 317 - struct ethtool_ringparam *param) 317 + struct ethtool_ringparam *param, 318 + struct kernel_ethtool_ringparam *kernel_param, 319 + struct netlink_ext_ack *extack) 318 320 { 319 321 struct mlx5e_priv *priv = netdev_priv(dev); 320 322 ··· 382 380 } 383 381 384 382 static int mlx5e_set_ringparam(struct net_device *dev, 385 - struct ethtool_ringparam *param) 383 + struct ethtool_ringparam *param, 384 + struct kernel_ethtool_ringparam *kernel_param, 385 + struct netlink_ext_ack *extack) 386 386 { 387 387 struct mlx5e_priv *priv = netdev_priv(dev); 388 388
+10 -4
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
··· 219 219 } 220 220 } 221 221 222 - static void mlx5e_rep_get_ringparam(struct net_device *dev, 223 - struct ethtool_ringparam *param) 222 + static void 223 + mlx5e_rep_get_ringparam(struct net_device *dev, 224 + struct ethtool_ringparam *param, 225 + struct kernel_ethtool_ringparam *kernel_param, 226 + struct netlink_ext_ack *extack) 224 227 { 225 228 struct mlx5e_priv *priv = netdev_priv(dev); 226 229 227 230 mlx5e_ethtool_get_ringparam(priv, param); 228 231 } 229 232 230 - static int mlx5e_rep_set_ringparam(struct net_device *dev, 231 - struct ethtool_ringparam *param) 233 + static int 234 + mlx5e_rep_set_ringparam(struct net_device *dev, 235 + struct ethtool_ringparam *param, 236 + struct kernel_ethtool_ringparam *kernel_param, 237 + struct netlink_ext_ack *extack) 232 238 { 233 239 struct mlx5e_priv *priv = netdev_priv(dev); 234 240
+6 -2
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ethtool.c
··· 67 67 } 68 68 69 69 static int mlx5i_set_ringparam(struct net_device *dev, 70 - struct ethtool_ringparam *param) 70 + struct ethtool_ringparam *param, 71 + struct kernel_ethtool_ringparam *kernel_param, 72 + struct netlink_ext_ack *extack) 71 73 { 72 74 struct mlx5e_priv *priv = mlx5i_epriv(dev); 73 75 ··· 77 75 } 78 76 79 77 static void mlx5i_get_ringparam(struct net_device *dev, 80 - struct ethtool_ringparam *param) 78 + struct ethtool_ringparam *param, 79 + struct kernel_ethtool_ringparam *kernel_param, 80 + struct netlink_ext_ack *extack) 81 81 { 82 82 struct mlx5e_priv *priv = mlx5i_epriv(dev); 83 83
+5 -2
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_ethtool.c
··· 33 33 memcpy_fromio(p, priv->base, MLXBF_GIGE_MMIO_REG_SZ); 34 34 } 35 35 36 - static void mlxbf_gige_get_ringparam(struct net_device *netdev, 37 - struct ethtool_ringparam *ering) 36 + static void 37 + mlxbf_gige_get_ringparam(struct net_device *netdev, 38 + struct ethtool_ringparam *ering, 39 + struct kernel_ethtool_ringparam *kernel_ering, 40 + struct netlink_ext_ack *extack) 38 41 { 39 42 struct mlxbf_gige *priv = netdev_priv(netdev); 40 43
+5 -1
drivers/net/ethernet/micrel/ksz884x.c
··· 6317 6317 * netdev_get_ringparam - get tx/rx ring parameters 6318 6318 * @dev: Network device. 6319 6319 * @ring: Ethtool RING settings data structure. 6320 + * @kernel_ring: Ethtool external RING settings data structure. 6321 + * @extack: Netlink handle. 6320 6322 * 6321 6323 * This procedure returns the TX/RX ring settings. 6322 6324 */ 6323 6325 static void netdev_get_ringparam(struct net_device *dev, 6324 - struct ethtool_ringparam *ring) 6326 + struct ethtool_ringparam *ring, 6327 + struct kernel_ethtool_ringparam *kernel_ring, 6328 + struct netlink_ext_ack *extack) 6325 6329 { 6326 6330 struct dev_priv *priv = netdev_priv(dev); 6327 6331 struct dev_info *hw_priv = priv->adapter;
+3 -1
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
··· 1704 1704 1705 1705 static void 1706 1706 myri10ge_get_ringparam(struct net_device *netdev, 1707 - struct ethtool_ringparam *ring) 1707 + struct ethtool_ringparam *ring, 1708 + struct kernel_ethtool_ringparam *kernel_ring, 1709 + struct netlink_ext_ack *extack) 1708 1710 { 1709 1711 struct myri10ge_priv *mgp = netdev_priv(netdev); 1710 1712
+5 -2
drivers/net/ethernet/neterion/s2io.c
··· 5461 5461 return 0; 5462 5462 } 5463 5463 5464 - static void s2io_ethtool_gringparam(struct net_device *dev, 5465 - struct ethtool_ringparam *ering) 5464 + static void 5465 + s2io_ethtool_gringparam(struct net_device *dev, 5466 + struct ethtool_ringparam *ering, 5467 + struct kernel_ethtool_ringparam *kernel_ering, 5468 + struct netlink_ext_ack *extack) 5466 5469 { 5467 5470 struct s2io_nic *sp = netdev_priv(dev); 5468 5471 int i, tx_desc_count = 0, rx_desc_count = 0;
+6 -2
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
··· 381 381 } 382 382 383 383 static void nfp_net_get_ringparam(struct net_device *netdev, 384 - struct ethtool_ringparam *ring) 384 + struct ethtool_ringparam *ring, 385 + struct kernel_ethtool_ringparam *kernel_ring, 386 + struct netlink_ext_ack *extack) 385 387 { 386 388 struct nfp_net *nn = netdev_priv(netdev); 387 389 ··· 408 406 } 409 407 410 408 static int nfp_net_set_ringparam(struct net_device *netdev, 411 - struct ethtool_ringparam *ring) 409 + struct ethtool_ringparam *ring, 410 + struct kernel_ethtool_ringparam *kernel_ring, 411 + struct netlink_ext_ack *extack) 412 412 { 413 413 struct nfp_net *nn = netdev_priv(netdev); 414 414 u32 rxd_cnt, txd_cnt;
+8 -2
drivers/net/ethernet/nvidia/forcedeth.c
··· 4651 4651 return ret; 4652 4652 } 4653 4653 4654 - static void nv_get_ringparam(struct net_device *dev, struct ethtool_ringparam* ring) 4654 + static void nv_get_ringparam(struct net_device *dev, 4655 + struct ethtool_ringparam *ring, 4656 + struct kernel_ethtool_ringparam *kernel_ring, 4657 + struct netlink_ext_ack *extack) 4655 4658 { 4656 4659 struct fe_priv *np = netdev_priv(dev); 4657 4660 ··· 4665 4662 ring->tx_pending = np->tx_ring_size; 4666 4663 } 4667 4664 4668 - static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ring) 4665 + static int nv_set_ringparam(struct net_device *dev, 4666 + struct ethtool_ringparam *ring, 4667 + struct kernel_ethtool_ringparam *kernel_ring, 4668 + struct netlink_ext_ack *extack) 4669 4669 { 4670 4670 struct fe_priv *np = netdev_priv(dev); 4671 4671 u8 __iomem *base = get_hwbase(dev);
+10 -2
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c
··· 270 270 * pch_gbe_get_ringparam - Report ring sizes 271 271 * @netdev: Network interface device structure 272 272 * @ring: Ring param structure 273 + * @kernel_ring: Ring external param structure 274 + * @extack: netlink handle 273 275 */ 274 276 static void pch_gbe_get_ringparam(struct net_device *netdev, 275 - struct ethtool_ringparam *ring) 277 + struct ethtool_ringparam *ring, 278 + struct kernel_ethtool_ringparam *kernel_ring, 279 + struct netlink_ext_ack *extack) 276 280 { 277 281 struct pch_gbe_adapter *adapter = netdev_priv(netdev); 278 282 struct pch_gbe_tx_ring *txdr = adapter->tx_ring; ··· 292 288 * pch_gbe_set_ringparam - Set ring sizes 293 289 * @netdev: Network interface device structure 294 290 * @ring: Ring param structure 291 + * @kernel_ring: Ring external param structure 292 + * @extack: netlink handle 295 293 * Returns 296 294 * 0: Successful. 297 295 * Negative value: Failed. 298 296 */ 299 297 static int pch_gbe_set_ringparam(struct net_device *netdev, 300 - struct ethtool_ringparam *ring) 298 + struct ethtool_ringparam *ring, 299 + struct kernel_ethtool_ringparam *kernel_ring, 300 + struct netlink_ext_ack *extack) 301 301 { 302 302 struct pch_gbe_adapter *adapter = netdev_priv(netdev); 303 303 struct pch_gbe_tx_ring *txdr, *tx_old;
+3 -1
drivers/net/ethernet/pasemi/pasemi_mac_ethtool.c
··· 69 69 70 70 static void 71 71 pasemi_mac_ethtool_get_ringparam(struct net_device *netdev, 72 - struct ethtool_ringparam *ering) 72 + struct ethtool_ringparam *ering, 73 + struct kernel_ethtool_ringparam *kernel_ering, 74 + struct netlink_ext_ack *extack) 73 75 { 74 76 struct pasemi_mac *mac = netdev_priv(netdev); 75 77
+6 -2
drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
··· 512 512 } 513 513 514 514 static void ionic_get_ringparam(struct net_device *netdev, 515 - struct ethtool_ringparam *ring) 515 + struct ethtool_ringparam *ring, 516 + struct kernel_ethtool_ringparam *kernel_ring, 517 + struct netlink_ext_ack *extack) 516 518 { 517 519 struct ionic_lif *lif = netdev_priv(netdev); 518 520 ··· 525 523 } 526 524 527 525 static int ionic_set_ringparam(struct net_device *netdev, 528 - struct ethtool_ringparam *ring) 526 + struct ethtool_ringparam *ring, 527 + struct kernel_ethtool_ringparam *kernel_ring, 528 + struct netlink_ext_ack *extack) 529 529 { 530 530 struct ionic_lif *lif = netdev_priv(netdev); 531 531 struct ionic_queue_params qparam;
+6 -2
drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c
··· 392 392 393 393 static void 394 394 netxen_nic_get_ringparam(struct net_device *dev, 395 - struct ethtool_ringparam *ring) 395 + struct ethtool_ringparam *ring, 396 + struct kernel_ethtool_ringparam *kernel_ring, 397 + struct netlink_ext_ack *extack) 396 398 { 397 399 struct netxen_adapter *adapter = netdev_priv(dev); 398 400 ··· 432 430 433 431 static int 434 432 netxen_nic_set_ringparam(struct net_device *dev, 435 - struct ethtool_ringparam *ring) 433 + struct ethtool_ringparam *ring, 434 + struct kernel_ethtool_ringparam *kernel_ring, 435 + struct netlink_ext_ack *extack) 436 436 { 437 437 struct netxen_adapter *adapter = netdev_priv(dev); 438 438 u16 max_rcv_desc = MAX_RCV_DESCRIPTORS_10G;
+6 -2
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
··· 888 888 } 889 889 890 890 static void qede_get_ringparam(struct net_device *dev, 891 - struct ethtool_ringparam *ering) 891 + struct ethtool_ringparam *ering, 892 + struct kernel_ethtool_ringparam *kernel_ering, 893 + struct netlink_ext_ack *extack) 892 894 { 893 895 struct qede_dev *edev = netdev_priv(dev); 894 896 ··· 901 899 } 902 900 903 901 static int qede_set_ringparam(struct net_device *dev, 904 - struct ethtool_ringparam *ering) 902 + struct ethtool_ringparam *ering, 903 + struct kernel_ethtool_ringparam *kernel_ering, 904 + struct netlink_ext_ack *extack) 905 905 { 906 906 struct qede_dev *edev = netdev_priv(dev); 907 907
+6 -2
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
··· 632 632 633 633 static void 634 634 qlcnic_get_ringparam(struct net_device *dev, 635 - struct ethtool_ringparam *ring) 635 + struct ethtool_ringparam *ring, 636 + struct kernel_ethtool_ringparam *kernel_ring, 637 + struct netlink_ext_ack *extack) 636 638 { 637 639 struct qlcnic_adapter *adapter = netdev_priv(dev); 638 640 ··· 665 663 666 664 static int 667 665 qlcnic_set_ringparam(struct net_device *dev, 668 - struct ethtool_ringparam *ring) 666 + struct ethtool_ringparam *ring, 667 + struct kernel_ethtool_ringparam *kernel_ring, 668 + struct netlink_ext_ack *extack) 669 669 { 670 670 struct qlcnic_adapter *adapter = netdev_priv(dev); 671 671 u16 num_rxd, num_jumbo_rxd, num_txd;
+6 -2
drivers/net/ethernet/qualcomm/emac/emac-ethtool.c
··· 133 133 } 134 134 135 135 static void emac_get_ringparam(struct net_device *netdev, 136 - struct ethtool_ringparam *ring) 136 + struct ethtool_ringparam *ring, 137 + struct kernel_ethtool_ringparam *kernel_ring, 138 + struct netlink_ext_ack *extack) 137 139 { 138 140 struct emac_adapter *adpt = netdev_priv(netdev); 139 141 ··· 146 144 } 147 145 148 146 static int emac_set_ringparam(struct net_device *netdev, 149 - struct ethtool_ringparam *ring) 147 + struct ethtool_ringparam *ring, 148 + struct kernel_ethtool_ringparam *kernel_ring, 149 + struct netlink_ext_ack *extack) 150 150 { 151 151 struct emac_adapter *adpt = netdev_priv(netdev); 152 152
+6 -2
drivers/net/ethernet/qualcomm/qca_debug.c
··· 246 246 } 247 247 248 248 static void 249 - qcaspi_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring) 249 + qcaspi_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring, 250 + struct kernel_ethtool_ringparam *kernel_ring, 251 + struct netlink_ext_ack *extack) 250 252 { 251 253 struct qcaspi *qca = netdev_priv(dev); 252 254 ··· 259 257 } 260 258 261 259 static int 262 - qcaspi_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ring) 260 + qcaspi_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ring, 261 + struct kernel_ethtool_ringparam *kernel_ring, 262 + struct netlink_ext_ack *extack) 263 263 { 264 264 const struct net_device_ops *ops = dev->netdev_ops; 265 265 struct qcaspi *qca = netdev_priv(dev);
+3 -1
drivers/net/ethernet/realtek/8139cp.c
··· 1388 1388 } 1389 1389 1390 1390 static void cp_get_ringparam(struct net_device *dev, 1391 - struct ethtool_ringparam *ring) 1391 + struct ethtool_ringparam *ring, 1392 + struct kernel_ethtool_ringparam *kernel_ring, 1393 + struct netlink_ext_ack *extack) 1392 1394 { 1393 1395 ring->rx_max_pending = CP_RX_RING_SIZE; 1394 1396 ring->tx_max_pending = CP_TX_RING_SIZE;
+3 -1
drivers/net/ethernet/realtek/r8169_main.c
··· 1873 1873 } 1874 1874 1875 1875 static void rtl8169_get_ringparam(struct net_device *dev, 1876 - struct ethtool_ringparam *data) 1876 + struct ethtool_ringparam *data, 1877 + struct kernel_ethtool_ringparam *kernel_data, 1878 + struct netlink_ext_ack *extack) 1877 1879 { 1878 1880 data->rx_max_pending = NUM_RX_DESC; 1879 1881 data->rx_pending = NUM_RX_DESC;
+6 -2
drivers/net/ethernet/renesas/ravb_main.c
··· 1604 1604 } 1605 1605 1606 1606 static void ravb_get_ringparam(struct net_device *ndev, 1607 - struct ethtool_ringparam *ring) 1607 + struct ethtool_ringparam *ring, 1608 + struct kernel_ethtool_ringparam *kernel_ring, 1609 + struct netlink_ext_ack *extack) 1608 1610 { 1609 1611 struct ravb_private *priv = netdev_priv(ndev); 1610 1612 ··· 1617 1615 } 1618 1616 1619 1617 static int ravb_set_ringparam(struct net_device *ndev, 1620 - struct ethtool_ringparam *ring) 1618 + struct ethtool_ringparam *ring, 1619 + struct kernel_ethtool_ringparam *kernel_ring, 1620 + struct netlink_ext_ack *extack) 1621 1621 { 1622 1622 struct ravb_private *priv = netdev_priv(ndev); 1623 1623 const struct ravb_hw_info *info = priv->info;
+6 -2
drivers/net/ethernet/renesas/sh_eth.c
··· 2296 2296 } 2297 2297 2298 2298 static void sh_eth_get_ringparam(struct net_device *ndev, 2299 - struct ethtool_ringparam *ring) 2299 + struct ethtool_ringparam *ring, 2300 + struct kernel_ethtool_ringparam *kernel_ring, 2301 + struct netlink_ext_ack *extack) 2300 2302 { 2301 2303 struct sh_eth_private *mdp = netdev_priv(ndev); 2302 2304 ··· 2309 2307 } 2310 2308 2311 2309 static int sh_eth_set_ringparam(struct net_device *ndev, 2312 - struct ethtool_ringparam *ring) 2310 + struct ethtool_ringparam *ring, 2311 + struct kernel_ethtool_ringparam *kernel_ring, 2312 + struct netlink_ext_ack *extack) 2313 2313 { 2314 2314 struct sh_eth_private *mdp = netdev_priv(ndev); 2315 2315 int ret;
+5 -2
drivers/net/ethernet/sfc/ef100_ethtool.c
··· 20 20 /* This is the maximum number of descriptor rings supported by the QDMA */ 21 21 #define EFX_EF100_MAX_DMAQ_SIZE 16384UL 22 22 23 - static void ef100_ethtool_get_ringparam(struct net_device *net_dev, 24 - struct ethtool_ringparam *ring) 23 + static void 24 + ef100_ethtool_get_ringparam(struct net_device *net_dev, 25 + struct ethtool_ringparam *ring, 26 + struct kernel_ethtool_ringparam *kernel_ring, 27 + struct netlink_ext_ack *extack) 25 28 { 26 29 struct efx_nic *efx = netdev_priv(net_dev); 27 30
+10 -4
drivers/net/ethernet/sfc/ethtool.c
··· 157 157 return 0; 158 158 } 159 159 160 - static void efx_ethtool_get_ringparam(struct net_device *net_dev, 161 - struct ethtool_ringparam *ring) 160 + static void 161 + efx_ethtool_get_ringparam(struct net_device *net_dev, 162 + struct ethtool_ringparam *ring, 163 + struct kernel_ethtool_ringparam *kernel_ring, 164 + struct netlink_ext_ack *extack) 162 165 { 163 166 struct efx_nic *efx = netdev_priv(net_dev); 164 167 ··· 171 168 ring->tx_pending = efx->txq_entries; 172 169 } 173 170 174 - static int efx_ethtool_set_ringparam(struct net_device *net_dev, 175 - struct ethtool_ringparam *ring) 171 + static int 172 + efx_ethtool_set_ringparam(struct net_device *net_dev, 173 + struct ethtool_ringparam *ring, 174 + struct kernel_ethtool_ringparam *kernel_ring, 175 + struct netlink_ext_ack *extack) 176 176 { 177 177 struct efx_nic *efx = netdev_priv(net_dev); 178 178 u32 txq_entries;
+10 -4
drivers/net/ethernet/sfc/falcon/ethtool.c
··· 637 637 return 0; 638 638 } 639 639 640 - static void ef4_ethtool_get_ringparam(struct net_device *net_dev, 641 - struct ethtool_ringparam *ring) 640 + static void 641 + ef4_ethtool_get_ringparam(struct net_device *net_dev, 642 + struct ethtool_ringparam *ring, 643 + struct kernel_ethtool_ringparam *kernel_ring, 644 + struct netlink_ext_ack *extack) 642 645 { 643 646 struct ef4_nic *efx = netdev_priv(net_dev); 644 647 ··· 651 648 ring->tx_pending = efx->txq_entries; 652 649 } 653 650 654 - static int ef4_ethtool_set_ringparam(struct net_device *net_dev, 655 - struct ethtool_ringparam *ring) 651 + static int 652 + ef4_ethtool_set_ringparam(struct net_device *net_dev, 653 + struct ethtool_ringparam *ring, 654 + struct kernel_ethtool_ringparam *kernel_ring, 655 + struct netlink_ext_ack *extack) 656 656 { 657 657 struct ef4_nic *efx = netdev_priv(net_dev); 658 658 u32 txq_entries;
+6 -2
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
··· 463 463 } 464 464 465 465 static void stmmac_get_ringparam(struct net_device *netdev, 466 - struct ethtool_ringparam *ring) 466 + struct ethtool_ringparam *ring, 467 + struct kernel_ethtool_ringparam *kernel_ring, 468 + struct netlink_ext_ack *extack) 467 469 { 468 470 struct stmmac_priv *priv = netdev_priv(netdev); 469 471 ··· 476 474 } 477 475 478 476 static int stmmac_set_ringparam(struct net_device *netdev, 479 - struct ethtool_ringparam *ring) 477 + struct ethtool_ringparam *ring, 478 + struct kernel_ethtool_ringparam *kernel_ring, 479 + struct netlink_ext_ack *extack) 480 480 { 481 481 if (ring->rx_mini_pending || ring->rx_jumbo_pending || 482 482 ring->rx_pending < DMA_MIN_RX_SIZE ||
+10 -2
drivers/net/ethernet/tehuti/tehuti.c
··· 2245 2245 * bdx_get_ringparam - report ring sizes 2246 2246 * @netdev 2247 2247 * @ring 2248 + * @kernel_ring 2249 + * @extack 2248 2250 */ 2249 2251 static void 2250 - bdx_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) 2252 + bdx_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, 2253 + struct kernel_ethtool_ringparam *kernel_ring, 2254 + struct netlink_ext_ack *extack) 2251 2255 { 2252 2256 struct bdx_priv *priv = netdev_priv(netdev); 2253 2257 ··· 2266 2262 * bdx_set_ringparam - set ring sizes 2267 2263 * @netdev 2268 2264 * @ring 2265 + * @kernel_ring 2266 + * @extack 2269 2267 */ 2270 2268 static int 2271 - bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring) 2269 + bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, 2270 + struct kernel_ethtool_ringparam *kernel_ring, 2271 + struct netlink_ext_ack *extack) 2272 2272 { 2273 2273 struct bdx_priv *priv = netdev_priv(netdev); 2274 2274 int rx_size = 0;
+5 -2
drivers/net/ethernet/ti/am65-cpsw-ethtool.c
··· 453 453 return am65_cpsw_nuss_update_tx_chns(common, chs->tx_count); 454 454 } 455 455 456 - static void am65_cpsw_get_ringparam(struct net_device *ndev, 457 - struct ethtool_ringparam *ering) 456 + static void 457 + am65_cpsw_get_ringparam(struct net_device *ndev, 458 + struct ethtool_ringparam *ering, 459 + struct kernel_ethtool_ringparam *kernel_ering, 460 + struct netlink_ext_ack *extack) 458 461 { 459 462 struct am65_cpsw_common *common = am65_ndev_to_common(ndev); 460 463
+6 -2
drivers/net/ethernet/ti/cpmac.c
··· 817 817 } 818 818 819 819 static void cpmac_get_ringparam(struct net_device *dev, 820 - struct ethtool_ringparam *ring) 820 + struct ethtool_ringparam *ring, 821 + struct kernel_ethtool_ringparam *kernel_ring, 822 + struct netlink_ext_ack *extack) 821 823 { 822 824 struct cpmac_priv *priv = netdev_priv(dev); 823 825 ··· 835 833 } 836 834 837 835 static int cpmac_set_ringparam(struct net_device *dev, 838 - struct ethtool_ringparam *ring) 836 + struct ethtool_ringparam *ring, 837 + struct kernel_ethtool_ringparam *kernel_ring, 838 + struct netlink_ext_ack *extack) 839 839 { 840 840 struct cpmac_priv *priv = netdev_priv(dev); 841 841
+6 -2
drivers/net/ethernet/ti/cpsw_ethtool.c
··· 658 658 } 659 659 660 660 void cpsw_get_ringparam(struct net_device *ndev, 661 - struct ethtool_ringparam *ering) 661 + struct ethtool_ringparam *ering, 662 + struct kernel_ethtool_ringparam *kernel_ering, 663 + struct netlink_ext_ack *extack) 662 664 { 663 665 struct cpsw_priv *priv = netdev_priv(ndev); 664 666 struct cpsw_common *cpsw = priv->cpsw; ··· 673 671 } 674 672 675 673 int cpsw_set_ringparam(struct net_device *ndev, 676 - struct ethtool_ringparam *ering) 674 + struct ethtool_ringparam *ering, 675 + struct kernel_ethtool_ringparam *kernel_ering, 676 + struct netlink_ext_ack *extack) 677 677 { 678 678 struct cpsw_common *cpsw = ndev_to_cpsw(ndev); 679 679 int descs_num, ret;
+6 -2
drivers/net/ethernet/ti/cpsw_priv.h
··· 491 491 int cpsw_set_eee(struct net_device *ndev, struct ethtool_eee *edata); 492 492 int cpsw_nway_reset(struct net_device *ndev); 493 493 void cpsw_get_ringparam(struct net_device *ndev, 494 - struct ethtool_ringparam *ering); 494 + struct ethtool_ringparam *ering, 495 + struct kernel_ethtool_ringparam *kernel_ering, 496 + struct netlink_ext_ack *extack); 495 497 int cpsw_set_ringparam(struct net_device *ndev, 496 - struct ethtool_ringparam *ering); 498 + struct ethtool_ringparam *ering, 499 + struct kernel_ethtool_ringparam *kernel_ering, 500 + struct netlink_ext_ack *extack); 497 501 int cpsw_set_channels_common(struct net_device *ndev, 498 502 struct ethtool_channels *chs, 499 503 cpdma_handler_fn rx_handler);
+3 -1
drivers/net/ethernet/toshiba/spider_net_ethtool.c
··· 110 110 111 111 static void 112 112 spider_net_ethtool_get_ringparam(struct net_device *netdev, 113 - struct ethtool_ringparam *ering) 113 + struct ethtool_ringparam *ering, 114 + struct kernel_ethtool_ringparam *kernel_ering, 115 + struct netlink_ext_ack *extack) 114 116 { 115 117 struct spider_net_card *card = netdev_priv(netdev); 116 118
+10 -4
drivers/net/ethernet/xilinx/ll_temac_main.c
··· 1276 1276 * ethtool support 1277 1277 */ 1278 1278 1279 - static void ll_temac_ethtools_get_ringparam(struct net_device *ndev, 1280 - struct ethtool_ringparam *ering) 1279 + static void 1280 + ll_temac_ethtools_get_ringparam(struct net_device *ndev, 1281 + struct ethtool_ringparam *ering, 1282 + struct kernel_ethtool_ringparam *kernel_ering, 1283 + struct netlink_ext_ack *extack) 1281 1284 { 1282 1285 struct temac_local *lp = netdev_priv(ndev); 1283 1286 ··· 1294 1291 ering->tx_pending = lp->tx_bd_num; 1295 1292 } 1296 1293 1297 - static int ll_temac_ethtools_set_ringparam(struct net_device *ndev, 1298 - struct ethtool_ringparam *ering) 1294 + static int 1295 + ll_temac_ethtools_set_ringparam(struct net_device *ndev, 1296 + struct ethtool_ringparam *ering, 1297 + struct kernel_ethtool_ringparam *kernel_ering, 1298 + struct netlink_ext_ack *extack) 1299 1299 { 1300 1300 struct temac_local *lp = netdev_priv(ndev); 1301 1301
+10 -4
drivers/net/ethernet/xilinx/xilinx_axienet_main.c
··· 1323 1323 data[39] = axienet_dma_in32(lp, XAXIDMA_RX_TDESC_OFFSET); 1324 1324 } 1325 1325 1326 - static void axienet_ethtools_get_ringparam(struct net_device *ndev, 1327 - struct ethtool_ringparam *ering) 1326 + static void 1327 + axienet_ethtools_get_ringparam(struct net_device *ndev, 1328 + struct ethtool_ringparam *ering, 1329 + struct kernel_ethtool_ringparam *kernel_ering, 1330 + struct netlink_ext_ack *extack) 1328 1331 { 1329 1332 struct axienet_local *lp = netdev_priv(ndev); 1330 1333 ··· 1341 1338 ering->tx_pending = lp->tx_bd_num; 1342 1339 } 1343 1340 1344 - static int axienet_ethtools_set_ringparam(struct net_device *ndev, 1345 - struct ethtool_ringparam *ering) 1341 + static int 1342 + axienet_ethtools_set_ringparam(struct net_device *ndev, 1343 + struct ethtool_ringparam *ering, 1344 + struct kernel_ethtool_ringparam *kernel_ering, 1345 + struct netlink_ext_ack *extack) 1346 1346 { 1347 1347 struct axienet_local *lp = netdev_priv(ndev); 1348 1348
+6 -2
drivers/net/hyperv/netvsc_drv.c
··· 1858 1858 } 1859 1859 1860 1860 static void netvsc_get_ringparam(struct net_device *ndev, 1861 - struct ethtool_ringparam *ring) 1861 + struct ethtool_ringparam *ring, 1862 + struct kernel_ethtool_ringparam *kernel_ring, 1863 + struct netlink_ext_ack *extack) 1862 1864 { 1863 1865 struct net_device_context *ndevctx = netdev_priv(ndev); 1864 1866 struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev); ··· 1872 1870 } 1873 1871 1874 1872 static int netvsc_set_ringparam(struct net_device *ndev, 1875 - struct ethtool_ringparam *ring) 1873 + struct ethtool_ringparam *ring, 1874 + struct kernel_ethtool_ringparam *kernel_ring, 1875 + struct netlink_ext_ack *extack) 1876 1876 { 1877 1877 struct net_device_context *ndevctx = netdev_priv(ndev); 1878 1878 struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev);
+6 -2
drivers/net/netdevsim/ethtool.c
··· 65 65 } 66 66 67 67 static void nsim_get_ringparam(struct net_device *dev, 68 - struct ethtool_ringparam *ring) 68 + struct ethtool_ringparam *ring, 69 + struct kernel_ethtool_ringparam *kernel_ring, 70 + struct netlink_ext_ack *extack) 69 71 { 70 72 struct netdevsim *ns = netdev_priv(dev); 71 73 ··· 75 73 } 76 74 77 75 static int nsim_set_ringparam(struct net_device *dev, 78 - struct ethtool_ringparam *ring) 76 + struct ethtool_ringparam *ring, 77 + struct kernel_ethtool_ringparam *kernel_ring, 78 + struct netlink_ext_ack *extack) 79 79 { 80 80 struct netdevsim *ns = netdev_priv(dev); 81 81
+6 -2
drivers/net/usb/r8152.c
··· 8983 8983 } 8984 8984 8985 8985 static void rtl8152_get_ringparam(struct net_device *netdev, 8986 - struct ethtool_ringparam *ring) 8986 + struct ethtool_ringparam *ring, 8987 + struct kernel_ethtool_ringparam *kernel_ring, 8988 + struct netlink_ext_ack *extack) 8987 8989 { 8988 8990 struct r8152 *tp = netdev_priv(netdev); 8989 8991 ··· 8994 8992 } 8995 8993 8996 8994 static int rtl8152_set_ringparam(struct net_device *netdev, 8997 - struct ethtool_ringparam *ring) 8995 + struct ethtool_ringparam *ring, 8996 + struct kernel_ethtool_ringparam *kernel_ring, 8997 + struct netlink_ext_ack *extack) 8998 8998 { 8999 8999 struct r8152 *tp = netdev_priv(netdev); 9000 9000
+3 -1
drivers/net/virtio_net.c
··· 2174 2174 } 2175 2175 2176 2176 static void virtnet_get_ringparam(struct net_device *dev, 2177 - struct ethtool_ringparam *ring) 2177 + struct ethtool_ringparam *ring, 2178 + struct kernel_ethtool_ringparam *kernel_ring, 2179 + struct netlink_ext_ack *extack) 2178 2180 { 2179 2181 struct virtnet_info *vi = netdev_priv(dev); 2180 2182
+6 -4
drivers/net/vmxnet3/vmxnet3_ethtool.c
··· 575 575 return 0; 576 576 } 577 577 578 - 579 578 static void 580 579 vmxnet3_get_ringparam(struct net_device *netdev, 581 - struct ethtool_ringparam *param) 580 + struct ethtool_ringparam *param, 581 + struct kernel_ethtool_ringparam *kernel_param, 582 + struct netlink_ext_ack *extack) 582 583 { 583 584 struct vmxnet3_adapter *adapter = netdev_priv(netdev); 584 585 ··· 596 595 param->rx_jumbo_pending = adapter->rx_ring2_size; 597 596 } 598 597 599 - 600 598 static int 601 599 vmxnet3_set_ringparam(struct net_device *netdev, 602 - struct ethtool_ringparam *param) 600 + struct ethtool_ringparam *param, 601 + struct kernel_ethtool_ringparam *kernel_param, 602 + struct netlink_ext_ack *extack) 603 603 { 604 604 struct vmxnet3_adapter *adapter = netdev_priv(netdev); 605 605 u32 new_tx_ring_size, new_rx_ring_size, new_rx_ring2_size;
+3 -1
drivers/s390/net/qeth_ethtool.c
··· 144 144 } 145 145 146 146 static void qeth_get_ringparam(struct net_device *dev, 147 - struct ethtool_ringparam *param) 147 + struct ethtool_ringparam *param, 148 + struct kernel_ethtool_ringparam *kernel_param, 149 + struct netlink_ext_ack *extack) 148 150 { 149 151 struct qeth_card *card = dev->ml_priv; 150 152
+6 -2
include/linux/ethtool.h
··· 656 656 struct kernel_ethtool_coalesce *, 657 657 struct netlink_ext_ack *); 658 658 void (*get_ringparam)(struct net_device *, 659 - struct ethtool_ringparam *); 659 + struct ethtool_ringparam *, 660 + struct kernel_ethtool_ringparam *, 661 + struct netlink_ext_ack *); 660 662 int (*set_ringparam)(struct net_device *, 661 - struct ethtool_ringparam *); 663 + struct ethtool_ringparam *, 664 + struct kernel_ethtool_ringparam *, 665 + struct netlink_ext_ack *); 662 666 void (*get_pause_stats)(struct net_device *dev, 663 667 struct ethtool_pause_stats *pause_stats); 664 668 void (*get_pauseparam)(struct net_device *,
+7 -3
net/ethtool/ioctl.c
··· 1743 1743 static int ethtool_get_ringparam(struct net_device *dev, void __user *useraddr) 1744 1744 { 1745 1745 struct ethtool_ringparam ringparam = { .cmd = ETHTOOL_GRINGPARAM }; 1746 + struct kernel_ethtool_ringparam kernel_ringparam = {}; 1746 1747 1747 1748 if (!dev->ethtool_ops->get_ringparam) 1748 1749 return -EOPNOTSUPP; 1749 1750 1750 - dev->ethtool_ops->get_ringparam(dev, &ringparam); 1751 + dev->ethtool_ops->get_ringparam(dev, &ringparam, 1752 + &kernel_ringparam, NULL); 1751 1753 1752 1754 if (copy_to_user(useraddr, &ringparam, sizeof(ringparam))) 1753 1755 return -EFAULT; ··· 1759 1757 static int ethtool_set_ringparam(struct net_device *dev, void __user *useraddr) 1760 1758 { 1761 1759 struct ethtool_ringparam ringparam, max = { .cmd = ETHTOOL_GRINGPARAM }; 1760 + struct kernel_ethtool_ringparam kernel_ringparam; 1762 1761 int ret; 1763 1762 1764 1763 if (!dev->ethtool_ops->set_ringparam || !dev->ethtool_ops->get_ringparam) ··· 1768 1765 if (copy_from_user(&ringparam, useraddr, sizeof(ringparam))) 1769 1766 return -EFAULT; 1770 1767 1771 - dev->ethtool_ops->get_ringparam(dev, &max); 1768 + dev->ethtool_ops->get_ringparam(dev, &max, &kernel_ringparam, NULL); 1772 1769 1773 1770 /* ensure new ring parameters are within the maximums */ 1774 1771 if (ringparam.rx_pending > max.rx_max_pending || ··· 1777 1774 ringparam.tx_pending > max.tx_max_pending) 1778 1775 return -EINVAL; 1779 1776 1780 - ret = dev->ethtool_ops->set_ringparam(dev, &ringparam); 1777 + ret = dev->ethtool_ops->set_ringparam(dev, &ringparam, 1778 + &kernel_ringparam, NULL); 1781 1779 if (!ret) 1782 1780 ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL); 1783 1781 return ret;
+6 -3
net/ethtool/rings.c
··· 26 26 struct genl_info *info) 27 27 { 28 28 struct rings_reply_data *data = RINGS_REPDATA(reply_base); 29 + struct netlink_ext_ack *extack = info ? info->extack : NULL; 29 30 struct net_device *dev = reply_base->dev; 30 31 int ret; 31 32 ··· 35 34 ret = ethnl_ops_begin(dev); 36 35 if (ret < 0) 37 36 return ret; 38 - dev->ethtool_ops->get_ringparam(dev, &data->ringparam); 37 + dev->ethtool_ops->get_ringparam(dev, &data->ringparam, 38 + &data->kernel_ringparam, extack); 39 39 ethnl_ops_complete(dev); 40 40 41 41 return 0; ··· 144 142 ret = ethnl_ops_begin(dev); 145 143 if (ret < 0) 146 144 goto out_rtnl; 147 - ops->get_ringparam(dev, &ringparam); 145 + ops->get_ringparam(dev, &ringparam, &kernel_ringparam, info->extack); 148 146 149 147 ethnl_update_u32(&ringparam.rx_pending, tb[ETHTOOL_A_RINGS_RX], &mod); 150 148 ethnl_update_u32(&ringparam.rx_mini_pending, ··· 185 183 goto out_ops; 186 184 } 187 185 188 - ret = dev->ethtool_ops->set_ringparam(dev, &ringparam); 186 + ret = dev->ethtool_ops->set_ringparam(dev, &ringparam, 187 + &kernel_ringparam, info->extack); 189 188 if (ret < 0) 190 189 goto out_ops; 191 190 ethtool_notify(dev, ETHTOOL_MSG_RINGS_NTF, NULL);
+6 -2
net/mac80211/ethtool.c
··· 14 14 #include "driver-ops.h" 15 15 16 16 static int ieee80211_set_ringparam(struct net_device *dev, 17 - struct ethtool_ringparam *rp) 17 + struct ethtool_ringparam *rp, 18 + struct kernel_ethtool_ringparam *kernel_rp, 19 + struct netlink_ext_ack *extack) 18 20 { 19 21 struct ieee80211_local *local = wiphy_priv(dev->ieee80211_ptr->wiphy); 20 22 ··· 27 25 } 28 26 29 27 static void ieee80211_get_ringparam(struct net_device *dev, 30 - struct ethtool_ringparam *rp) 28 + struct ethtool_ringparam *rp, 29 + struct kernel_ethtool_ringparam *kernel_rp, 30 + struct netlink_ext_ack *extack) 31 31 { 32 32 struct ieee80211_local *local = wiphy_priv(dev->ieee80211_ptr->wiphy); 33 33