diff --git a/[refs] b/[refs] index 9a8022a7c0d3..73118f5e3d42 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b921d929f4a012be3e809fbb1ff1e8e6c0751c06 +refs/heads/master: 56411f49f69140b97e259256b99dc276f2b2b427 diff --git a/trunk/drivers/media/dvb/firewire/firedtv-1394.c b/trunk/drivers/media/dvb/firewire/firedtv-1394.c index 2b6eeeab5b25..a2e3841f8ee9 100644 --- a/trunk/drivers/media/dvb/firewire/firedtv-1394.c +++ b/trunk/drivers/media/dvb/firewire/firedtv-1394.c @@ -212,6 +212,7 @@ static int node_probe(struct device *dev) goto fail; avc_register_remote_control(fdtv); + return 0; fail: spin_lock_irq(&node_list_lock); @@ -220,6 +221,7 @@ static int node_probe(struct device *dev) fdtv_unregister_rc(fdtv); fail_free: kfree(fdtv); + return err; } @@ -233,10 +235,9 @@ static int node_remove(struct device *dev) list_del(&fdtv->list); spin_unlock_irq(&node_list_lock); - cancel_work_sync(&fdtv->remote_ctrl_work); fdtv_unregister_rc(fdtv); - kfree(fdtv); + return 0; } diff --git a/trunk/drivers/media/dvb/firewire/firedtv-rc.c b/trunk/drivers/media/dvb/firewire/firedtv-rc.c index 27bca2e283df..599d66e5843d 100644 --- a/trunk/drivers/media/dvb/firewire/firedtv-rc.c +++ b/trunk/drivers/media/dvb/firewire/firedtv-rc.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "firedtv.h" @@ -163,6 +164,7 @@ int fdtv_register_rc(struct firedtv *fdtv, struct device *dev) void fdtv_unregister_rc(struct firedtv *fdtv) { + cancel_work_sync(&fdtv->remote_ctrl_work); kfree(fdtv->remote_ctrl_dev->keycode); input_unregister_device(fdtv->remote_ctrl_dev); }