diff options
| author | 2008-03-18 00:37:55 -0700 | |
|---|---|---|
| committer | 2008-03-18 00:37:55 -0700 | |
| commit | 577f99c1d08cf9cbdafd4e858dd13ff04d855090 (patch) | |
| tree | 0f726bbda9b18d311d4c95198bbd96cb7ac01db0 /kernel/marker.c | |
| parent | iwlwifi: fix bug to show hidden APs during scan (diff) | |
| parent | Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 (diff) | |
| download | wireguard-linux-577f99c1d08cf9cbdafd4e858dd13ff04d855090.tar.xz wireguard-linux-577f99c1d08cf9cbdafd4e858dd13ff04d855090.zip | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/wireless/rt2x00/rt2x00dev.c
net/8021q/vlan_dev.c
Diffstat (limited to 'kernel/marker.c')
| -rw-r--r-- | kernel/marker.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/marker.c b/kernel/marker.c index 50effc01d9a2..48a4ea5afffd 100644 --- a/kernel/marker.c +++ b/kernel/marker.c @@ -698,14 +698,12 @@ int marker_probe_unregister(const char *name, { struct marker_entry *entry; struct marker_probe_closure *old; - int ret = 0; + int ret = -ENOENT; mutex_lock(&markers_mutex); entry = get_marker(name); - if (!entry) { - ret = -ENOENT; + if (!entry) goto end; - } if (entry->rcu_pending) rcu_barrier(); old = marker_entry_remove_probe(entry, probe, probe_private); @@ -713,12 +711,15 @@ int marker_probe_unregister(const char *name, marker_update_probes(); /* may update entry */ mutex_lock(&markers_mutex); entry = get_marker(name); + if (!entry) + goto end; entry->oldptr = old; entry->rcu_pending = 1; /* write rcu_pending before calling the RCU callback */ smp_wmb(); call_rcu(&entry->rcu, free_old_closure); remove_marker(name); /* Ignore busy error message */ + ret = 0; end: mutex_unlock(&markers_mutex); return ret; |
