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);