2018-04-24 14:38:28

by Luc Van Oostenryck

[permalink] [raw]
Subject: [PATCH] staging: ks7010: fix ks_wlan_start_xmit()'s return type

The method ndo_start_xmit() is defined as returning an 'netdev_tx_t',
which is a typedef for an enum type, but the implementation in this
driver returns an 'int'.

Fix this by returning 'netdev_tx_t' in this driver too.

Signed-off-by: Luc Van Oostenryck <[email protected]>
---
drivers/staging/ks7010/ks_wlan_net.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
index 9078e13b0..57412caac 100644
--- a/drivers/staging/ks7010/ks_wlan_net.c
+++ b/drivers/staging/ks7010/ks_wlan_net.c
@@ -71,7 +71,7 @@ static const struct iw_handler_def ks_wlan_handler_def;
*/
static int ks_wlan_open(struct net_device *dev);
static void ks_wlan_tx_timeout(struct net_device *dev);
-static int ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev);
+static netdev_tx_t ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev);
static int ks_wlan_close(struct net_device *dev);
static void ks_wlan_set_multicast_list(struct net_device *dev);
static struct net_device_stats *ks_wlan_get_stats(struct net_device *dev);
@@ -2772,7 +2772,7 @@ void ks_wlan_tx_timeout(struct net_device *dev)
}

static
-int ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev)
+netdev_tx_t ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct ks_wlan_private *priv = netdev_priv(dev);
int ret;
--
2.17.0



2018-04-25 13:53:41

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: fix ks_wlan_start_xmit()'s return type

On Tue, Apr 24, 2018 at 03:18:21PM +0200, Luc Van Oostenryck wrote:
> The method ndo_start_xmit() is defined as returning an 'netdev_tx_t',
> which is a typedef for an enum type, but the implementation in this
> driver returns an 'int'.
>
> Fix this by returning 'netdev_tx_t' in this driver too.
>
> Signed-off-by: Luc Van Oostenryck <[email protected]>
> ---
> drivers/staging/ks7010/ks_wlan_net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Patch does not apply to my tree, please rebase and resend.

thanks,

greg k-h

2018-04-25 16:42:43

by Janusz Lisiecki

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: fix ks_wlan_start_xmit()'s return type

W dniu 2018-04-24 o 15:18, Luc Van Oostenryck pisze:
> The method ndo_start_xmit() is defined as returning an 'netdev_tx_t',
> which is a typedef for an enum type, but the implementation in this
> driver returns an 'int'.
>
> Fix this by returning 'netdev_tx_t' in this driver too.
>
> Signed-off-by: Luc Van Oostenryck <[email protected]>
> ---
> drivers/staging/ks7010/ks_wlan_net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
> index 9078e13b0..57412caac 100644
> --- a/drivers/staging/ks7010/ks_wlan_net.c
> +++ b/drivers/staging/ks7010/ks_wlan_net.c
> @@ -71,7 +71,7 @@ static const struct iw_handler_def ks_wlan_handler_def;
> */
> static int ks_wlan_open(struct net_device *dev);
> static void ks_wlan_tx_timeout(struct net_device *dev);
> -static int ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev);
> +static netdev_tx_t ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev);
> static int ks_wlan_close(struct net_device *dev);
> static void ks_wlan_set_multicast_list(struct net_device *dev);
> static struct net_device_stats *ks_wlan_get_stats(struct net_device *dev);
> @@ -2772,7 +2772,7 @@ void ks_wlan_tx_timeout(struct net_device *dev)
> }
>
> static
> -int ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev)
> +netdev_tx_t ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev)
> {
> struct ks_wlan_private *priv = netdev_priv(dev);
> int ret;
Maybe inside ks_wlan_start_xmit, instead of "return 0;", there should be
"return NETDEV_TX_OK;" and "return NETDEV_TX_BUSY;" otherwise. It is
just suggestion.

Br,
Janusz Lisiecki


2018-04-25 16:46:12

by Janusz Lisiecki

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: fix ks_wlan_start_xmit()'s return type

W dniu 2018-04-24 o 15:18, Luc Van Oostenryck pisze:
> The method ndo_start_xmit() is defined as returning an 'netdev_tx_t',
> which is a typedef for an enum type, but the implementation in this
> driver returns an 'int'.
>
> Fix this by returning 'netdev_tx_t' in this driver too.
>
> Signed-off-by: Luc Van Oostenryck <[email protected]>
> ---
> drivers/staging/ks7010/ks_wlan_net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
> index 9078e13b0..57412caac 100644
> --- a/drivers/staging/ks7010/ks_wlan_net.c
> +++ b/drivers/staging/ks7010/ks_wlan_net.c
> @@ -71,7 +71,7 @@ static const struct iw_handler_def ks_wlan_handler_def;
> */
> static int ks_wlan_open(struct net_device *dev);
> static void ks_wlan_tx_timeout(struct net_device *dev);
> -static int ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev);
> +static netdev_tx_t ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev);
> static int ks_wlan_close(struct net_device *dev);
> static void ks_wlan_set_multicast_list(struct net_device *dev);
> static struct net_device_stats *ks_wlan_get_stats(struct net_device *dev);
> @@ -2772,7 +2772,7 @@ void ks_wlan_tx_timeout(struct net_device *dev)
> }
>
> static
> -int ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev)
> +netdev_tx_t ks_wlan_start_xmit(struct sk_buff *skb, struct net_device *dev)
> {
> struct ks_wlan_private *priv = netdev_priv(dev);
> int ret;
Maybe inside ks_wlan_start_xmit, instead of "return 0;", there should be
"return NETDEV_TX_OK;" and "return NETDEV_TX_BUSY;" otherwise. It is
just suggestion.

Br,
Janusz Lisiecki


2018-04-26 20:02:37

by Luc Van Oostenryck

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: fix ks_wlan_start_xmit()'s return type

On Wed, Apr 25, 2018 at 06:44:38PM +0200, Janusz Lisiecki wrote:
> Maybe inside ks_wlan_start_xmit, instead of "return 0;", there should be
> "return NETDEV_TX_OK;" and "return NETDEV_TX_BUSY;" otherwise. It is just
> suggestion.

I see, yes. However, since:
1) this sort of change is really outside the goal of this patch;
2) more change are needed for returning NETDEV_TX_BUSY (most not
free the skb, probably should stop the queue/device, ...);
3) the driver is actively improving by someone just now (Sergio);
I prefer to let this change to Sergio.

I'll resend my (unimportant) change in a few weeks (if still needed).


Cheers,
-- Luc