linux/drivers/media/rc/bpf-lirc.c
/*
 * This should be called once the rc thread has been stopped, so there can be
 * no concurrent bpf execution.
 */
This should be called once the rc thread has been stopped, so there can be
no concurrent bpf execution.
This should be called once the rc thread has been stopped so there can be no concurrent bpf execution .
void lirc_bpf_free(struct rc_dev *rcdev)
{
	struct bpf_prog_array_item *item;
	if (!rcdev->raw->progs)
		return;
	item = rcu_dereference(rcdev->raw->progs)->items;
	while (item->prog) {
		bpf_prog_put(item->prog);
		item++;
	}
	bpf_prog_array_free(rcdev->raw->progs);
}
void lirc_bpf_free ( struct rc_dev * rcdev ) { struct bpf_prog_array_item * item ; if ( ! rcdev -> raw -> progs ) return ; item = rcu_dereference ( rcdev -> raw -> progs ) -> items ; while ( item -> prog ) { bpf_prog_put ( item -> prog ) ; item ++ ; } bpf_prog_array_free ( rcdev -> raw -> progs ) ; }
This should be called once the rc thread has been stopped, so there can be
 no concurrent bpf execution.
This should be called once the rc thread has been stopped so there can be no concurrent bpf execution .