2020-03-06 01:07:21

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 0/7] ethtool: consolidate irq coalescing - other drivers

Hi!

Convert more drivers following the groundwork laid in a recent
patch set [1]. The aim of the effort is to consolidate irq
coalescing parameter validation in the core.

This set converts all the drivers outside of drivers/net/ethernet.

Only vmxnet3 them was checking unsupported parameters.

The aim is to merge this via the net-next tree so we can
convert all drivers and make the checking mandatory.

[1] https://lore.kernel.org/netdev/[email protected]/

Jakub Kicinski (7):
um: reject unsupported coalescing params
RDMA/ipoib: reject unsupported coalescing params
tun: reject unsupported coalescing params
r8152: reject unsupported coalescing params
vmxnet3: let core reject the unsupported coalescing parameters
staging: qlge: reject unsupported coalescing params
wil6210: reject unsupported coalescing params

arch/um/drivers/vector_kern.c | 1 +
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 2 ++
drivers/net/tun.c | 1 +
drivers/net/usb/r8152.c | 1 +
drivers/net/vmxnet3/vmxnet3_ethtool.c | 24 +++-----------------
drivers/net/wireless/ath/wil6210/ethtool.c | 1 +
drivers/staging/qlge/qlge_ethtool.c | 2 ++
7 files changed, 11 insertions(+), 21 deletions(-)

--
2.24.1


2020-03-06 01:07:21

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 2/7] RDMA/ipoib: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

Signed-off-by: Jakub Kicinski <[email protected]>
---
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
index 63e4f9d15fd9..a10a0c2ca2da 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
@@ -213,6 +213,8 @@ static int ipoib_get_link_ksettings(struct net_device *netdev,
}

static const struct ethtool_ops ipoib_ethtool_ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS |
+ ETHTOOL_COALESCE_RX_MAX_FRAMES,
.get_link_ksettings = ipoib_get_link_ksettings,
.get_drvinfo = ipoib_get_drvinfo,
.get_coalesce = ipoib_get_coalesce,
--
2.24.1

2020-03-06 01:07:21

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 4/7] r8152: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

Signed-off-by: Jakub Kicinski <[email protected]>
---
drivers/net/usb/r8152.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index b8d2722a1b33..f27fdd6ab86f 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -6345,6 +6345,7 @@ static int rtl8152_set_ringparam(struct net_device *netdev,
}

static const struct ethtool_ops ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_USECS,
.get_drvinfo = rtl8152_get_drvinfo,
.get_link = ethtool_op_get_link,
.nway_reset = rtl8152_nway_reset,
--
2.24.1

2020-03-06 01:07:27

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 7/7] wil6210: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

Signed-off-by: Jakub Kicinski <[email protected]>
---
drivers/net/wireless/ath/wil6210/ethtool.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/wil6210/ethtool.c b/drivers/net/wireless/ath/wil6210/ethtool.c
index fef10886ca4a..e481674485c2 100644
--- a/drivers/net/wireless/ath/wil6210/ethtool.c
+++ b/drivers/net/wireless/ath/wil6210/ethtool.c
@@ -95,6 +95,7 @@ static int wil_ethtoolops_set_coalesce(struct net_device *ndev,
}

static const struct ethtool_ops wil_ethtool_ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_USECS,
.get_drvinfo = cfg80211_get_drvinfo,
.get_coalesce = wil_ethtoolops_get_coalesce,
.set_coalesce = wil_ethtoolops_set_coalesce,
--
2.24.1

2020-03-06 01:07:43

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 6/7] staging: qlge: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

Signed-off-by: Jakub Kicinski <[email protected]>
---
drivers/staging/qlge/qlge_ethtool.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/staging/qlge/qlge_ethtool.c b/drivers/staging/qlge/qlge_ethtool.c
index 790997aff995..050c0da23c6f 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -714,6 +714,8 @@ static void ql_set_msglevel(struct net_device *ndev, u32 value)
}

