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
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
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
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
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