> Even if we now find all occurrences of atomic_t used as refcounter > (which we cannot actually guarantee in any case unless someone > manually reads every line) and convert it to refcount_t, we still have > atomic_t type present and new usage of it as refount will crawl in. It > is just a matter of time IMO.
>Improve tooling. The patterns shouldn't be _that_ hard to find. Once the tools >are good, new code isn't a problem either. >Anything: atomic*_{{dec,sub}_and_test,{add,sub}_return,fetch_{add,sub}} >followed by a call_rcu()/free(). Does not find everything unfortunately. Even if you add to above atomic*_add_unless() and also things like schedule_work(), still I fear we aren't covering everything. What is worse, I don't think there is a mechanism to guarantee full coverage.