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:
Родитель
d1af1db7d6
Коммит
df8d9b1f6d
|
@ -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)
|
||||
{
|
||||
WORKQUEUE *wq = kmalloc(sizeof(WORKQUEUE), GFP_KERNEL);
|
||||
if (!wq)
|
||||
struct workqueue_struct *WorkQueueCreate(char *name)
|
||||
{
|
||||
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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче