Showing error 968

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/media/dvb/dvb-core/dvb_frontend.c
Line in file: 1770
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-03-02 21:35:17 UTC


Source:

1740                                }
1741                                adapter->mfe_dvbdev = dvbdev;
1742                        }
1743                }
1744        }
1745
1746        if (dvbdev->users == -1 && fe->ops.ts_bus_ctrl) {
1747                if ((ret = fe->ops.ts_bus_ctrl(fe, 1)) < 0)
1748                        goto err0;
1749        }
1750
1751        if ((ret = dvb_generic_open (inode, file)) < 0)
1752                goto err1;
1753
1754        if ((file->f_flags & O_ACCMODE) != O_RDONLY) {
1755                /* normal tune mode when opened R/W */
1756                fepriv->tune_mode_flags &= ~FE_TUNE_MODE_ONESHOT;
1757                fepriv->tone = -1;
1758                fepriv->voltage = -1;
1759
1760                ret = dvb_frontend_start (fe);
1761                if (ret)
1762                        goto err2;
1763
1764                /*  empty event queue */
1765                fepriv->events.eventr = fepriv->events.eventw = 0;
1766        }
1767
1768        if (adapter->mfe_shared)
1769                mutex_unlock (&adapter->mfe_lock);
1770        return ret;
1771
1772err2:
1773        dvb_generic_release(inode, file);
1774err1:
1775        if (dvbdev->users == -1 && fe->ops.ts_bus_ctrl)
1776                fe->ops.ts_bus_ctrl(fe, 0);
1777err0:
1778        if (adapter->mfe_shared)
1779                mutex_unlock (&adapter->mfe_lock);
1780        return ret;
Show full sources