diff options
| author | David Howells <dhowells@redhat.com> | 2006-11-22 14:57:56 +0000 | 
|---|---|---|
| committer | David Howells <dhowells@redhat.com> | 2006-11-22 14:57:56 +0000 | 
| commit | c4028958b6ecad064b1a6303a6a5906d4fe48d73 (patch) | |
| tree | 1c4c89652c62a75da09f9b9442012007e4ac6250 /drivers/connector/connector.c | |
| parent | 65f27f38446e1976cc98fd3004b110fedcddd189 (diff) | |
| download | olio-linux-3.10-c4028958b6ecad064b1a6303a6a5906d4fe48d73.tar.xz olio-linux-3.10-c4028958b6ecad064b1a6303a6a5906d4fe48d73.zip  | |
WorkStruct: make allyesconfig
Fix up for make allyesconfig.
Signed-Off-By: David Howells <dhowells@redhat.com>
Diffstat (limited to 'drivers/connector/connector.c')
| -rw-r--r-- | drivers/connector/connector.c | 31 | 
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c index b49bacfd8de..5e7cd45d10e 100644 --- a/drivers/connector/connector.c +++ b/drivers/connector/connector.c @@ -135,40 +135,39 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v  	spin_lock_bh(&dev->cbdev->queue_lock);  	list_for_each_entry(__cbq, &dev->cbdev->queue_list, callback_entry) {  		if (cn_cb_equal(&__cbq->id.id, &msg->id)) { -			if (likely(!test_bit(0, &__cbq->work.pending) && +			if (likely(!test_bit(WORK_STRUCT_PENDING, +					     &__cbq->work.work.management) &&  					__cbq->data.ddata == NULL)) {  				__cbq->data.callback_priv = msg;  				__cbq->data.ddata = data;  				__cbq->data.destruct_data = destruct_data; -				if (queue_work(dev->cbdev->cn_queue, -						&__cbq->work)) +				if (queue_delayed_work( +					    dev->cbdev->cn_queue, +					    &__cbq->work, 0))  					err = 0;  			} else { -				struct work_struct *w;  				struct cn_callback_data *d; -				w = kzalloc(sizeof(*w) + sizeof(*d), GFP_ATOMIC); -				if (w) { -					d = (struct cn_callback_data *)(w+1); - +				__cbq = kzalloc(sizeof(*__cbq), GFP_ATOMIC); +				if (__cbq) { +					d = &__cbq->data;  					d->callback_priv = msg;  					d->callback = __cbq->data.callback;  					d->ddata = data;  					d->destruct_data = destruct_data; -					d->free = w; +					d->free = __cbq; -					INIT_LIST_HEAD(&w->entry); -					w->pending = 0; -					w->func = &cn_queue_wrapper; -					w->data = d; -					init_timer(&w->timer); +					INIT_DELAYED_WORK(&__cbq->work, +							  &cn_queue_wrapper); -					if (queue_work(dev->cbdev->cn_queue, w)) +					if (queue_delayed_work( +						    dev->cbdev->cn_queue, +						    &__cbq->work, 0))  						err = 0;  					else { -						kfree(w); +						kfree(__cbq);  						err = -EINVAL;  					}  				} else  |