Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66446
b: refs/heads/master
c: fe33615
h: refs/heads/master
v: v3
  • Loading branch information
Dan Williams authored and David S. Miller committed Oct 10, 2007
1 parent 41197e9 commit 3c0406c
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 90 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: 2ca10e6d6a3052e7a8380b20588a7b1985ea1197
refs/heads/master: fe3361507af44d00d5b42b91c1626321765a11bc
4 changes: 2 additions & 2 deletions trunk/drivers/net/wireless/libertas/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1134,7 +1134,7 @@ int libertas_prepare_and_send_command(wlan_private * priv,
lbs_deb_cmd("PREP_CMD: No free cmdnode\n");

/* Wake up main thread to execute next command */
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);
ret = -1;
goto done;
}
Expand Down Expand Up @@ -1402,7 +1402,7 @@ int libertas_prepare_and_send_command(wlan_private * priv,

libertas_queue_cmd(adapter, cmdnode, 1);
adapter->nr_cmd_pending++;
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

if (wait_option & CMD_OPTION_WAITFORRSP) {
lbs_deb_cmd("PREP_CMD: Wait for CMD response\n");
Expand Down
26 changes: 13 additions & 13 deletions trunk/drivers/net/wireless/libertas/debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ static ssize_t libertas_lowrssi_read(struct file *file, char __user *userbuf,
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -496,7 +496,7 @@ static u16 libertas_get_events_bitmap(wlan_private *priv)
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -575,7 +575,7 @@ static ssize_t libertas_lowrssi_write(struct file *file,
event->events = cpu_to_le16(event_bitmap);

libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -628,7 +628,7 @@ static ssize_t libertas_lowsnr_read(struct file *file, char __user *userbuf,
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -727,7 +727,7 @@ static ssize_t libertas_lowsnr_write(struct file *file,
event->events = cpu_to_le16(event_bitmap);

libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -781,7 +781,7 @@ static ssize_t libertas_failcount_read(struct file *file, char __user *userbuf,
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -879,7 +879,7 @@ static ssize_t libertas_failcount_write(struct file *file,
event->events = cpu_to_le16(event_bitmap);

libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -932,7 +932,7 @@ static ssize_t libertas_bcnmiss_read(struct file *file, char __user *userbuf,
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -1029,7 +1029,7 @@ static ssize_t libertas_bcnmiss_write(struct file *file,
event->events = cpu_to_le16(event_bitmap);

libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -1082,7 +1082,7 @@ static ssize_t libertas_highrssi_read(struct file *file, char __user *userbuf,
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -1181,7 +1181,7 @@ static ssize_t libertas_highrssi_write(struct file *file,
event->events = cpu_to_le16(event_bitmap);

libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -1232,7 +1232,7 @@ static ssize_t libertas_highsnr_read(struct file *file, char __user *userbuf,
event->action = cpu_to_le16(CMD_ACT_GET);
pcmdptr->size = cpu_to_le16(sizeof(*event) + S_DS_GEN);
libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down Expand Up @@ -1331,7 +1331,7 @@ static ssize_t libertas_highsnr_write(struct file *file,
event->events = cpu_to_le16(event_bitmap);

libertas_queue_cmd(adapter, pcmdnode, 1);
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

/* Sleep until response is generated by FW */
wait_event_interruptible(pcmdnode->cmdwait_q,
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/net/wireless/libertas/dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

#include "defs.h"
#include "scan.h"
#include "thread.h"

extern struct ethtool_ops libertas_ethtool_ops;

Expand Down Expand Up @@ -146,7 +145,8 @@ struct _wlan_private {
struct device *hotplug_device;

/** thread to service interrupts */
struct wlan_thread mainthread;
struct task_struct *main_thread;
wait_queue_head_t waitq;

struct delayed_work assoc_work;
struct workqueue_struct *assoc_thread;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/libertas/fw.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ static void command_timer_fn(unsigned long data)
lbs_deb_fw("re-sending same command because of timeout\n");
libertas_queue_cmd(adapter, ptempnode, 0);

wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

return;
}
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/libertas/if_usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ static void if_usb_write_bulk_callback(struct urb *urb)
priv->dnld_sent = DNLD_RES_RECEIVED;
/* Wake main thread if commands are pending */
if (!adapter->cur_cmd)
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);
if ((adapter->connect_status == LIBERTAS_CONNECTED)) {
netif_wake_queue(dev);
netif_wake_queue(priv->mesh_dev);
Expand Down
36 changes: 18 additions & 18 deletions trunk/drivers/net/wireless/libertas/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <linux/etherdevice.h>
#include <linux/netdevice.h>
#include <linux/if_arp.h>
#include <linux/kthread.h>

#include <net/iw_handler.h>
#include <net/ieee80211.h>
Expand Down Expand Up @@ -438,7 +439,7 @@ static void wlan_tx_timeout(struct net_device *dev)
priv->adapter->eventcause = 0x01000000;
libertas_send_tx_feedback(priv);
} else
wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);
} else if (priv->adapter->connect_status == LIBERTAS_CONNECTED) {
netif_wake_queue(priv->dev);
netif_wake_queue(priv->mesh_dev);
Expand Down Expand Up @@ -599,28 +600,25 @@ static void wlan_set_multicast_list(struct net_device *dev)
* @param data A pointer to wlan_thread structure
* @return 0
*/
static int wlan_service_main_thread(void *data)
static int libertas_thread(void *data)
{
struct wlan_thread *thread = data;
wlan_private *priv = thread->priv;
struct net_device *dev = data;
wlan_private *priv = dev->priv;
wlan_adapter *adapter = priv->adapter;
wait_queue_t wait;
u8 ireg = 0;

lbs_deb_enter(LBS_DEB_THREAD);

wlan_activate_thread(thread);

init_waitqueue_entry(&wait, current);

set_freezable();
for (;;) {
lbs_deb_thread( "main-thread 111: intcounter=%d "
"currenttxskb=%p dnld_sent=%d\n",
adapter->intcounter,
adapter->currenttxskb, priv->dnld_sent);

add_wait_queue(&thread->waitq, &wait);
add_wait_queue(&priv->waitq, &wait);
set_current_state(TASK_INTERRUPTIBLE);
spin_lock_irq(&adapter->driver_lock);
if ((adapter->psstate == PS_STATE_SLEEP) ||
Expand All @@ -643,7 +641,7 @@ static int wlan_service_main_thread(void *data)
adapter->currenttxskb, priv->dnld_sent);

set_current_state(TASK_RUNNING);
remove_wait_queue(&thread->waitq, &wait);
remove_wait_queue(&priv->waitq, &wait);
try_to_freeze();

lbs_deb_thread("main-thread 333: intcounter=%d currenttxskb=%p "
Expand Down Expand Up @@ -758,7 +756,6 @@ static int wlan_service_main_thread(void *data)
del_timer(&adapter->command_timer);
adapter->nr_cmd_pending = 0;
wake_up_all(&adapter->cmd_pending);
wlan_deactivate_thread(thread);

lbs_deb_leave(LBS_DEB_THREAD);
return 0;
Expand Down Expand Up @@ -841,10 +838,13 @@ int libertas_activate_card(wlan_private *priv, char *fw_name)

lbs_deb_enter(LBS_DEB_MAIN);

lbs_deb_thread("Starting kthread...\n");
priv->mainthread.priv = priv;
wlan_create_thread(wlan_service_main_thread,
&priv->mainthread, "wlan_main_service");
lbs_deb_thread("Starting main thread...\n");
init_waitqueue_head(&priv->waitq);
priv->main_thread = kthread_run(libertas_thread, dev, "libertas_main");
if (IS_ERR(priv->main_thread)) {
lbs_deb_thread("Error creating main thread.\n");
goto done;
}

priv->assoc_thread =
create_singlethread_workqueue("libertas_assoc");
Expand Down Expand Up @@ -884,8 +884,8 @@ int libertas_activate_card(wlan_private *priv, char *fw_name)
err_registerdev:
destroy_workqueue(priv->assoc_thread);
/* Stop the thread servicing the interrupts */
wake_up_interruptible(&priv->mainthread.waitq);
wlan_terminate_thread(&priv->mainthread);
wake_up_interruptible(&priv->waitq);
kthread_stop(priv->main_thread);
done:
lbs_deb_leave_args(LBS_DEB_NET, "ret %d", ret);
return ret;
Expand Down Expand Up @@ -1017,7 +1017,7 @@ int libertas_remove_card(wlan_private *priv)
adapter->surpriseremoved = 1;

/* Stop the thread servicing the interrupts */
wlan_terminate_thread(&priv->mainthread);
kthread_stop(priv->main_thread);

libertas_debugfs_remove_one(priv);

Expand Down Expand Up @@ -1151,7 +1151,7 @@ void libertas_interrupt(struct net_device *dev)
netif_wake_queue(priv->mesh_dev);
}

wake_up_interruptible(&priv->mainthread.waitq);
wake_up_interruptible(&priv->waitq);

lbs_deb_leave(LBS_DEB_THREAD);
}
Expand Down
52 changes: 0 additions & 52 deletions trunk/drivers/net/wireless/libertas/thread.h

This file was deleted.

0 comments on commit 3c0406c

Please sign in to comment.