wireless: convert drivers to netdev_tx_t

Mostly just simple conversions:
  * ray_cs had bogus return of NET_TX_LOCKED but driver
    was not using NETIF_F_LLTX
  * hostap and ipw2x00 had some code that returned value
    from a called function that also had to change to return netdev_tx_t

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Stephen Hemminger 2009-08-31 19:50:57 +00:00 committed by David S. Miller
parent 0fc480987e
commit d0cf9c0dad
28 changed files with 92 additions and 65 deletions

View File

@ -334,12 +334,12 @@ int i2400m_net_tx(struct i2400m *i2400m, struct net_device *net_dev,
* that will sleep. See i2400m_net_wake_tx() for details. * that will sleep. See i2400m_net_wake_tx() for details.
*/ */
static static
int i2400m_hard_start_xmit(struct sk_buff *skb, netdev_tx_t i2400m_hard_start_xmit(struct sk_buff *skb,
struct net_device *net_dev) struct net_device *net_dev)
{ {
int result;
struct i2400m *i2400m = net_dev_to_i2400m(net_dev); struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
struct device *dev = i2400m_dev(i2400m); struct device *dev = i2400m_dev(i2400m);
int result;
d_fnstart(3, dev, "(skb %p net_dev %p)\n", skb, net_dev); d_fnstart(3, dev, "(skb %p net_dev %p)\n", skb, net_dev);
if (i2400m->state == I2400M_SS_IDLE) if (i2400m->state == I2400M_SS_IDLE)
@ -353,9 +353,9 @@ int i2400m_hard_start_xmit(struct sk_buff *skb,
net_dev->stats.tx_bytes += skb->len; net_dev->stats.tx_bytes += skb->len;
} }
kfree_skb(skb); kfree_skb(skb);
result = NETDEV_TX_OK;
d_fnend(3, dev, "(skb %p net_dev %p) = %d\n", skb, net_dev, result); d_fnend(3, dev, "(skb %p net_dev %p)\n", skb, net_dev);
return result; return NETDEV_TX_OK;
} }

View File

