From 27bb36a2039deb90d38f7cf1cabcbb00c40d31ff Mon Sep 17 00:00:00 2001 From: Pavel Roskin Date: Tue, 10 Jul 2007 02:21:50 -0400 Subject: [PATCH] Eliminate priv->rx_urb, it shouldn't be there Pass the urb as data to the tasklet instead of priv. Remove some paranoid sanity checks in at76_rx_tasklet(). Rename at76_submit_rx_urb() to at76_submit_read_urb() to avoid confusion. Signed-off-by: Pavel Roskin --- at76_usb.c | 34 ++++++++++++---------------------- at76_usb.h | 1 - 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/at76_usb.c b/at76_usb.c index c8bc55c..f08e886 100644 --- a/at76_usb.c +++ b/at76_usb.c @@ -1571,7 +1571,7 @@ static void at76_read_bulk_callback(struct urb *urb) { struct at76_priv *priv = urb->context; - priv->rx_urb = urb; + priv->rx_tasklet.data = (unsigned long)urb; tasklet_schedule(&priv->rx_tasklet); return; } @@ -3782,7 +3782,7 @@ static void at76_tx_timeout(struct net_device *netdev) priv->stats.tx_errors++; } -static int at76_submit_rx_urb(struct at76_priv *priv) +static int at76_submit_read_urb(struct at76_priv *priv) { int ret, size; struct sk_buff *skb = priv->rx_skb; @@ -3865,9 +3865,9 @@ static int at76_open(struct net_device *netdev) priv->last_scan = jiffies; priv->nr_submit_rx_tries = NR_SUBMIT_RX_TRIES; /* init counter */ - ret = at76_submit_rx_urb(priv); + ret = at76_submit_read_urb(priv); if (ret < 0) { - err("%s: open: submit_rx_urb failed: %d", netdev->name, ret); + err("%s: open: submit_read_urb failed: %d", netdev->name, ret); goto err; } @@ -4696,7 +4696,7 @@ static void at76_work_submit_rx(struct work_struct *work) work_submit_rx); mutex_lock(&priv->mtx); - at76_submit_rx_urb(priv); + at76_submit_read_urb(priv); mutex_unlock(&priv->mtx); } @@ -5562,7 +5562,7 @@ static struct sk_buff *at76_check_for_rx_frags(struct at76_priv *priv) } else { /* take the skb from priv->rx_skb */ optr->skb = priv->rx_skb; - /* let at76_submit_rx_urb() allocate a new skb */ + /* let at76_submit_read_urb() allocate a new skb */ priv->rx_skb = NULL; at76_dbg(DBG_RX_FRAGS, "%s: use a free entry", @@ -5710,18 +5710,13 @@ static void at76_iwspy_update(struct at76_priv *priv, static void at76_rx_tasklet(unsigned long param) { - struct at76_priv *priv = (struct at76_priv *)param; - struct urb *urb; - struct net_device *netdev; + struct urb *urb = (struct urb *)param; + struct at76_priv *priv = urb->context; + struct net_device *netdev = priv->netdev; struct at76_rx_buffer *buf; struct ieee80211_hdr_3addr *i802_11_hdr; u16 frame_ctl; - if (!priv) - return; - urb = priv->rx_urb; - netdev = priv->netdev; - if (priv->device_unplugged) { at76_dbg(DBG_DEVSTART, "device unplugged"); if (urb) @@ -5729,17 +5724,12 @@ static void at76_rx_tasklet(unsigned long param) return; } - if (!urb || !priv->rx_skb || !netdev || !priv->rx_skb->data) + if (!priv->rx_skb || !netdev || !priv->rx_skb->data) return; buf = (struct at76_rx_buffer *)priv->rx_skb->data; - if (!buf) - return; - i802_11_hdr = (struct ieee80211_hdr_3addr *)buf->packet; - if (!i802_11_hdr) - return; frame_ctl = le16_to_cpu(i802_11_hdr->frame_ctl); @@ -5793,7 +5783,7 @@ static void at76_rx_tasklet(unsigned long param) priv->netdev->name, frame_ctl); } finish: - at76_submit_rx_urb(priv); + at76_submit_read_urb(priv); no_more_urb: return; } @@ -5850,7 +5840,7 @@ static struct at76_priv *at76_alloc_new_device(struct usb_device *udev) priv->rx_data[i].skb = NULL; priv->rx_tasklet.func = at76_rx_tasklet; - priv->rx_tasklet.data = (unsigned long)priv; + priv->rx_tasklet.data = 0; priv->pm_mode = AT76_PM_OFF; priv->pm_period = 0; diff --git a/at76_usb.h b/at76_usb.h index af33785..ec022c6 100644 --- a/at76_usb.h +++ b/at76_usb.h @@ -470,7 +470,6 @@ struct at76_priv { int nr_submit_rx_tries; /* number of tries to submit an rx urb left */ struct tasklet_struct rx_tasklet; - struct urb *rx_urb; /* tmp urb pointer for rx_tasklet */ /* the WEP stuff */ int wep_enabled; /* 1 if WEP is enabled */ -- cgit v1.2.3