git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
connector
/
cn_queue.c
diff --git
a/drivers/connector/cn_queue.c
b/drivers/connector/cn_queue.c
index
9f2f00d
..
296f510
100644
(file)
--- a/
drivers/connector/cn_queue.c
+++ b/
drivers/connector/cn_queue.c
@@
-31,9
+31,11
@@
#include <linux/connector.h>
#include <linux/delay.h>
#include <linux/connector.h>
#include <linux/delay.h>
-void cn_queue_wrapper(
void *data
)
+void cn_queue_wrapper(
struct work_struct *work
)
{
{
- struct cn_callback_data *d = data;
+ struct cn_callback_entry *cbq =
+ container_of(work, struct cn_callback_entry, work);
+ struct cn_callback_data *d = &cbq->data;
d->callback(d->callback_priv);
d->callback(d->callback_priv);
@@
-57,13
+59,12
@@
static struct cn_callback_entry *cn_queue_alloc_callback_entry(char *name, struc
memcpy(&cbq->id.id, id, sizeof(struct cb_id));
cbq->data.callback = callback;
memcpy(&cbq->id.id, id, sizeof(struct cb_id));
cbq->data.callback = callback;
- INIT_WORK(&cbq->work, &cn_queue_wrapper
, &cbq->data
);
+ INIT_WORK(&cbq->work, &cn_queue_wrapper);
return cbq;
}
static void cn_queue_free_callback(struct cn_callback_entry *cbq)
{
return cbq;
}
static void cn_queue_free_callback(struct cn_callback_entry *cbq)
{
- cancel_delayed_work(&cbq->work);
flush_workqueue(cbq->pdev->cn_queue);
kfree(cbq);
flush_workqueue(cbq->pdev->cn_queue);
kfree(cbq);
@@
-127,7
+128,7
@@
void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id)
if (found) {
cn_queue_free_callback(cbq);
if (found) {
cn_queue_free_callback(cbq);
- atomic_dec
_and_test
(&dev->refcnt);
+ atomic_dec(&dev->refcnt);
}
}
}
}