diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-10-13 03:24:51 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-10-13 03:24:59 -0400 |
| commit | 2c96c142e941041973faab20ca3b82d57f435c5e (patch) | |
| tree | 45188f0ecb3f4bb7408a7219f8fcd041d500235a /drivers/connector/cn_queue.c | |
| parent | 3c355863fb32070a2800f41106519c5c3038623a (diff) | |
| parent | 8ad807318fcd62aba0e18c7c7fbfcc1af3fcdbab (diff) | |
Merge branch 'tracing/urgent' into tracing/core
Merge reason: Pick up tracing/filters fix from the urgent queue,
we will queue up dependent patches.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/connector/cn_queue.c')
| -rw-r--r-- | drivers/connector/cn_queue.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/connector/cn_queue.c b/drivers/connector/cn_queue.c index 4a1dfe1f4ba9..210338ea222f 100644 --- a/drivers/connector/cn_queue.c +++ b/drivers/connector/cn_queue.c | |||
| @@ -78,18 +78,20 @@ void cn_queue_wrapper(struct work_struct *work) | |||
| 78 | struct cn_callback_entry *cbq = | 78 | struct cn_callback_entry *cbq = |
| 79 | container_of(work, struct cn_callback_entry, work); | 79 | container_of(work, struct cn_callback_entry, work); |
| 80 | struct cn_callback_data *d = &cbq->data; | 80 | struct cn_callback_data *d = &cbq->data; |
| 81 | struct cn_msg *msg = NLMSG_DATA(nlmsg_hdr(d->skb)); | ||
| 82 | struct netlink_skb_parms *nsp = &NETLINK_CB(d->skb); | ||
| 81 | 83 | ||
| 82 | d->callback(d->callback_priv); | 84 | d->callback(msg, nsp); |
| 83 | 85 | ||
| 84 | d->destruct_data(d->ddata); | 86 | kfree_skb(d->skb); |
| 85 | d->ddata = NULL; | 87 | d->skb = NULL; |
| 86 | 88 | ||
| 87 | kfree(d->free); | 89 | kfree(d->free); |
| 88 | } | 90 | } |
| 89 | 91 | ||
| 90 | static struct cn_callback_entry * | 92 | static struct cn_callback_entry * |
| 91 | cn_queue_alloc_callback_entry(char *name, struct cb_id *id, | 93 | cn_queue_alloc_callback_entry(char *name, struct cb_id *id, |
| 92 | void (*callback)(struct cn_msg *)) | 94 | void (*callback)(struct cn_msg *, struct netlink_skb_parms *)) |
| 93 | { | 95 | { |
| 94 | struct cn_callback_entry *cbq; | 96 | struct cn_callback_entry *cbq; |
| 95 | 97 | ||
| @@ -123,7 +125,7 @@ int cn_cb_equal(struct cb_id *i1, struct cb_id *i2) | |||
| 123 | } | 125 | } |
| 124 | 126 | ||
| 125 | int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, | 127 | int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, |
| 126 | void (*callback)(struct cn_msg *)) | 128 | void (*callback)(struct cn_msg *, struct netlink_skb_parms *)) |
| 127 | { | 129 | { |
| 128 | struct cn_callback_entry *cbq, *__cbq; | 130 | struct cn_callback_entry *cbq, *__cbq; |
| 129 | int found = 0; | 131 | int found = 0; |
