Symbol: kcov
include/linux/sched.h
1533
struct kcov *kcov;
include/linux/sched.h
1536
struct kcov *kcov_remote;
kernel/kcov.c
1030
struct kcov *kcov;
kernel/kcov.c
1062
kcov = t->kcov;
kernel/kcov.c
1073
spin_lock(&kcov->lock);
kernel/kcov.c
1078
if (sequence == kcov->sequence && kcov->remote)
kernel/kcov.c
1079
kcov_move_area(kcov->mode, kcov->area, kcov->size, area);
kernel/kcov.c
1080
spin_unlock(&kcov->lock);
kernel/kcov.c
1091
kcov_put(kcov);
kernel/kcov.c
119
static struct kcov_remote *kcov_remote_add(struct kcov *kcov, u64 handle)
kernel/kcov.c
129
remote->kcov = kcov;
kernel/kcov.c
356
static void kcov_start(struct task_struct *t, struct kcov *kcov,
kernel/kcov.c
361
t->kcov = kcov;
kernel/kcov.c
376
t->kcov = NULL;
kernel/kcov.c
395
static void kcov_reset(struct kcov *kcov)
kernel/kcov.c
396
__must_hold(&kcov->lock)
kernel/kcov.c
398
kcov->t = NULL;
kernel/kcov.c
399
kcov->mode = KCOV_MODE_INIT;
kernel/kcov.c
400
kcov->remote = false;
kernel/kcov.c
401
kcov->remote_size = 0;
kernel/kcov.c
402
kcov->sequence++;
kernel/kcov.c
405
static void kcov_remote_reset(struct kcov *kcov)
kernel/kcov.c
406
__must_hold(&kcov->lock)
kernel/kcov.c
415
if (remote->kcov != kcov)
kernel/kcov.c
421
kcov_reset(kcov);
kernel/kcov.c
425
static void kcov_disable(struct task_struct *t, struct kcov *kcov)
kernel/kcov.c
426
__must_hold(&kcov->lock)
kernel/kcov.c
428
if (kcov->remote) {
kernel/kcov.c
431
kcov_remote_reset(kcov);
kernel/kcov.c
434
kcov_reset(kcov);
kernel/kcov.c
438
static void kcov_get(struct kcov *kcov)
kernel/kcov.c
440
refcount_inc(&kcov->refcount);
kernel/kcov.c
443
static void kcov_put(struct kcov *kcov)
kernel/kcov.c
445
if (refcount_dec_and_test(&kcov->refcount)) {
kernel/kcov.c
448
kcov_remote_reset(kcov);
kernel/kcov.c
449
vfree(kcov->area);
kernel/kcov.c
451
kfree(kcov);
kernel/kcov.c
457
struct kcov *kcov;
kernel/kcov.c
460
kcov = t->kcov;
kernel/kcov.c
461
if (kcov) {
kernel/kcov.c
462
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
463
kcov_debug("t = %px, kcov->t = %px\n", t, kcov->t);
kernel/kcov.c
475
if (WARN_ON(kcov->remote) || WARN_ON(kcov->t != t)) {
kernel/kcov.c
476
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
480
kcov_disable(t, kcov);
kernel/kcov.c
481
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
482
kcov_put(kcov);
kernel/kcov.c
484
kcov = t->kcov_remote;
kernel/kcov.c
485
if (kcov) {
kernel/kcov.c
486
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
487
kcov_debug("t = %px, kcov->t = %px\n", t, kcov->t);
kernel/kcov.c
493
if (WARN_ON(!kcov->remote) || WARN_ON(kcov->t != t)) {
kernel/kcov.c
494
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
498
kcov_disable(t, kcov);
kernel/kcov.c
499
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
500
kcov_put(kcov);
kernel/kcov.c
507
struct kcov *kcov = vma->vm_file->private_data;
kernel/kcov.c
513
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
514
size = kcov->size * sizeof(unsigned long);
kernel/kcov.c
515
if (kcov->area == NULL || vma->vm_pgoff != 0 ||
kernel/kcov.c
520
area = kcov->area;
kernel/kcov.c
521
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
533
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
539
struct kcov *kcov;
kernel/kcov.c
541
kcov = kzalloc_obj(*kcov);
kernel/kcov.c
542
if (!kcov)
kernel/kcov.c
544
guard(spinlock_init)(&kcov->lock);
kernel/kcov.c
545
kcov->mode = KCOV_MODE_DISABLED;
kernel/kcov.c
546
kcov->sequence = 1;
kernel/kcov.c
547
refcount_set(&kcov->refcount, 1);
kernel/kcov.c
548
filep->private_data = kcov;
kernel/kcov.c
577
static void kcov_fault_in_area(struct kcov *kcov)
kernel/kcov.c
578
__must_hold(&kcov->lock)
kernel/kcov.c
581
unsigned long *area = kcov->area;
kernel/kcov.c
584
for (offset = 0; offset < kcov->size; offset += stride)
kernel/kcov.c
605
static int kcov_ioctl_locked(struct kcov *kcov, unsigned int cmd,
kernel/kcov.c
607
__must_hold(&kcov->lock)
kernel/kcov.c
624
if (kcov->mode != KCOV_MODE_INIT || !kcov->area)
kernel/kcov.c
627
if (kcov->t != NULL || t->kcov != NULL)
kernel/kcov.c
632
kcov_fault_in_area(kcov);
kernel/kcov.c
633
kcov->mode = mode;
kernel/kcov.c
634
kcov_start(t, kcov, kcov->size, kcov->area, kcov->mode,
kernel/kcov.c
635
kcov->sequence);
kernel/kcov.c
636
kcov->t = t;
kernel/kcov.c
638
kcov_get(kcov);
kernel/kcov.c
644
if (unused != 0 || (kcov != t->kcov && kcov != t->kcov_remote))
kernel/kcov.c
646
if (WARN_ON(kcov->t != t))
kernel/kcov.c
648
kcov_disable(t, kcov);
kernel/kcov.c
649
kcov_put(kcov);
kernel/kcov.c
652
if (kcov->mode != KCOV_MODE_INIT || !kcov->area)
kernel/kcov.c
655
if (kcov->t != NULL || t->kcov_remote != NULL)
kernel/kcov.c
664
kcov->mode = mode;
kernel/kcov.c
665
t->kcov_remote = kcov;
kernel/kcov.c
666
kcov->t = t;
kernel/kcov.c
667
kcov->remote = true;
kernel/kcov.c
668
kcov->remote_size = remote_arg->area_size;
kernel/kcov.c
675
kcov_disable(t, kcov);
kernel/kcov.c
678
remote = kcov_remote_add(kcov, remote_arg->handles[i]);
kernel/kcov.c
682
kcov_disable(t, kcov);
kernel/kcov.c
691
kcov_disable(t, kcov);
kernel/kcov.c
694
remote = kcov_remote_add(kcov,
kernel/kcov.c
699
kcov_disable(t, kcov);
kernel/kcov.c
706
kcov_get(kcov);
kernel/kcov.c
715
struct kcov *kcov;
kernel/kcov.c
723
kcov = filep->private_data;
kernel/kcov.c
739
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
740
if (kcov->mode != KCOV_MODE_DISABLED) {
kernel/kcov.c
741
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
745
kcov->area = area;
kernel/kcov.c
746
kcov->size = size;
kernel/kcov.c
747
kcov->mode = KCOV_MODE_INIT;
kernel/kcov.c
748
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
772
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
773
res = kcov_ioctl_locked(kcov, cmd, arg);
kernel/kcov.c
774
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
83
struct kcov *kcov;
kernel/kcov.c
849
data->saved_kcov = t->kcov;
kernel/kcov.c
875
struct kcov *kcov;
kernel/kcov.c
917
kcov = remote->kcov;
kernel/kcov.c
919
kcov_get(kcov);
kernel/kcov.c
926
mode = context_unsafe(kcov->mode);
kernel/kcov.c
927
sequence = kcov->sequence;
kernel/kcov.c
929
size = kcov->remote_size;
kernel/kcov.c
942
kcov_put(kcov);
kernel/kcov.c
955
kcov_start(t, kcov, size, area, mode, sequence);
kernel/kcov.c
98
struct kcov *saved_kcov;