libertas: workqueue API update

Marcelo Tosatti mtosatti at redhat.unroutablecom
Wed Dec 20 16:07:35 EST 2006


Commit:     41e8777afa8e3f224b10c60c6cedf9726bb7b9f3
Parent:     72783ceb28b0422b51ae44ded1dc5045d6a7578d
commit 41e8777afa8e3f224b10c60c6cedf9726bb7b9f3
Author:     Marcelo Tosatti <mtosatti at redhat.com>
AuthorDate: Thu Dec 14 14:28:44 2006 -0200
Commit:     Marcelo Tosatti <mtosatti at redhat.com>
CommitDate: Thu Dec 14 14:28:44 2006 -0200

    libertas: workqueue API update
    
    Workqueue API has been changed, match it.
    
    Also try_to_freeze() declaration has moved to freezer.h
    
    Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
---
 drivers/net/wireless/libertas/wlan_assoc.c |    5 ++---
 drivers/net/wireless/libertas/wlan_assoc.h |    2 +-
 drivers/net/wireless/libertas/wlan_dev.h   |    2 +-
 drivers/net/wireless/libertas/wlan_main.c  |    3 ++-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/libertas/wlan_assoc.c b/drivers/net/wireless/libertas/wlan_assoc.c
index a6bc46c..485b1e7 100644
--- a/drivers/net/wireless/libertas/wlan_assoc.c
+++ b/drivers/net/wireless/libertas/wlan_assoc.c
@@ -361,10 +361,9 @@ static int should_stop_adhoc(wlan_adapte
 }
 
 
-void wlan_association_worker(void *user_data)
+void wlan_association_worker(struct work_struct *work)
 {
-	struct net_device *dev = (struct net_device *) user_data;
-	wlan_private *priv = dev->priv;
+	wlan_private *priv = container_of(work, wlan_private, assoc_work.work);
 	wlan_adapter *adapter = priv->adapter;
 	struct assoc_request * assoc_req = NULL;
 	int ret = 0;
diff --git a/drivers/net/wireless/libertas/wlan_assoc.h b/drivers/net/wireless/libertas/wlan_assoc.h
index 9f42eb2..ad7b391 100644
--- a/drivers/net/wireless/libertas/wlan_assoc.h
+++ b/drivers/net/wireless/libertas/wlan_assoc.h
@@ -20,7 +20,7 @@ #define _WLAN_ASSOC_H_
 
 #include "wlan_dev.h"
 
-void wlan_association_worker(void *user_data);
+void wlan_association_worker(struct work_struct *work);
 
 struct assoc_request * wlan_get_association_request(wlan_adapter *adapter);
 
diff --git a/drivers/net/wireless/libertas/wlan_dev.h b/drivers/net/wireless/libertas/wlan_dev.h
index 788c59d..efc7f69 100644
--- a/drivers/net/wireless/libertas/wlan_dev.h
+++ b/drivers/net/wireless/libertas/wlan_dev.h
@@ -218,7 +218,7 @@ struct _wlan_private {
 	/** thread to service interrupts */
 	struct wlan_thread MainThread;
 
-	struct work_struct assoc_work;
+	struct delayed_work assoc_work;
 	struct workqueue_struct *assoc_thread;
 
 #ifdef REASSOCIATION
diff --git a/drivers/net/wireless/libertas/wlan_main.c b/drivers/net/wireless/libertas/wlan_main.c
index 8a85575..4271275 100644
--- a/drivers/net/wireless/libertas/wlan_main.c
+++ b/drivers/net/wireless/libertas/wlan_main.c
@@ -46,6 +46,7 @@ Change log:
 ********************************************************/
 
 #include <linux/delay.h>
+#include <linux/freezer.h>
 #include <linux/etherdevice.h>
 #include <linux/netdevice.h>
 #include <linux/if_arp.h>
@@ -994,7 +995,7 @@ #define NETIF_F_DYNALLOC 16
 
 	priv->assoc_thread =
 		create_singlethread_workqueue("libertas_assoc");
-	INIT_WORK(&priv->assoc_work, wlan_association_worker, dev);
+	INIT_DELAYED_WORK(&priv->assoc_work, wlan_association_worker);
 
 #ifdef REASSOCIATION
 	priv->ReassocThread.priv = priv;


More information about the Commits-kernel mailing list