aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Pemberton <wfp5p@virginia.edu>2009-07-27 16:47:45 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-15 12:01:51 -0700
commitdf8d9b1f6deb468dd6752f0cd1029157c15248fd (patch)
tree8677869752d723584a118d2e2c0a422882bad603
parentd1af1db7d6cd7818e92531e170cc65510dd57692 (diff)
Staging: hv: Remove WORKQUEUE typedef
WORKQUEUE was a wrapper around struct workqueue_struct so just use that instead. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Cc: Hank Janssen <hjanssen@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/hv/ChannelMgmt.h2
-rw-r--r--drivers/staging/hv/VmbusPrivate.h2
-rw-r--r--drivers/staging/hv/include/osd.h8
-rw-r--r--drivers/staging/hv/osd.c30
4 files changed, 17 insertions, 25 deletions
diff --git a/drivers/staging/hv/ChannelMgmt.h b/drivers/staging/hv/ChannelMgmt.h
index c4aa95c3f39..5831d1929f7 100644
--- a/drivers/staging/hv/ChannelMgmt.h
+++ b/drivers/staging/hv/ChannelMgmt.h
@@ -64,7 +64,7 @@ typedef struct _VMBUS_CHANNEL {
RING_BUFFER_INFO Outbound; /* send to parent */
RING_BUFFER_INFO Inbound; /* receive from parent */
spinlock_t inbound_lock;
- HANDLE ControlWQ;
+ struct workqueue_struct *ControlWQ;
/* Channel callback are invoked in this workqueue context */
/* HANDLE dataWorkQueue; */
diff --git a/drivers/staging/hv/VmbusPrivate.h b/drivers/staging/hv/VmbusPrivate.h
index 40e5962dfb7..7182d4d200f 100644
--- a/drivers/staging/hv/VmbusPrivate.h
+++ b/drivers/staging/hv/VmbusPrivate.h
@@ -93,7 +93,7 @@ struct VMBUS_CONNECTION {
LIST_ENTRY ChannelList;
spinlock_t channel_lock;
- HANDLE WorkQueue;
+ struct workqueue_struct *WorkQueue;
};
diff --git a/drivers/staging/hv/include/osd.h b/drivers/staging/hv/include/osd.h
index faae7cc5ec0..6a5675f4b26 100644
--- a/drivers/staging/hv/include/osd.h
+++ b/drivers/staging/hv/include/osd.h
@@ -143,9 +143,11 @@ void* PageMapVirtualAddress(unsigned long Pfn);
void PageUnmapVirtualAddress(void* VirtAddr);
-extern HANDLE WorkQueueCreate(char* name);
-extern void WorkQueueClose(HANDLE hWorkQueue);
-extern int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, void* context);
+extern struct workqueue_struct *WorkQueueCreate(char* name);
+extern void WorkQueueClose(struct workqueue_struct *hWorkQueue);
+extern int WorkQueueQueueWorkItem(struct workqueue_struct *hWorkQueue,
+ PFN_WORKITEM_CALLBACK workItem,
+ void *context);
extern void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context);
diff --git a/drivers/staging/hv/osd.c b/drivers/staging/hv/osd.c
index e683735706d..4cee746d01c 100644
--- a/drivers/staging/hv/osd.c
+++ b/drivers/staging/hv/osd.c
@@ -61,10 +61,6 @@ typedef struct _WAITEVENT {
wait_queue_head_t event;
} WAITEVENT;
-typedef struct _WORKQUEUE {
- struct workqueue_struct *queue;
-} WORKQUEUE;
-
typedef struct _WORKITEM {
struct work_struct work;
PFN_WORKITEM_CALLBACK callback;
@@ -303,31 +299,25 @@ void WorkItemCallback(struct work_struct *work)
kfree(w);
}
-HANDLE WorkQueueCreate(char* name)
+struct workqueue_struct *WorkQueueCreate(char *name)
{
- WORKQUEUE *wq = kmalloc(sizeof(WORKQUEUE), GFP_KERNEL);
- if (!wq)
- {
+ struct workqueue_struct *wq;
+ wq = create_workqueue(name);
+ if (unlikely(!wq))
return NULL;
- }
- wq->queue = create_workqueue(name);
-
return wq;
}
-void WorkQueueClose(HANDLE hWorkQueue)
+void WorkQueueClose(struct workqueue_struct *hWorkQueue)
{
- WORKQUEUE *wq = (WORKQUEUE *)hWorkQueue;
-
- destroy_workqueue(wq->queue);
-
+ destroy_workqueue(hWorkQueue);
return;
}
-int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, void* context)
+int WorkQueueQueueWorkItem(struct workqueue_struct *hWorkQueue,
+ PFN_WORKITEM_CALLBACK workItem,
+ void* context)
{
- WORKQUEUE *wq = (WORKQUEUE *)hWorkQueue;
-
WORKITEM* w = kmalloc(sizeof(WORKITEM), GFP_ATOMIC);
if (!w)
{
@@ -337,7 +327,7 @@ int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, vo
w->callback = workItem,
w->context = context;
INIT_WORK(&w->work, WorkItemCallback);
- return queue_work(wq->queue, &w->work);
+ return queue_work(hWorkQueue, &w->work);
}
void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context)