@ -1920,7 +1920,9 @@ static int airo_open(struct net_device *dev) {
return 0; return 0;
} }
static int mpi_start_xmit(struct sk_buff *skb, struct net_device *dev) { static netdev_tx_t mpi_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{
int npacks, pending; int npacks, pending;
unsigned long flags; unsigned long flags;
struct airo_info *ai = dev->ml_priv; struct airo_info *ai = dev->ml_priv;
@ -2119,7 +2121,9 @@ static void airo_end_xmit(struct net_device *dev) {
dev_kfree_skb(skb); dev_kfree_skb(skb);
} }
static int airo_start_xmit(struct sk_buff *skb, struct net_device *dev) { static netdev_tx_t airo_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{
s16 len; s16 len;
int i, j; int i, j;
struct airo_info *priv = dev->ml_priv; struct airo_info *priv = dev->ml_priv;
@ -2184,7 +2188,9 @@ static void airo_end_xmit11(struct net_device *dev) {
dev_kfree_skb(skb); dev_kfree_skb(skb);
} }
static int airo_start_xmit11(struct sk_buff *skb, struct net_device *dev) { static netdev_tx_t airo_start_xmit11(struct sk_buff *skb,
struct net_device *dev)
{
s16 len; s16 len;
int i, j; int i, j;
struct airo_info *priv = dev->ml_priv; struct airo_info *priv = dev->ml_priv;

View File

@ -77,7 +77,7 @@ struct arlan_conf_stru arlan_conf[MAX_ARLANS];
static int arlans_found; static int arlans_found;
static int arlan_open(struct net_device *dev); static int arlan_open(struct net_device *dev);
static int arlan_tx(struct sk_buff *skb, struct net_device *dev); static netdev_tx_t arlan_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t arlan_interrupt(int irq, void *dev_id); static irqreturn_t arlan_interrupt(int irq, void *dev_id);
static int arlan_close(struct net_device *dev); static int arlan_close(struct net_device *dev);
static struct net_device_stats * static struct net_device_stats *
@ -1169,7 +1169,7 @@ static void arlan_tx_timeout (struct net_device *dev)
} }
static int arlan_tx(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t arlan_tx(struct sk_buff *skb, struct net_device *dev)
{ {
short length; short length;
unsigned char *buf; unsigned char *buf;

View File

@ -781,7 +781,7 @@ static void tx_update_descriptor(struct atmel_private *priv, int is_bcast,
priv->tx_free_mem -= len; priv->tx_free_mem -= len;
} }
static int start_tx(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev)
{ {
static const u8 SNAP_RFC1024[6] = { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 }; static const u8 SNAP_RFC1024[6] = { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 };
struct atmel_private *priv = netdev_priv(dev); struct atmel_private *priv = netdev_priv(dev);

View File

@ -3,6 +3,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
#include <linux/netdevice.h>
struct hostap_ieee80211_mgmt { struct hostap_ieee80211_mgmt {
__le16 frame_control; __le16 frame_control;
@ -85,8 +86,11 @@ void hostap_dump_rx_80211(const char *name, struct sk_buff *skb,
struct hostap_80211_rx_status *rx_stats); struct hostap_80211_rx_status *rx_stats);
void hostap_dump_tx_80211(const char *name, struct sk_buff *skb); void hostap_dump_tx_80211(const char *name, struct sk_buff *skb);
int hostap_data_start_xmit(struct sk_buff *skb, struct net_device *dev); netdev_tx_t hostap_data_start_xmit(struct sk_buff *skb,
int hostap_mgmt_start_xmit(struct sk_buff *skb, struct net_device *dev); struct net_device *dev);
int hostap_master_start_xmit(struct sk_buff *skb, struct net_device *dev); netdev_tx_t hostap_mgmt_start_xmit(struct sk_buff *skb,
struct net_device *dev);
netdev_tx_t hostap_master_start_xmit(struct sk_buff *skb,
struct net_device *dev);
#endif /* HOSTAP_80211_H */ #endif /* HOSTAP_80211_H */

View File

@ -53,7 +53,8 @@ void hostap_dump_tx_80211(const char *name, struct sk_buff *skb)
/* hard_start_xmit function for data interfaces (wlan#, wlan#wds#, wlan#sta) /* hard_start_xmit function for data interfaces (wlan#, wlan#wds#, wlan#sta)
* Convert Ethernet header into a suitable IEEE 802.11 header depending on * Convert Ethernet header into a suitable IEEE 802.11 header depending on
* device configuration. */ * device configuration. */
int hostap_data_start_xmit(struct sk_buff *skb, struct net_device *dev) netdev_tx_t hostap_data_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
struct hostap_interface *iface; struct hostap_interface *iface;
local_info_t *local; local_info_t *local;
@ -261,7 +262,8 @@ int hostap_data_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* hard_start_xmit function for hostapd wlan#ap interfaces */ /* hard_start_xmit function for hostapd wlan#ap interfaces */
int hostap_mgmt_start_xmit(struct sk_buff *skb, struct net_device *dev) netdev_tx_t hostap_mgmt_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
struct hostap_interface *iface; struct hostap_interface *iface;
local_info_t *local; local_info_t *local;
@ -373,11 +375,12 @@ static struct sk_buff * hostap_tx_encrypt(struct sk_buff *skb,
/* hard_start_xmit function for master radio interface wifi#. /* hard_start_xmit function for master radio interface wifi#.
* AP processing (TX rate control, power save buffering, etc.). * AP processing (TX rate control, power save buffering, etc.).
* Use hardware TX function to send the frame. */ * Use hardware TX function to send the frame. */
int hostap_master_start_xmit(struct sk_buff *skb, struct net_device *dev) netdev_tx_t hostap_master_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
struct hostap_interface *iface; struct hostap_interface *iface;
local_info_t *local; local_info_t *local;
int ret = NETDEV_TX_BUSY; netdev_tx_t ret = NETDEV_TX_BUSY;
u16 fc; u16 fc;
struct hostap_tx_data tx; struct hostap_tx_data tx;
ap_tx_ret tx_ret; ap_tx_ret tx_ret;

View File

@ -3330,8 +3330,8 @@ static irqreturn_t ipw2100_interrupt(int irq, void *data)
return IRQ_NONE; return IRQ_NONE;
} }
static int ipw2100_tx(struct libipw_txb *txb, struct net_device *dev, static netdev_tx_t ipw2100_tx(struct libipw_txb *txb,
int pri) struct net_device *dev, int pri)
{ {
struct ipw2100_priv *priv = libipw_priv(dev); struct ipw2100_priv *priv = libipw_priv(dev);
struct list_head *element; struct list_head *element;
@ -3369,12 +3369,12 @@ static int ipw2100_tx(struct libipw_txb *txb, struct net_device *dev,
ipw2100_tx_send_data(priv); ipw2100_tx_send_data(priv);
spin_unlock_irqrestore(&priv->low_lock, flags); spin_unlock_irqrestore(&priv->low_lock, flags);
return 0; return NETDEV_TX_OK;
fail_unlock: fail_unlock:
netif_stop_queue(dev); netif_stop_queue(dev);
spin_unlock_irqrestore(&priv->low_lock, flags); spin_unlock_irqrestore(&priv->low_lock, flags);
return 1; return NETDEV_TX_BUSY;
} }
static int ipw2100_msg_allocate(struct ipw2100_priv *priv) static int ipw2100_msg_allocate(struct ipw2100_priv *priv)

View File

@ -10459,12 +10459,12 @@ static void ipw_handle_promiscuous_tx(struct ipw_priv *priv,
} }
#endif #endif
static int ipw_net_hard_start_xmit(struct libipw_txb *txb, static netdev_tx_t ipw_net_hard_start_xmit(struct libipw_txb *txb,
struct net_device *dev, int pri) struct net_device *dev, int pri)
{ {
struct ipw_priv *priv = libipw_priv(dev); struct ipw_priv *priv = libipw_priv(dev);
unsigned long flags; unsigned long flags;
int ret; netdev_tx_t ret;
IPW_DEBUG_TX("dev->xmit(%d bytes)\n", txb->payload_size); IPW_DEBUG_TX("dev->xmit(%d bytes)\n", txb->payload_size);
spin_lock_irqsave(&priv->lock, flags); spin_lock_irqsave(&priv->lock, flags);
@ -11602,7 +11602,8 @@ static int ipw_prom_stop(struct net_device *dev)
return 0; return 0;
} }
static int ipw_prom_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t ipw_prom_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
IPW_DEBUG_INFO("prom dev->xmit\n"); IPW_DEBUG_INFO("prom dev->xmit\n");
dev_kfree_skb(skb); dev_kfree_skb(skb);

View File

@ -867,7 +867,7 @@ struct libipw_device {
/* Callback functions */ /* Callback functions */
void (*set_security) (struct net_device * dev, void (*set_security) (struct net_device * dev,
struct libipw_security * sec); struct libipw_security * sec);
int (*hard_start_xmit) (struct libipw_txb * txb, netdev_tx_t (*hard_start_xmit) (struct libipw_txb * txb,
struct net_device * dev, int pri); struct net_device * dev, int pri);
int (*reset_port) (struct net_device * dev); int (*reset_port) (struct net_device * dev);
int (*is_queue_full) (struct net_device * dev, int pri); int (*is_queue_full) (struct net_device * dev, int pri);
@ -1028,7 +1028,8 @@ extern void libipw_networks_age(struct libipw_device *ieee,
extern int libipw_set_encryption(struct libipw_device *ieee); extern int libipw_set_encryption(struct libipw_device *ieee);
/* libipw_tx.c */ /* libipw_tx.c */
extern int libipw_xmit(struct sk_buff *skb, struct net_device *dev); extern netdev_tx_t libipw_xmit(struct sk_buff *skb,
struct net_device *dev);
extern void libipw_txb_free(struct libipw_txb *); extern void libipw_txb_free(struct libipw_txb *);
/* libipw_rx.c */ /* libipw_rx.c */

View File

@ -252,7 +252,7 @@ static int libipw_classify(struct sk_buff *skb)
/* Incoming skb is converted to a txb which consists of /* Incoming skb is converted to a txb which consists of
* a block of 802.11 fragment packets (stored as skbs) */ * a block of 802.11 fragment packets (stored as skbs) */
int libipw_xmit(struct sk_buff *skb, struct net_device *dev) netdev_tx_t libipw_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct libipw_device *ieee = netdev_priv(dev); struct libipw_device *ieee = netdev_priv(dev);
struct libipw_txb *txb = NULL; struct libipw_txb *txb = NULL;
@ -523,8 +523,8 @@ int libipw_xmit(struct sk_buff *skb, struct net_device *dev)
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
if (txb) { if (txb) {
int ret = (*ieee->hard_start_xmit) (txb, dev, priority); netdev_tx_t ret = (*ieee->hard_start_xmit)(txb, dev, priority);
if (ret == 0) { if (ret == NETDEV_TX_OK) {
dev->stats.tx_packets++; dev->stats.tx_packets++;
dev->stats.tx_bytes += txb->payload_size; dev->stats.tx_bytes += txb->payload_size;
return NETDEV_TX_OK; return NETDEV_TX_OK;

View File

@ -6,7 +6,7 @@
#ifndef _LBS_DECL_H_ #ifndef _LBS_DECL_H_
#define _LBS_DECL_H_ #define _LBS_DECL_H_
#include <linux/device.h> #include <linux/netdevice.h>
#include "defs.h" #include "defs.h"
@ -41,7 +41,8 @@ u8 lbs_data_rate_to_fw_index(u32 rate);
int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len); int lbs_process_command_response(struct lbs_private *priv, u8 *data, u32 len);
void lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd, void lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd,
int result); int result);
int lbs_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); netdev_tx_t lbs_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev);
int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band); int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band);
int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *); int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *);

View File

@ -1647,7 +1647,8 @@ static int lbs_rtap_stop(struct net_device *dev)
return 0; return 0;
} }
static int lbs_rtap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t lbs_rtap_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
netif_stop_queue(dev); netif_stop_queue(dev);
return NETDEV_TX_BUSY; return NETDEV_TX_BUSY;

View File

@ -57,19 +57,17 @@ static u32 convert_radiotap_rate_to_mv(u8 rate)
* @param skb A pointer to skb which includes TX packet * @param skb A pointer to skb which includes TX packet
* @return 0 or -1 * @return 0 or -1
*/ */
int lbs_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) netdev_tx_t lbs_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
unsigned long flags; unsigned long flags;
struct lbs_private *priv = dev->ml_priv; struct lbs_private *priv = dev->ml_priv;
struct txpd *txpd; struct txpd *txpd;
char *p802x_hdr; char *p802x_hdr;
uint16_t pkt_len; uint16_t pkt_len;
int ret; netdev_tx_t ret = NETDEV_TX_OK;
lbs_deb_enter(LBS_DEB_TX); lbs_deb_enter(LBS_DEB_TX);
ret = NETDEV_TX_OK;
/* We need to protect against the queues being restarted before /* We need to protect against the queues being restarted before
we get round to stopping them */ we get round to stopping them */
spin_lock_irqsave(&priv->driver_lock, flags); spin_lock_irqsave(&priv->driver_lock, flags);

