diff options
author | Sjur Braendeland <sjur.brandeland@stericsson.com> | 2010-04-28 04:54:36 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-28 15:55:12 -0400 |
commit | 5b2086567503f9b55136642031ec0067319f58e0 (patch) | |
tree | 00c4264ed7a8a989b398166c2c5f98175f5c28a5 /net/caif/cfsrvl.c | |
parent | e539d83cc8a4fa581cbf8ed288fdadb19a692cb0 (diff) |
caif: Add reference counting to service layer
Changes:
o Added functions cfsrvl_get and cfsrvl_put.
o Added support release_client to use by socket and net device.
o Increase reference counting for in-flight packets from cfmuxl
Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/caif/cfsrvl.c')
-rw-r--r-- | net/caif/cfsrvl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/caif/cfsrvl.c b/net/caif/cfsrvl.c index d470c51c6431..aff31f34528f 100644 --- a/net/caif/cfsrvl.c +++ b/net/caif/cfsrvl.c | |||
@@ -158,6 +158,13 @@ void cfsrvl_init(struct cfsrvl *service, | |||
158 | service->layer.ctrlcmd = cfservl_ctrlcmd; | 158 | service->layer.ctrlcmd = cfservl_ctrlcmd; |
159 | service->layer.modemcmd = cfservl_modemcmd; | 159 | service->layer.modemcmd = cfservl_modemcmd; |
160 | service->dev_info = *dev_info; | 160 | service->dev_info = *dev_info; |
161 | kref_init(&service->ref); | ||
162 | } | ||
163 | |||
164 | void cfsrvl_release(struct kref *kref) | ||
165 | { | ||
166 | struct cfsrvl *service = container_of(kref, struct cfsrvl, ref); | ||
167 | kfree(service); | ||
161 | } | 168 | } |
162 | 169 | ||
163 | bool cfsrvl_ready(struct cfsrvl *service, int *err) | 170 | bool cfsrvl_ready(struct cfsrvl *service, int *err) |