diff --git a/arch/arm/mach-msm/smd_pkt.c b/arch/arm/mach-msm/smd_pkt.c index d175b39b2dcd5a42cfd8229a0c0593433f5b7f35..9da145aec375e7fd567f0dbadc71843ffda6edfc 100644 --- a/arch/arm/mach-msm/smd_pkt.c +++ b/arch/arm/mach-msm/smd_pkt.c @@ -826,8 +826,6 @@ int smd_pkt_open(struct inode *inode, struct file *file) } D_STATUS("Begin %s on smd_pkt_dev id:%d\n", __func__, smd_pkt_devp->i); - file->private_data = smd_pkt_devp; - mutex_lock(&smd_pkt_devp->ch_lock); if (smd_pkt_devp->ch == 0) { wake_lock_init(&smd_pkt_devp->pa_wake_lock, WAKE_LOCK_SUSPEND, @@ -942,6 +940,8 @@ release_pd: platform_driver_unregister(&smd_pkt_devp->driver); smd_pkt_devp->driver.probe = NULL; } + else if (r == 0) + file->private_data = smd_pkt_devp; out: if (!smd_pkt_devp->ch) wake_lock_destroy(&smd_pkt_devp->pa_wake_lock);