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>
This commit is contained in:
Bill Pemberton 2009-07-27 16:47:45 -04:00 коммит произвёл Greg Kroah-Hartman
Родитель d1af1db7d6
Коммит df8d9b1f6d
4 изменённых файлов: 17 добавлений и 25 удалений

Просмотреть файл

@ -64,7 +64,7 @@ typedef struct _VMBUS_CHANNEL {
RING_BUFFER_INFO Outbound; /* send to parent */ RING_BUFFER_INFO Outbound; /* send to parent */
RING_BUFFER_INFO Inbound; /* receive from parent */ RING_BUFFER_INFO Inbound; /* receive from parent */
spinlock_t inbound_lock; spinlock_t inbound_lock;
HANDLE ControlWQ; struct workqueue_struct *ControlWQ;
/* Channel callback are invoked in this workqueue context */ /* Channel callback are invoked in this workqueue context */
/* HANDLE dataWorkQueue; */ /* HANDLE dataWorkQueue; */

Просмотреть файл

@ -93,7 +93,7 @@ struct VMBUS_CONNECTION {
LIST_ENTRY ChannelList; LIST_ENTRY ChannelList;
spinlock_t channel_lock; spinlock_t channel_lock;
HANDLE WorkQueue; struct workqueue_struct *WorkQueue;
}; };

Просмотреть файл

@ -143,9 +143,11 @@ void* PageMapVirtualAddress(unsigned long Pfn);
void PageUnmapVirtualAddress(void* VirtAddr); void PageUnmapVirtualAddress(void* VirtAddr);
extern HANDLE WorkQueueCreate(char* name); extern struct workqueue_struct *WorkQueueCreate(char* name);
extern void WorkQueueClose(HANDLE hWorkQueue); extern void WorkQueueClose(struct workqueue_struct *hWorkQueue);
extern int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, void* context); extern int WorkQueueQueueWorkItem(struct workqueue_struct *hWorkQueue,
PFN_WORKITEM_CALLBACK workItem,
void *context);
extern void QueueWorkItem(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; wait_queue_head_t event;
} WAITEVENT; } WAITEVENT;
typedef struct _WORKQUEUE {
struct workqueue_struct *queue;
} WORKQUEUE;
typedef struct _WORKITEM { typedef struct _WORKITEM {
struct work_struct work; struct work_struct work;
PFN_WORKITEM_CALLBACK callback; PFN_WORKITEM_CALLBACK callback;
@ -303,31 +299,25 @@ void WorkItemCallback(struct work_struct *work)
kfree(w); kfree(w);
} }
HANDLE WorkQueueCreate(char* name) struct workqueue_struct *WorkQueueCreate(char *name)
{ {
WORKQUEUE *wq = kmalloc(sizeof(WORKQUEUE), GFP_KERNEL); struct workqueue_struct *wq;
if (!wq) wq = create_workqueue(name);
{ if (unlikely(!wq))
return NULL; return NULL;
}
wq->queue = create_workqueue(name);
return wq; return wq;
} }
void WorkQueueClose(HANDLE hWorkQueue) void WorkQueueClose(struct workqueue_struct *hWorkQueue)
{ {
WORKQUEUE *wq = (WORKQUEUE *)hWorkQueue; destroy_workqueue(hWorkQueue);
destroy_workqueue(wq->queue);
return; 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); WORKITEM* w = kmalloc(sizeof(WORKITEM), GFP_ATOMIC);
if (!w) if (!w)
{ {
@ -337,7 +327,7 @@ int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, vo
w->callback = workItem, w->callback = workItem,
w->context = context; w->context = context;
INIT_WORK(&w->work, WorkItemCallback); 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) void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context)