View File

@ -312,7 +312,8 @@ struct hwsim_radiotap_hdr {
} __attribute__ ((packed)); } __attribute__ ((packed));
static int hwsim_mon_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t hwsim_mon_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
/* TODO: allow packet injection */ /* TODO: allow packet injection */
dev_kfree_skb(skb); dev_kfree_skb(skb);

View File

@ -203,7 +203,8 @@ static int netwave_open(struct net_device *dev); /* Open the device */
static int netwave_close(struct net_device *dev); /* Close the device */ static int netwave_close(struct net_device *dev); /* Close the device */
/* Packet transmission and Packet reception */ /* Packet transmission and Packet reception */
static int netwave_start_xmit( struct sk_buff *skb, struct net_device *dev); static netdev_tx_t netwave_start_xmit( struct sk_buff *skb,
struct net_device *dev);
static int netwave_rx( struct net_device *dev); static int netwave_rx( struct net_device *dev);
/* Interrupt routines */ /* Interrupt routines */
@ -1026,7 +1027,8 @@ static int netwave_hw_xmit(unsigned char* data, int len,
return 0; return 0;
} }
static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) { static netdev_tx_t netwave_start_xmit(struct sk_buff *skb,
struct net_device *dev) {
/* This flag indicate that the hardware can't perform a transmission. /* This flag indicate that the hardware can't perform a transmission.
* Theoritically, NET3 check it before sending a packet to the driver, * Theoritically, NET3 check it before sending a packet to the driver,
* but in fact it never do that and pool continuously. * but in fact it never do that and pool continuously.

View File

@ -337,7 +337,7 @@ static int orinoco_change_mtu(struct net_device *dev, int new_mtu)
/* Tx path */ /* Tx path */
/********************************************************************/ /********************************************************************/
static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct orinoco_private *priv = ndev_priv(dev); struct orinoco_private *priv = ndev_priv(dev);
struct net_device_stats *stats = &priv->stats; struct net_device_stats *stats = &priv->stats;

View File

@ -72,7 +72,7 @@ islpci_eth_cleanup_transmit(islpci_private *priv,
} }
} }
int netdev_tx_t
islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev)
{ {
islpci_private *priv = netdev_priv(ndev); islpci_private *priv = netdev_priv(ndev);

View File

@ -64,7 +64,7 @@ struct avs_80211_1_header {
}; };
void islpci_eth_cleanup_transmit(islpci_private *, isl38xx_control_block *); void islpci_eth_cleanup_transmit(islpci_private *, isl38xx_control_block *);
int islpci_eth_transmit(struct sk_buff *, struct net_device *); netdev_tx_t islpci_eth_transmit(struct sk_buff *, struct net_device *);
int islpci_eth_receive(islpci_private *); int islpci_eth_receive(islpci_private *);
void islpci_eth_tx_timeout(struct net_device *); void islpci_eth_tx_timeout(struct net_device *);
void islpci_do_reset_and_wake(struct work_struct *); void islpci_do_reset_and_wake(struct work_struct *);

View File

@ -104,7 +104,8 @@ static int ray_dev_init(struct net_device *dev);
static const struct ethtool_ops netdev_ethtool_ops; static const struct ethtool_ops netdev_ethtool_ops;
static int ray_open(struct net_device *dev); static int ray_open(struct net_device *dev);
static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev); static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,
struct net_device *dev);
static void set_multicast_list(struct net_device *dev); static void set_multicast_list(struct net_device *dev);
static void ray_update_multi_list(struct net_device *dev, int all); static void ray_update_multi_list(struct net_device *dev, int all);
static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx, static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx,
@ -915,16 +916,19 @@ static int ray_dev_config(struct net_device *dev, struct ifmap *map)
} }
/*===========================================================================*/ /*===========================================================================*/
static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
ray_dev_t *local = netdev_priv(dev); ray_dev_t *local = netdev_priv(dev);
struct pcmcia_device *link = local->finder; struct pcmcia_device *link = local->finder;
short length = skb->len; short length = skb->len;
if (!(pcmcia_dev_present(link))) { if (!pcmcia_dev_present(link)) {
DEBUG(2, "ray_dev_start_xmit - device not present\n"); DEBUG(2, "ray_dev_start_xmit - device not present\n");
return NETDEV_TX_LOCKED; dev_kfree_skb(skb);
return NETDEV_TX_OK;
} }
DEBUG(3, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev); DEBUG(3, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev);
if (local->authentication_state == NEED_TO_AUTH) { if (local->authentication_state == NEED_TO_AUTH) {
DEBUG(0, "ray_cs Sending authentication request.\n"); DEBUG(0, "ray_cs Sending authentication request.\n");
@ -951,8 +955,8 @@ static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev)
default: default:
dev->trans_start = jiffies; dev->trans_start = jiffies;
dev_kfree_skb(skb); dev_kfree_skb(skb);
return NETDEV_TX_OK;
} }
return NETDEV_TX_OK; return NETDEV_TX_OK;
} /* ray_dev_start_xmit */ } /* ray_dev_start_xmit */

