diff options
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; | 
