summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-04-22 14:42:00 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:42:27 -0300
commitc1b4d92789ada9ea6b7f1156ede7022eab309eab (patch)
tree77f6f4e0d38019f111b80d80486d032b9333262c
parentf9e315a16a5536120bac09a6d4217b8381c73c5c (diff)
downloadlinux-3.10-c1b4d92789ada9ea6b7f1156ede7022eab309eab.tar.gz
linux-3.10-c1b4d92789ada9ea6b7f1156ede7022eab309eab.tar.bz2
linux-3.10-c1b4d92789ada9ea6b7f1156ede7022eab309eab.zip
V4L/DVB (7137): tuner: return number of instances remaining after hybrid_tuner_release_state
Assign the number of instances remaining as the return value of hybrid_tuner_release_state, in case there is any extra cleanup that the tuner driver needs to do after an instance has been destroyed. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/tuner-i2c.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/tuner-i2c.h b/drivers/media/video/tuner-i2c.h
index 8ec5b41d459..c53c327a487 100644
--- a/drivers/media/video/tuner-i2c.h
+++ b/drivers/media/video/tuner-i2c.h
@@ -155,13 +155,17 @@ __fail: \
__ret; \
})
-#define hybrid_tuner_release_state(state) do { \
+#define hybrid_tuner_release_state(state) \
+({ \
+ int __ret; \
state->i2c_props.count--; \
+ __ret = state->i2c_props.count; \
if (!state->i2c_props.count) { \
__tuner_info(state->i2c_props, "destroying instance\n");\
list_del(&state->hybrid_tuner_instance_list); \
kfree(state); \
} \
-} while (0)
+ __ret; \
+})
#endif /* __TUNER_I2C_H__ */