const struct ethtool_ops qlge_ethtool_ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_USECS |
+ ETHTOOL_COALESCE_MAX_FRAMES,
.get_drvinfo = ql_get_drvinfo,
.get_wol = ql_get_wol,
.set_wol = ql_set_wol,
--
2.24.1

2020-03-06 01:08:25

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 5/7] vmxnet3: let core reject the unsupported coalescing parameters

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver correctly rejects all unsupported parameters.
As a side effect of these changes the error code for
unsupported params changes from EINVAL to EOPNOTSUPP.

Signed-off-by: Jakub Kicinski <[email protected]>
---
drivers/net/vmxnet3/vmxnet3_ethtool.c | 24 +++---------------------
1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c
index 1e4b9ba70983..6528940ce5f3 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethtool.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c
@@ -780,27 +780,6 @@ vmxnet3_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec)
if (!VMXNET3_VERSION_GE_3(adapter))
return -EOPNOTSUPP;

- if (ec->rx_coalesce_usecs_irq ||
- ec->rx_max_coalesced_frames_irq ||
- ec->tx_coalesce_usecs ||
- ec->tx_coalesce_usecs_irq ||
- ec->tx_max_coalesced_frames_irq ||
- ec->stats_block_coalesce_usecs ||
- ec->use_adaptive_tx_coalesce ||
- ec->pkt_rate_low ||
- ec->rx_coalesce_usecs_low ||
- ec->rx_max_coalesced_frames_low ||
- ec->tx_coalesce_usecs_low ||
- ec->tx_max_coalesced_frames_low ||
- ec->pkt_rate_high ||
- ec->rx_coalesce_usecs_high ||
- ec->rx_max_coalesced_frames_high ||
- ec->tx_coalesce_usecs_high ||
- ec->tx_max_coalesced_frames_high ||
- ec->rate_sample_interval) {
- return -EINVAL;
- }
-
if ((ec->rx_coalesce_usecs == 0) &&
(ec->use_adaptive_rx_coalesce == 0) &&
(ec->tx_max_coalesced_frames == 0) &&
@@ -891,6 +870,9 @@ vmxnet3_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec)
}

static const struct ethtool_ops vmxnet3_ethtool_ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS |
+ ETHTOOL_COALESCE_MAX_FRAMES |
+ ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
.get_drvinfo = vmxnet3_get_drvinfo,
.get_regs_len = vmxnet3_get_regs_len,
.get_regs = vmxnet3_get_regs,
--
2.24.1

2020-03-06 01:08:58

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 3/7] tun: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

Signed-off-by: Jakub Kicinski <[email protected]>
---
drivers/net/tun.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 79f248cb282d..9e8f23519e82 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -3597,6 +3597,7 @@ static int tun_set_coalesce(struct net_device *dev,
}

static const struct ethtool_ops tun_ethtool_ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_RX_MAX_FRAMES,
.get_drvinfo = tun_get_drvinfo,
.get_msglevel = tun_get_msglevel,
.set_msglevel = tun_set_msglevel,
--
2.24.1

2020-03-06 01:09:19

by Jakub Kicinski

[permalink] [raw]
Subject: [PATCH net-next 1/7] um: reject unsupported coalescing params

Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.

Signed-off-by: Jakub Kicinski <[email protected]>
---
arch/um/drivers/vector_kern.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
index 0ff86391f77d..e98304d0219e 100644
--- a/arch/um/drivers/vector_kern.c
+++ b/arch/um/drivers/vector_kern.c
@@ -1508,6 +1508,7 @@ static int vector_set_coalesce(struct net_device *netdev,
}

static const struct ethtool_ops vector_net_ethtool_ops = {
+ .supported_coalesce_params = ETHTOOL_COALESCE_TX_USECS,
.get_drvinfo = vector_net_get_drvinfo,
.get_link = ethtool_op_get_link,
.get_ts_info = ethtool_op_get_ts_info,
--
2.24.1

2020-03-06 06:34:58

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH net-next 7/7] wil6210: reject unsupported coalescing params

Jakub Kicinski <[email protected]> writes:

