Commit df8d9b1f authored by Bill Pemberton's avatar Bill Pemberton Committed by Greg Kroah-Hartman

Staging: hv: Remove WORKQUEUE typedef

WORKQUEUE was a wrapper around struct workqueue_struct so just use
that instead.
Signed-off-by: default avatarBill Pemberton <wfp5p@virginia.edu>
Cc: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent d1af1db7
......@@ -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; */
......
......@@ -93,7 +93,7 @@ struct VMBUS_CONNECTION {
LIST_ENTRY ChannelList;
spinlock_t channel_lock;
HANDLE WorkQueue;
struct workqueue_struct *WorkQueue;
};
......
......@@ -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);
......
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment