Message ID | 20180424131733.4510-1-luc.vanoostenryck@gmail.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | net: dwc-xlgmac: fix xlgmac_xmit()'s return type | expand |
On 24-04-2018 14:17, 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 <luc.vanoostenryck@gmail.com> > --- I wouldn't do this because of at least two reasons: - xlgmac_xmit() calls xlgmac_maybe_stop_tx_queue() and xlgmac_prep_tso(), and this last one can return a negative error code. I expect some others drivers to have similar behavior. - If you look along net subsystem you will see that this enum is directly converted to an int in later stages. So, and given that you sent a large number of patches about this, perhaps it would be more clear to change the function definition? Thanks and Best Regards, Jose Miguel Abreu
diff --git a/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c b/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c index 1f8e96015..7429c2094 100644 --- a/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c +++ b/drivers/net/ethernet/synopsys/dwc-xlgmac-net.c @@ -697,7 +697,7 @@ static void xlgmac_tx_timeout(struct net_device *netdev) schedule_work(&pdata->restart_work); } -static int xlgmac_xmit(struct sk_buff *skb, struct net_device *netdev) +static netdev_tx_t xlgmac_xmit(struct sk_buff *skb, struct net_device *netdev) { struct xlgmac_pdata *pdata = netdev_priv(netdev); struct xlgmac_pkt_info *tx_pkt_info;
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 <luc.vanoostenryck@gmail.com> --- drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)