From 17a19b795e9187d65b6e45cb22797725d50f7edb Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Sat, 15 Sep 2007 14:50:25 +0200 Subject: ieee1394: csr1212: proper refcounting At least since nodemgr got rid of coarse global locking, accesses to struct csr1212_keyval's reference counter should be atomic and coupled with proper barriers. Also, calls to csr1212_keep_keyval(kv) should occur before kv is being used. (We probably should convert refcnt to struct kref, but how to keep csr1212_destroy_keyval's implementation non-recursively then?) Signed-off-by: Stefan Richter --- drivers/ieee1394/nodemgr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/ieee1394/nodemgr.c') diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index ec8edd2f19d..90dc75be341 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c @@ -1014,13 +1014,13 @@ static struct unit_directory *nodemgr_process_unit_directory CSR1212_TEXTUAL_DESCRIPTOR_LEAF_LANGUAGE(kv) == 0) { switch (last_key_id) { case CSR1212_KV_ID_VENDOR: - ud->vendor_name_kv = kv; csr1212_keep_keyval(kv); + ud->vendor_name_kv = kv; break; case CSR1212_KV_ID_MODEL: - ud->model_name_kv = kv; csr1212_keep_keyval(kv); + ud->model_name_kv = kv; break; } -- cgit v1.2.3