Showing error 1016

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: net/xfrm/xfrm_state.c
Line in file: 1960
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Entered: 2012-03-04 17:07:06 UTC


Source:

1930EXPORT_SYMBOL(xfrm_state_register_afinfo);
1931
1932int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo)
1933{
1934        int err = 0;
1935        if (unlikely(afinfo == NULL))
1936                return -EINVAL;
1937        if (unlikely(afinfo->family >= NPROTO))
1938                return -EAFNOSUPPORT;
1939        write_lock_bh(&xfrm_state_afinfo_lock);
1940        if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) {
1941                if (unlikely(xfrm_state_afinfo[afinfo->family] != afinfo))
1942                        err = -EINVAL;
1943                else
1944                        xfrm_state_afinfo[afinfo->family] = NULL;
1945        }
1946        write_unlock_bh(&xfrm_state_afinfo_lock);
1947        return err;
1948}
1949EXPORT_SYMBOL(xfrm_state_unregister_afinfo);
1950
1951static struct xfrm_state_afinfo *xfrm_state_get_afinfo(unsigned int family)
1952{
1953        struct xfrm_state_afinfo *afinfo;
1954        if (unlikely(family >= NPROTO))
1955                return NULL;
1956        read_lock(&xfrm_state_afinfo_lock);
1957        afinfo = xfrm_state_afinfo[family];
1958        if (unlikely(!afinfo))
1959                read_unlock(&xfrm_state_afinfo_lock);
1960        return afinfo;
1961}
1962
1963static void xfrm_state_put_afinfo(struct xfrm_state_afinfo *afinfo)
1964        __releases(xfrm_state_afinfo_lock)
1965{
1966        read_unlock(&xfrm_state_afinfo_lock);
1967}
1968
1969/* Temporarily located here until net/xfrm/xfrm_tunnel.c is created */
1970void xfrm_state_delete_tunnel(struct xfrm_state *x)
Show full sources