Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[CONNECTOR]: Replace delayed work with usual work queue.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Evgeniy Polyakov and committed by
David S. Miller
a240d9f1 14fb8a76

+10 -13
+2 -3
drivers/connector/cn_queue.c
··· 34 34 void cn_queue_wrapper(struct work_struct *work) 35 35 { 36 36 struct cn_callback_entry *cbq = 37 - container_of(work, struct cn_callback_entry, work.work); 37 + container_of(work, struct cn_callback_entry, work); 38 38 struct cn_callback_data *d = &cbq->data; 39 39 40 40 d->callback(d->callback_priv); ··· 59 59 memcpy(&cbq->id.id, id, sizeof(struct cb_id)); 60 60 cbq->data.callback = callback; 61 61 62 - INIT_DELAYED_WORK(&cbq->work, &cn_queue_wrapper); 62 + INIT_WORK(&cbq->work, &cn_queue_wrapper); 63 63 return cbq; 64 64 } 65 65 66 66 static void cn_queue_free_callback(struct cn_callback_entry *cbq) 67 67 { 68 - cancel_delayed_work(&cbq->work); 69 68 flush_workqueue(cbq->pdev->cn_queue); 70 69 71 70 kfree(cbq);
+7 -9
drivers/connector/connector.c
··· 135 135 spin_lock_bh(&dev->cbdev->queue_lock); 136 136 list_for_each_entry(__cbq, &dev->cbdev->queue_list, callback_entry) { 137 137 if (cn_cb_equal(&__cbq->id.id, &msg->id)) { 138 - if (likely(!work_pending(&__cbq->work.work) && 138 + if (likely(!work_pending(&__cbq->work) && 139 139 __cbq->data.ddata == NULL)) { 140 140 __cbq->data.callback_priv = msg; 141 141 142 142 __cbq->data.ddata = data; 143 143 __cbq->data.destruct_data = destruct_data; 144 144 145 - if (queue_delayed_work( 146 - dev->cbdev->cn_queue, 147 - &__cbq->work, 0)) 145 + if (queue_work(dev->cbdev->cn_queue, 146 + &__cbq->work)) 148 147 err = 0; 149 148 } else { 150 149 struct cn_callback_data *d; ··· 157 158 d->destruct_data = destruct_data; 158 159 d->free = __cbq; 159 160 160 - INIT_DELAYED_WORK(&__cbq->work, 161 - &cn_queue_wrapper); 161 + INIT_WORK(&__cbq->work, 162 + &cn_queue_wrapper); 162 163 163 - if (queue_delayed_work( 164 - dev->cbdev->cn_queue, 165 - &__cbq->work, 0)) 164 + if (queue_work(dev->cbdev->cn_queue, 165 + &__cbq->work)) 166 166 err = 0; 167 167 else { 168 168 kfree(__cbq);
+1 -1
include/linux/connector.h
··· 133 133 struct cn_callback_entry { 134 134 struct list_head callback_entry; 135 135 struct cn_callback *cb; 136 - struct delayed_work work; 136 + struct work_struct work; 137 137 struct cn_queue_dev *pdev; 138 138 139 139 struct cn_callback_id id;