Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: cec: Fix debugfs leak on bus_register() failure

In cec_devnode_init(), the debugfs directory created with
debugfs_create_dir() is not removed if bus_register() fails.
This leaves a stale "cec" entry in debugfs and prevents
proper module reloading.

Fix this by removing the debugfs directory in the error path.

Fixes: a56960e8b406 ("[media] cec: add HDMI CEC framework (core)")
Cc: stable@vger.kernel.org
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Haotian Zhang and committed by
Hans Verkuil
c43bcd2b 203ee65b

+1
+1
drivers/media/cec/core/cec-core.c
··· 421 421 422 422 ret = bus_register(&cec_bus_type); 423 423 if (ret < 0) { 424 + debugfs_remove_recursive(top_cec_dir); 424 425 unregister_chrdev_region(cec_dev_t, CEC_NUM_DEVICES); 425 426 pr_warn("cec: bus_register failed\n"); 426 427 return -EIO;