@ -13,7 +13,7 @@
* of Berkeley Packet Filters / Linux Socket Filters .
*/
# include <linux/atomic .h>
# include <linux/refcount .h>
# include <linux/audit.h>
# include <linux/compat.h>
# include <linux/coredump.h>
@ -56,7 +56,7 @@
* to a task_struct ( other than @ usage ) .
*/
struct seccomp_filter {
atomic _t usage ;
refcount _t usage ;
struct seccomp_filter * prev ;
struct bpf_prog * prog ;
} ;
@ -378,7 +378,7 @@ static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog)
return ERR_PTR ( ret ) ;
}
atomic _set( & sfilter - > usage , 1 ) ;
refcount _set( & sfilter - > usage , 1 ) ;
return sfilter ;
}
@ -465,7 +465,7 @@ void get_seccomp_filter(struct task_struct *tsk)
if ( ! orig )
return ;
/* Reference count is bounded by the number of total processes. */
atomic _inc( & orig - > usage ) ;
refcount _inc( & orig - > usage ) ;
}
static inline void seccomp_filter_free ( struct seccomp_filter * filter )
@ -481,7 +481,7 @@ void put_seccomp_filter(struct task_struct *tsk)
{
struct seccomp_filter * orig = tsk - > seccomp . filter ;
/* Clean up single-reference branches iteratively. */
while ( orig & & atomic _dec_and_test( & orig - > usage ) ) {
while ( orig & & refcount _dec_and_test( & orig - > usage ) ) {
struct seccomp_filter * freeme = orig ;
orig = orig - > prev ;
seccomp_filter_free ( freeme ) ;