On Thursday 17 May 2007 21:43:37 Luis R. Rodriguez wrote: > On 5/11/07, Michael Wu <flamingice@xxxxxxxxxxxx> wrote: > > > diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c > > new file mode 100644 > > index 0000000..10bec9d > > --- /dev/null > > +++ b/drivers/net/wireless/rtl8187_dev.c > > ... > > > +static int rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb, > > + struct ieee80211_tx_control *control) > > +{ > > ... > > > + info->control = kmemdup(control, sizeof(*control), GFP_ATOMIC); > > kmemdup can fail, add: > > if (!info->control) > return -ENOMEM; The TX callback expects one of the following return types: 080 /* Driver transmit return codes */ 081 #define NETDEV_TX_OK 0 /* driver took care of packet */ 082 #define NETDEV_TX_BUSY 1 /* driver tx path was busy*/ 083 #define NETDEV_TX_LOCKED -1 /* driver tx lock was already taken */ So most likely you want NETDEV_TX_BUSY here. -- Greetings Michael. - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html