diff options
author | David S. Miller <davem@davemloft.net> | 2008-11-20 19:44:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-20 19:44:00 -0500 |
commit | 6ab33d51713d6d60c7677c0d020910a8cb37e513 (patch) | |
tree | 546c2ff099b2757e75cf34ddace874f1220f740e /ipc | |
parent | 7be6065b39c3f1cfa796667eac1a2170465acc91 (diff) | |
parent | 13d428afc007fcfcd6deeb215618f54cf9c0cae6 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/ixgbe/ixgbe_main.c
include/net/mac80211.h
net/phonet/af_phonet.c
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/util.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/ipc/util.c b/ipc/util.c index 49b3ea615dc5..361fd1c96fcf 100644 --- a/ipc/util.c +++ b/ipc/util.c | |||
@@ -266,9 +266,17 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size) | |||
266 | if (ids->in_use >= size) | 266 | if (ids->in_use >= size) |
267 | return -ENOSPC; | 267 | return -ENOSPC; |
268 | 268 | ||
269 | spin_lock_init(&new->lock); | ||
270 | new->deleted = 0; | ||
271 | rcu_read_lock(); | ||
272 | spin_lock(&new->lock); | ||
273 | |||
269 | err = idr_get_new(&ids->ipcs_idr, new, &id); | 274 | err = idr_get_new(&ids->ipcs_idr, new, &id); |
270 | if (err) | 275 | if (err) { |
276 | spin_unlock(&new->lock); | ||
277 | rcu_read_unlock(); | ||
271 | return err; | 278 | return err; |
279 | } | ||
272 | 280 | ||
273 | ids->in_use++; | 281 | ids->in_use++; |
274 | 282 | ||
@@ -280,10 +288,6 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size) | |||
280 | ids->seq = 0; | 288 | ids->seq = 0; |
281 | 289 | ||
282 | new->id = ipc_buildid(id, new->seq); | 290 | new->id = ipc_buildid(id, new->seq); |
283 | spin_lock_init(&new->lock); | ||
284 | new->deleted = 0; | ||
285 | rcu_read_lock(); | ||
286 | spin_lock(&new->lock); | ||
287 | return id; | 291 | return id; |
288 | } | 292 | } |
289 | 293 | ||