> Set ethtool_ops->supported_coalesce_params to let
> the core reject unsupported coalescing parameters.
>
> This driver did not previously reject unsupported parameters.
>
> Signed-off-by: Jakub Kicinski <[email protected]>

As this goes to net-next:

Acked-by: Kalle Valo <[email protected]>

--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2020-03-06 06:59:15

by Anton Ivanov

[permalink] [raw]
Subject: Re: [PATCH net-next 1/7] um: reject unsupported coalescing params

On 06/03/2020 01:05, Jakub Kicinski wrote:
> Set ethtool_ops->supported_coalesce_params to let
> the core reject unsupported coalescing parameters.
>
> This driver did not previously reject unsupported parameters.
>
> Signed-off-by: Jakub Kicinski <[email protected]>
> ---
> arch/um/drivers/vector_kern.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
> index 0ff86391f77d..e98304d0219e 100644
> --- a/arch/um/drivers/vector_kern.c
> +++ b/arch/um/drivers/vector_kern.c
> @@ -1508,6 +1508,7 @@ static int vector_set_coalesce(struct net_device *netdev,
> }
>
> static const struct ethtool_ops vector_net_ethtool_ops = {
> + .supported_coalesce_params = ETHTOOL_COALESCE_TX_USECS,
> .get_drvinfo = vector_net_get_drvinfo,
> .get_link = ethtool_op_get_link,
> .get_ts_info = ethtool_op_get_ts_info,
>

Acked-by: Anton Ivanov <[email protected]>

--
Anton R. Ivanov
Cambridgegreys Limited. Registered in England. Company Number 10273661
https://www.cambridgegreys.com/

2020-03-06 09:36:22

by Jason Wang

[permalink] [raw]
Subject: Re: [PATCH net-next 3/7] tun: reject unsupported coalescing params


On 2020/3/6 上午9:05, Jakub Kicinski wrote:
> Set ethtool_ops->supported_coalesce_params to let
> the core reject unsupported coalescing parameters.
>
> This driver did not previously reject unsupported parameters.
>
> Signed-off-by: Jakub Kicinski <[email protected]>
> ---
> drivers/net/tun.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> index 79f248cb282d..9e8f23519e82 100644
> --- a/drivers/net/tun.c
> +++ b/drivers/net/tun.c
> @@ -3597,6 +3597,7 @@ static int tun_set_coalesce(struct net_device *dev,
> }
>
> static const struct ethtool_ops tun_ethtool_ops = {
> + .supported_coalesce_params = ETHTOOL_COALESCE_RX_MAX_FRAMES,
> .get_drvinfo = tun_get_drvinfo,
> .get_msglevel = tun_get_msglevel,
> .set_msglevel = tun_set_msglevel,


Acked-by: Jason Wang <[email protected]>



2020-03-06 12:10:14

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH net-next 2/7] RDMA/ipoib: reject unsupported coalescing params

On Thu, Mar 05, 2020 at 05:05:57PM -0800, Jakub Kicinski wrote:
> Set ethtool_ops->supported_coalesce_params to let
> the core reject unsupported coalescing parameters.
>
> This driver did not previously reject unsupported parameters.
>
> Signed-off-by: Jakub Kicinski <[email protected]>
> ---
> drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 2 ++
> 1 file changed, 2 insertions(+)
>

Thanks,
Reviewed-by: Leon Romanovsky <[email protected]>

2020-03-07 06:47:28

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next 0/7] ethtool: consolidate irq coalescing - other drivers

From: Jakub Kicinski <[email protected]>
Date: Thu, 5 Mar 2020 17:05:55 -0800

> Convert more drivers following the groundwork laid in a recent
> patch set [1]. The aim of the effort is to consolidate irq
> coalescing parameter validation in the core.
>
> This set converts all the drivers outside of drivers/net/ethernet.
>
> Only vmxnet3 them was checking unsupported parameters.
>
> The aim is to merge this via the net-next tree so we can
> convert all drivers and make the checking mandatory.
>
> [1] https://lore.kernel.org/netdev/[email protected]/

Series applied, thanks Jakub.