Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 79134
b: refs/heads/master
c: 2abdc0b
h: refs/heads/master
v: v3
  • Loading branch information
David Woodhouse authored and David S. Miller committed Jan 28, 2008
1 parent 219115b commit 9a0aa40
Show file tree
Hide file tree
Showing 5 changed files with 4 additions and 51 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 020bb19e2f8cfebb314b8bce4bc48a511c6f5940
refs/heads/master: 2abdc0b7756ece70b1f0fd65a651bf8ce487a223
2 changes: 0 additions & 2 deletions trunk/drivers/net/wireless/libertas/decl.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ void lbs_ps_sleep(struct lbs_private *priv, int wait_option);
void lbs_ps_confirm_sleep(struct lbs_private *priv, u16 psmode);
void lbs_ps_wakeup(struct lbs_private *priv, int wait_option);

void lbs_tx_runqueue(struct lbs_private *priv);

struct chan_freq_power *lbs_find_cfp_by_band_and_channel(
struct lbs_private *priv,
u8 band,
Expand Down
5 changes: 0 additions & 5 deletions trunk/drivers/net/wireless/libertas/dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,6 @@ struct lbs_private {
/** Timers */
struct timer_list command_timer;

/* TX queue used in PS mode */
spinlock_t txqueue_lock;
struct sk_buff *tx_queue_ps[NR_TX_QUEUE];
unsigned int tx_queue_idx;

u8 hisregcpy;

/** current ssid/bssid related parameters*/
Expand Down
6 changes: 0 additions & 6 deletions trunk/drivers/net/wireless/libertas/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -914,8 +914,6 @@ static int lbs_thread(void *data)
*/
if (!list_empty(&priv->cmdpendingq))
wake_up_all(&priv->cmd_pending);

lbs_tx_runqueue(priv);
}

del_timer(&priv->command_timer);
Expand Down Expand Up @@ -1072,10 +1070,6 @@ static int lbs_init_adapter(struct lbs_private *priv)

mutex_init(&priv->lock);

memset(&priv->tx_queue_ps, 0, NR_TX_QUEUE*sizeof(struct sk_buff*));
priv->tx_queue_idx = 0;
spin_lock_init(&priv->txqueue_lock);

setup_timer(&priv->command_timer, command_timer_fn,
(unsigned long)priv);

Expand Down
40 changes: 3 additions & 37 deletions trunk/drivers/net/wireless/libertas/tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,41 +164,6 @@ static int SendSinglePacket(struct lbs_private *priv, struct sk_buff *skb)
}


void lbs_tx_runqueue(struct lbs_private *priv)
{
int i;

spin_lock(&priv->txqueue_lock);
for (i = 0; i < priv->tx_queue_idx; i++) {
struct sk_buff *skb = priv->tx_queue_ps[i];
spin_unlock(&priv->txqueue_lock);
SendSinglePacket(priv, skb);
spin_lock(&priv->txqueue_lock);
}
priv->tx_queue_idx = 0;
spin_unlock(&priv->txqueue_lock);
}

static void lbs_tx_queue(struct lbs_private *priv, struct sk_buff *skb)
{

spin_lock(&priv->txqueue_lock);

WARN_ON(priv->tx_queue_idx >= NR_TX_QUEUE);
priv->tx_queue_ps[priv->tx_queue_idx++] = skb;
if (priv->tx_queue_idx == NR_TX_QUEUE) {
netif_stop_queue(priv->dev);
if (priv->mesh_dev)
netif_stop_queue(priv->mesh_dev);
} else {
netif_start_queue(priv->dev);
if (priv->mesh_dev)
netif_start_queue(priv->mesh_dev);
}

spin_unlock(&priv->txqueue_lock);
}

/**
* @brief This function checks the conditions and sends packet to IF
* layer if everything is ok.
Expand All @@ -221,8 +186,9 @@ int lbs_process_tx(struct lbs_private *priv, struct sk_buff *skb)

if ((priv->psstate == PS_STATE_SLEEP) ||
(priv->psstate == PS_STATE_PRE_SLEEP)) {
lbs_tx_queue(priv, skb);
return ret;
lbs_pr_alert("TX error: packet xmit in %ssleep mode\n",
priv->psstate == PS_STATE_SLEEP?"":"pre-");
goto done;
}

ret = SendSinglePacket(priv, skb);
Expand Down

0 comments on commit 9a0aa40

Please sign in to comment.