View File

@ -1533,7 +1533,7 @@ static void strip_send(struct strip *strip_info, struct sk_buff *skb)
} }
/* Encapsulate a datagram and kick it into a TTY queue. */ /* Encapsulate a datagram and kick it into a TTY queue. */
static int strip_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t strip_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct strip *strip_info = netdev_priv(dev); struct strip *strip_info = netdev_priv(dev);

View File

@ -2841,7 +2841,8 @@ static int wv_packet_write(struct net_device * dev, void *buf, short length)
* the packet. We also prevent reentrance. Then we call the function * the packet. We also prevent reentrance. Then we call the function
* to send the packet. * to send the packet.
*/ */
static int wavelan_packet_xmit(struct sk_buff *skb, struct net_device * dev) static netdev_tx_t wavelan_packet_xmit(struct sk_buff *skb,
struct net_device * dev)
{ {
net_local *lp = netdev_priv(dev); net_local *lp = netdev_priv(dev);
unsigned long flags; unsigned long flags;

View File

@ -611,7 +611,7 @@ static inline int
wv_packet_write(struct net_device *, /* Write a packet to the Tx buffer. */ wv_packet_write(struct net_device *, /* Write a packet to the Tx buffer. */
void *, void *,
short); short);
static int static netdev_tx_t
wavelan_packet_xmit(struct sk_buff *, /* Send a packet. */ wavelan_packet_xmit(struct sk_buff *, /* Send a packet. */
struct net_device *); struct net_device *);
/* -------------------- HARDWARE CONFIGURATION -------------------- */ /* -------------------- HARDWARE CONFIGURATION -------------------- */

View File

@ -3078,7 +3078,7 @@ wv_packet_write(struct net_device * dev,
* the packet. We also prevent reentrance. Then, we call the function * the packet. We also prevent reentrance. Then, we call the function
* to send the packet... * to send the packet...
*/ */
static int static netdev_tx_t
wavelan_packet_xmit(struct sk_buff * skb, wavelan_packet_xmit(struct sk_buff * skb,
struct net_device * dev) struct net_device * dev)
{ {

View File

@ -707,7 +707,7 @@ static void
wv_packet_write(struct net_device *, /* Write a packet to the Tx buffer */ wv_packet_write(struct net_device *, /* Write a packet to the Tx buffer */
void *, void *,
short); short);
static int static netdev_tx_t
wavelan_packet_xmit(struct sk_buff *, /* Send a packet */ wavelan_packet_xmit(struct sk_buff *, /* Send a packet */
struct net_device *); struct net_device *);
/* -------------------- HARDWARE CONFIGURATION -------------------- */ /* -------------------- HARDWARE CONFIGURATION -------------------- */

View File

@ -1333,7 +1333,8 @@ static void wl3501_tx_timeout(struct net_device *dev)
* 1 - Could not transmit (dev_queue_xmit will queue it) * 1 - Could not transmit (dev_queue_xmit will queue it)
* and try to sent it later * and try to sent it later
*/ */
static int wl3501_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t wl3501_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
int enabled, rc; int enabled, rc;
struct wl3501_card *this = netdev_priv(dev); struct wl3501_card *this = netdev_priv(dev);

View File

@ -779,7 +779,8 @@ static int zd1201_net_stop(struct net_device *dev)
(llc+snap+type+payload) (llc+snap+type+payload)
zd 1 null byte, zd1201 packet type zd 1 null byte, zd1201 packet type
*/ */
static int zd1201_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) static netdev_tx_t zd1201_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev)
{ {
struct zd1201 *zd = netdev_priv(dev); struct zd1201 *zd = netdev_priv(dev);
unsigned char *txbuf = zd->txdata; unsigned char *txbuf = zd->txdata;

View File

@ -1050,8 +1050,10 @@ void ieee80211_recalc_idle(struct ieee80211_local *local);
/* tx handling */ /* tx handling */
void ieee80211_clear_tx_pending(struct ieee80211_local *local); void ieee80211_clear_tx_pending(struct ieee80211_local *local);
void ieee80211_tx_pending(unsigned long data); void ieee80211_tx_pending(unsigned long data);
int ieee80211_monitor_start_xmit(struct sk_buff *skb, struct net_device *dev); netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
int ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev); struct net_device *dev);
netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
struct net_device *dev);
/* HT */ /* HT */
void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband, void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband,

View File

@ -1483,7 +1483,7 @@ static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
dev_put(sdata->dev); dev_put(sdata->dev);
} }
int ieee80211_monitor_start_xmit(struct sk_buff *skb, netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
struct net_device *dev) struct net_device *dev)
{ {
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
@ -1568,7 +1568,7 @@ fail:
* encapsulated packet will then be passed to master interface, wlan#.11, for * encapsulated packet will then be passed to master interface, wlan#.11, for
* transmission (through low-level driver). * transmission (through low-level driver).
*/ */
int ieee80211_subif_start_xmit(struct sk_buff *skb, netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
struct net_device *dev) struct net_device *dev)
{ {
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);