Symbol: kcov
include/linux/sched.h
1513
struct kcov *kcov;
kernel/kcov.c
1020
struct kcov *kcov;
kernel/kcov.c
1052
kcov = t->kcov;
kernel/kcov.c
1063
spin_lock(&kcov->lock);
kernel/kcov.c
1068
if (sequence == kcov->sequence && kcov->remote)
kernel/kcov.c
1069
kcov_move_area(kcov->mode, kcov->area, kcov->size, area);
kernel/kcov.c
1070
spin_unlock(&kcov->lock);
kernel/kcov.c
1081
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
375
t->kcov = NULL;
kernel/kcov.c
393
static void kcov_reset(struct kcov *kcov)
kernel/kcov.c
394
__must_hold(&kcov->lock)
kernel/kcov.c
396
kcov->t = NULL;
kernel/kcov.c
397
kcov->mode = KCOV_MODE_INIT;
kernel/kcov.c
398
kcov->remote = false;
kernel/kcov.c
399
kcov->remote_size = 0;
kernel/kcov.c
400
kcov->sequence++;
kernel/kcov.c
403
static void kcov_remote_reset(struct kcov *kcov)
kernel/kcov.c
404
__must_hold(&kcov->lock)
kernel/kcov.c
413
if (remote->kcov != kcov)
kernel/kcov.c
419
kcov_reset(kcov);
kernel/kcov.c
423
static void kcov_disable(struct task_struct *t, struct kcov *kcov)
kernel/kcov.c
424
__must_hold(&kcov->lock)
kernel/kcov.c
427
if (kcov->remote)
kernel/kcov.c
428
kcov_remote_reset(kcov);
kernel/kcov.c
430
kcov_reset(kcov);
kernel/kcov.c
433
static void kcov_get(struct kcov *kcov)
kernel/kcov.c
435
refcount_inc(&kcov->refcount);
kernel/kcov.c
438
static void kcov_put(struct kcov *kcov)
kernel/kcov.c
440
if (refcount_dec_and_test(&kcov->refcount)) {
kernel/kcov.c
443
kcov_remote_reset(kcov);
kernel/kcov.c
444
vfree(kcov->area);
kernel/kcov.c
446
kfree(kcov);
kernel/kcov.c
452
struct kcov *kcov;
kernel/kcov.c
455
kcov = t->kcov;
kernel/kcov.c
456
if (kcov == NULL)
kernel/kcov.c
459
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
460
kcov_debug("t = %px, kcov->t = %px\n", t, kcov->t);
kernel/kcov.c
483
if (WARN_ON(kcov->t != t)) {
kernel/kcov.c
484
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
488
kcov_disable(t, kcov);
kernel/kcov.c
489
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
490
kcov_put(kcov);
kernel/kcov.c
496
struct kcov *kcov = vma->vm_file->private_data;
kernel/kcov.c
502
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
503
size = kcov->size * sizeof(unsigned long);
kernel/kcov.c
504
if (kcov->area == NULL || vma->vm_pgoff != 0 ||
kernel/kcov.c
509
area = kcov->area;
kernel/kcov.c
510
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
522
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
528
struct kcov *kcov;
kernel/kcov.c
530
kcov = kzalloc_obj(*kcov);
kernel/kcov.c
531
if (!kcov)
kernel/kcov.c
533
guard(spinlock_init)(&kcov->lock);
kernel/kcov.c
534
kcov->mode = KCOV_MODE_DISABLED;
kernel/kcov.c
535
kcov->sequence = 1;
kernel/kcov.c
536
refcount_set(&kcov->refcount, 1);
kernel/kcov.c
537
filep->private_data = kcov;
kernel/kcov.c
566
static void kcov_fault_in_area(struct kcov *kcov)
kernel/kcov.c
567
__must_hold(&kcov->lock)
kernel/kcov.c
570
unsigned long *area = kcov->area;
kernel/kcov.c
573
for (offset = 0; offset < kcov->size; offset += stride)
kernel/kcov.c
594
static int kcov_ioctl_locked(struct kcov *kcov, unsigned int cmd,
kernel/kcov.c
596
__must_hold(&kcov->lock)
kernel/kcov.c
613
if (kcov->mode != KCOV_MODE_INIT || !kcov->area)
kernel/kcov.c
616
if (kcov->t != NULL || t->kcov != NULL)
kernel/kcov.c
621
kcov_fault_in_area(kcov);
kernel/kcov.c
622
kcov->mode = mode;
kernel/kcov.c
623
kcov_start(t, kcov, kcov->size, kcov->area, kcov->mode,
kernel/kcov.c
624
kcov->sequence);
kernel/kcov.c
625
kcov->t = t;
kernel/kcov.c
627
kcov_get(kcov);
kernel/kcov.c
632
if (unused != 0 || current->kcov != kcov)
kernel/kcov.c
635
if (WARN_ON(kcov->t != t))
kernel/kcov.c
637
kcov_disable(t, kcov);
kernel/kcov.c
638
kcov_put(kcov);
kernel/kcov.c
641
if (kcov->mode != KCOV_MODE_INIT || !kcov->area)
kernel/kcov.c
644
if (kcov->t != NULL || t->kcov != NULL)
kernel/kcov.c
653
kcov->mode = mode;
kernel/kcov.c
654
t->kcov = kcov;
kernel/kcov.c
656
kcov->t = t;
kernel/kcov.c
657
kcov->remote = true;
kernel/kcov.c
658
kcov->remote_size = remote_arg->area_size;
kernel/kcov.c
665
kcov_disable(t, kcov);
kernel/kcov.c
668
remote = kcov_remote_add(kcov, remote_arg->handles[i]);
kernel/kcov.c
672
kcov_disable(t, kcov);
kernel/kcov.c
681
kcov_disable(t, kcov);
kernel/kcov.c
684
remote = kcov_remote_add(kcov,
kernel/kcov.c
689
kcov_disable(t, kcov);
kernel/kcov.c
696
kcov_get(kcov);
kernel/kcov.c
705
struct kcov *kcov;
kernel/kcov.c
713
kcov = filep->private_data;
kernel/kcov.c
729
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
730
if (kcov->mode != KCOV_MODE_DISABLED) {
kernel/kcov.c
731
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
735
kcov->area = area;
kernel/kcov.c
736
kcov->size = size;
kernel/kcov.c
737
kcov->mode = KCOV_MODE_INIT;
kernel/kcov.c
738
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
762
spin_lock_irqsave(&kcov->lock, flags);
kernel/kcov.c
763
res = kcov_ioctl_locked(kcov, cmd, arg);
kernel/kcov.c
764
spin_unlock_irqrestore(&kcov->lock, flags);
kernel/kcov.c
83
struct kcov *kcov;
kernel/kcov.c
839
data->saved_kcov = t->kcov;
kernel/kcov.c
865
struct kcov *kcov;
kernel/kcov.c
907
kcov = remote->kcov;
kernel/kcov.c
909
kcov_get(kcov);
kernel/kcov.c
916
mode = context_unsafe(kcov->mode);
kernel/kcov.c
917
sequence = kcov->sequence;
kernel/kcov.c
919
size = kcov->remote_size;
kernel/kcov.c
932
kcov_put(kcov);
kernel/kcov.c
945
kcov_start(t, kcov, size, area, mode, sequence);
kernel/kcov.c
98
struct kcov *saved_kcov;