ClangBuiltLinux / thread-safety-analysis

A research project into applying Clang's Thread Safety Analysis to the Linux Kernel
Other
6 stars 0 forks source link

mm/hugetlb.c: handle all the warnings #80

Open himanshujha199640 opened 5 years ago

himanshujha199640 commented 5 years ago

https://elixir.bootlin.com/linux/v5.2-rc2/source/mm/hugetlb.c#L76 Similar to: https://github.com/ClangBuiltLinux/thread-safety-analysis/issues/28#issuecomment-496215839 Except two warnings where __requires_spinlock(..) handles the warning.

/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:80:2: warning: releasing mutex 'spool->lock' that was not held [-Wthread-safety-analysis]
        spin_unlock(&spool->lock);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:123:1: warning: mutex 'spool->lock' is still held at the end of function [-Wthread-safety-analysis]
}
^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:119:2: note: mutex acquired here
        spin_lock(&spool->lock);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:210:1: warning: mutex 'spool->lock' is not held on every path through here [-Wthread-safety-analysis]
}
^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:186:2: note: mutex acquired here
        spin_lock(&spool->lock);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:1744:2: warning: releasing mutex 'hugetlb_lock' that was not held [-Wthread-safety-analysis]
        spin_unlock(&hugetlb_lock);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:1744:2: warning: expecting mutex 'hugetlb_lock' to be held at start of each loop [-Wthread-safety-analysis]
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:1761:2: note: mutex acquired here
        spin_lock(&hugetlb_lock);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:1807:1: warning: mutex 'hugetlb_lock' is not held on every path through here [-Wthread-safety-analysis]
}
^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:1804:2: note: mutex acquired here
        spin_lock(&hugetlb_lock);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3381:3: warning: releasing mutex 'src_ptl' that was not held [-Wthread-safety-analysis]
                spin_unlock(src_ptl);
                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3382:3: warning: releasing mutex 'dst_ptl' that was not held [-Wthread-safety-analysis]
                spin_unlock(dst_ptl);
                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3431:4: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                        spin_unlock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3441:4: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                        spin_unlock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3451:4: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                        spin_unlock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3463:5: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                                spin_unlock(ptl);
                                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3482:3: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                spin_unlock(ptl);
                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3617:6: warning: expecting mutex 'ptl' to be held at start of each loop [-Wthread-safety-analysis]
        if (page_mapcount(old_page) == 1 && PageAnon(old_page)) {
            ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3658:4: note: mutex acquired here
                        spin_lock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3642:2: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
        spin_unlock(ptl);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3721:1: warning: mutex 'ptl' is not held on every path through here [-Wthread-safety-analysis]
}
^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3719:2: note: mutex acquired here
        spin_lock(ptl); /* Caller expects lock to be held */
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3923:2: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
        spin_unlock(ptl);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:3938:2: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
        spin_unlock(ptl);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4089:2: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
        spin_unlock(ptl);
        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4289:5: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                                spin_unlock(ptl);
                                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4311:5: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                                spin_unlock(ptl);
                                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4358:5: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                                spin_unlock(ptl);
                                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4385:3: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                spin_unlock(ptl);
                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4440:4: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                        spin_unlock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4446:4: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                        spin_unlock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4461:4: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                        spin_unlock(ptl);
                        ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4473:3: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
                spin_unlock(ptl);
                ^
/home/himanshu/clang-thread-safety-analysis/mm/hugetlb.c:4774:2: warning: releasing mutex 'ptl' that was not held [-Wthread-safety-analysis]
        spin_unlock(ptl);
        ^