kcov             1218 include/linux/sched.h 	struct kcov			*kcov;
kcov              230 kernel/kcov.c  static void kcov_get(struct kcov *kcov)
kcov              232 kernel/kcov.c  	refcount_inc(&kcov->refcount);
kcov              235 kernel/kcov.c  static void kcov_put(struct kcov *kcov)
kcov              237 kernel/kcov.c  	if (refcount_dec_and_test(&kcov->refcount)) {
kcov              238 kernel/kcov.c  		vfree(kcov->area);
kcov              239 kernel/kcov.c  		kfree(kcov);
kcov              249 kernel/kcov.c  	t->kcov = NULL;
kcov              254 kernel/kcov.c  	struct kcov *kcov;
kcov              256 kernel/kcov.c  	kcov = t->kcov;
kcov              257 kernel/kcov.c  	if (kcov == NULL)
kcov              259 kernel/kcov.c  	spin_lock(&kcov->lock);
kcov              260 kernel/kcov.c  	if (WARN_ON(kcov->t != t)) {
kcov              261 kernel/kcov.c  		spin_unlock(&kcov->lock);
kcov              266 kernel/kcov.c  	kcov->t = NULL;
kcov              267 kernel/kcov.c  	kcov->mode = KCOV_MODE_INIT;
kcov              268 kernel/kcov.c  	spin_unlock(&kcov->lock);
kcov              269 kernel/kcov.c  	kcov_put(kcov);
kcov              276 kernel/kcov.c  	struct kcov *kcov = vma->vm_file->private_data;
kcov              284 kernel/kcov.c  	spin_lock(&kcov->lock);
kcov              285 kernel/kcov.c  	size = kcov->size * sizeof(unsigned long);
kcov              286 kernel/kcov.c  	if (kcov->mode != KCOV_MODE_INIT || vma->vm_pgoff != 0 ||
kcov              291 kernel/kcov.c  	if (!kcov->area) {
kcov              292 kernel/kcov.c  		kcov->area = area;
kcov              294 kernel/kcov.c  		spin_unlock(&kcov->lock);
kcov              296 kernel/kcov.c  			page = vmalloc_to_page(kcov->area + off);
kcov              303 kernel/kcov.c  	spin_unlock(&kcov->lock);
kcov              310 kernel/kcov.c  	struct kcov *kcov;
kcov              312 kernel/kcov.c  	kcov = kzalloc(sizeof(*kcov), GFP_KERNEL);
kcov              313 kernel/kcov.c  	if (!kcov)
kcov              315 kernel/kcov.c  	kcov->mode = KCOV_MODE_DISABLED;
kcov              316 kernel/kcov.c  	refcount_set(&kcov->refcount, 1);
kcov              317 kernel/kcov.c  	spin_lock_init(&kcov->lock);
kcov              318 kernel/kcov.c  	filep->private_data = kcov;
kcov              333 kernel/kcov.c  static void kcov_fault_in_area(struct kcov *kcov)
kcov              336 kernel/kcov.c  	unsigned long *area = kcov->area;
kcov              339 kernel/kcov.c  	for (offset = 0; offset < kcov->size; offset += stride)
kcov              343 kernel/kcov.c  static int kcov_ioctl_locked(struct kcov *kcov, unsigned int cmd,
kcov              355 kernel/kcov.c  		if (kcov->mode != KCOV_MODE_DISABLED)
kcov              365 kernel/kcov.c  		kcov->size = size;
kcov              366 kernel/kcov.c  		kcov->mode = KCOV_MODE_INIT;
kcov              376 kernel/kcov.c  		if (kcov->mode != KCOV_MODE_INIT || !kcov->area)
kcov              379 kernel/kcov.c  		if (kcov->t != NULL || t->kcov != NULL)
kcov              382 kernel/kcov.c  			kcov->mode = KCOV_MODE_TRACE_PC;
kcov              385 kernel/kcov.c  			kcov->mode = KCOV_MODE_TRACE_CMP;
kcov              391 kernel/kcov.c  		kcov_fault_in_area(kcov);
kcov              393 kernel/kcov.c  		t->kcov_size = kcov->size;
kcov              394 kernel/kcov.c  		t->kcov_area = kcov->area;
kcov              397 kernel/kcov.c  		WRITE_ONCE(t->kcov_mode, kcov->mode);
kcov              398 kernel/kcov.c  		t->kcov = kcov;
kcov              399 kernel/kcov.c  		kcov->t = t;
kcov              401 kernel/kcov.c  		kcov_get(kcov);
kcov              406 kernel/kcov.c  		if (unused != 0 || current->kcov != kcov)
kcov              409 kernel/kcov.c  		if (WARN_ON(kcov->t != t))
kcov              412 kernel/kcov.c  		kcov->t = NULL;
kcov              413 kernel/kcov.c  		kcov->mode = KCOV_MODE_INIT;
kcov              414 kernel/kcov.c  		kcov_put(kcov);
kcov              423 kernel/kcov.c  	struct kcov *kcov;
kcov              426 kernel/kcov.c  	kcov = filep->private_data;
kcov              427 kernel/kcov.c  	spin_lock(&kcov->lock);
kcov              428 kernel/kcov.c  	res = kcov_ioctl_locked(kcov, cmd, arg);
kcov              429 kernel/kcov.c  	spin_unlock(&kcov->lock);