dumper 75 arch/powerpc/kernel/nvram_64.c static void oops_to_nvram(struct kmsg_dumper *dumper, dumper 645 arch/powerpc/kernel/nvram_64.c static void oops_to_nvram(struct kmsg_dumper *dumper, dumper 686 arch/powerpc/kernel/nvram_64.c kmsg_dump_get_buffer(dumper, false, dumper 691 arch/powerpc/kernel/nvram_64.c kmsg_dump_rewind(dumper); dumper 692 arch/powerpc/kernel/nvram_64.c kmsg_dump_get_buffer(dumper, false, dumper 22 arch/powerpc/platforms/powernv/opal-kmsg.c static void kmsg_dump_opal_console_flush(struct kmsg_dumper *dumper, dumper 2891 arch/powerpc/xmon/xmon.c struct kmsg_dumper dumper = { .active = 1 }; dumper 2903 arch/powerpc/xmon/xmon.c kmsg_dump_rewind_nolock(&dumper); dumper 2905 arch/powerpc/xmon/xmon.c while (kmsg_dump_get_line_nolock(&dumper, false, buf, sizeof(buf), &len)) { dumper 8 arch/um/kernel/kmsg_dump.c static void kmsg_dumper_stdout(struct kmsg_dumper *dumper, dumper 29 arch/um/kernel/kmsg_dump.c while (kmsg_dump_get_line(dumper, true, line, sizeof(line), &len)) { dumper 1147 drivers/gpu/drm/msm/adreno/a5xx_gpu.c struct a5xx_crashdumper *dumper) dumper 1149 drivers/gpu/drm/msm/adreno/a5xx_gpu.c dumper->ptr = msm_gem_kernel_new_locked(gpu->dev, dumper 1151 drivers/gpu/drm/msm/adreno/a5xx_gpu.c &dumper->bo, &dumper->iova); dumper 1153 drivers/gpu/drm/msm/adreno/a5xx_gpu.c if (!IS_ERR(dumper->ptr)) dumper 1154 drivers/gpu/drm/msm/adreno/a5xx_gpu.c msm_gem_object_set_name(dumper->bo, "crashdump"); dumper 1156 drivers/gpu/drm/msm/adreno/a5xx_gpu.c return PTR_ERR_OR_ZERO(dumper->ptr); dumper 1160 drivers/gpu/drm/msm/adreno/a5xx_gpu.c struct a5xx_crashdumper *dumper) dumper 1164 drivers/gpu/drm/msm/adreno/a5xx_gpu.c if (IS_ERR_OR_NULL(dumper->ptr)) dumper 1168 drivers/gpu/drm/msm/adreno/a5xx_gpu.c REG_A5XX_CP_CRASH_SCRIPT_BASE_HI, dumper->iova); dumper 1206 drivers/gpu/drm/msm/adreno/a5xx_gpu.c struct a5xx_crashdumper dumper = { 0 }; dumper 1211 drivers/gpu/drm/msm/adreno/a5xx_gpu.c if (a5xx_crashdumper_init(gpu, &dumper)) dumper 1215 drivers/gpu/drm/msm/adreno/a5xx_gpu.c ptr = dumper.ptr; dumper 1218 drivers/gpu/drm/msm/adreno/a5xx_gpu.c offset = dumper.iova + (256 * SZ_1K); dumper 1249 drivers/gpu/drm/msm/adreno/a5xx_gpu.c if (a5xx_crashdumper_run(gpu, &dumper)) { dumper 1251 drivers/gpu/drm/msm/adreno/a5xx_gpu.c msm_gem_kernel_put(dumper.bo, gpu->aspace, true); dumper 1256 drivers/gpu/drm/msm/adreno/a5xx_gpu.c memcpy(a5xx_state->hlsqregs, dumper.ptr + (256 * SZ_1K), dumper 1259 drivers/gpu/drm/msm/adreno/a5xx_gpu.c msm_gem_kernel_put(dumper.bo, gpu->aspace, true); dumper 113 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 115 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c dumper->ptr = msm_gem_kernel_new_locked(gpu->dev, dumper 117 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c &dumper->bo, &dumper->iova); dumper 119 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (!IS_ERR(dumper->ptr)) dumper 120 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c msm_gem_object_set_name(dumper->bo, "crashdump"); dumper 122 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c return PTR_ERR_OR_ZERO(dumper->ptr); dumper 126 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 133 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (IS_ERR_OR_NULL(dumper->ptr)) dumper 143 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c REG_A6XX_CP_CRASH_SCRIPT_BASE_HI, dumper->iova); dumper 431 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 433 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 *in = dumper->ptr; dumper 434 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 out = dumper->iova + A6XX_CD_DATA_OFFSET; dumper 465 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (a6xx_crashdumper_run(gpu, dumper)) dumper 469 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET, dumper 475 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 491 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c &a6xx_state->dbgahb_clusters[i], dumper); dumper 499 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 501 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 *in = dumper->ptr; dumper 502 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 out = dumper->iova + A6XX_CD_DATA_OFFSET; dumper 536 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (a6xx_crashdumper_run(gpu, dumper)) dumper 540 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET, dumper 546 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 560 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c &a6xx_state->clusters[i], dumper); dumper 568 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 570 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 *in = dumper->ptr; dumper 582 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c block->size, dumper->iova + A6XX_CD_DATA_OFFSET); dumper 587 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (a6xx_crashdumper_run(gpu, dumper)) dumper 591 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET, dumper 597 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 611 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c &a6xx_state->shaders[i], dumper); dumper 619 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 622 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 *in = dumper->ptr; dumper 623 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 out = dumper->iova + A6XX_CD_DATA_OFFSET; dumper 644 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (a6xx_crashdumper_run(gpu, dumper)) dumper 648 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET, dumper 657 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 660 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 *in = dumper->ptr; dumper 661 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c u64 out = dumper->iova + A6XX_CD_DATA_OFFSET; dumper 682 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (a6xx_crashdumper_run(gpu, dumper)) dumper 686 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET, dumper 775 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper *dumper) dumper 799 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c dumper); dumper 805 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c dumper); dumper 867 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c struct a6xx_crashdumper dumper = { 0 }; dumper 891 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c if (!a6xx_crashdumper_init(gpu, &dumper)) { dumper 892 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c a6xx_get_registers(gpu, a6xx_state, &dumper); dumper 893 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c a6xx_get_shaders(gpu, a6xx_state, &dumper); dumper 894 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c a6xx_get_clusters(gpu, a6xx_state, &dumper); dumper 895 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c a6xx_get_dbgahb_clusters(gpu, a6xx_state, &dumper); dumper 897 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c msm_gem_kernel_put(dumper.bo, gpu->aspace, true); dumper 1295 drivers/hv/vmbus_drv.c static void hv_kmsg_dump(struct kmsg_dumper *dumper, dumper 1311 drivers/hv/vmbus_drv.c kmsg_dump_get_buffer(dumper, true, hv_panic_page, PAGE_SIZE, dumper 269 drivers/mtd/mtdoops.c static void mtdoops_do_dump(struct kmsg_dumper *dumper, dumper 272 drivers/mtd/mtdoops.c struct mtdoops_context *cxt = container_of(dumper, dumper 279 drivers/mtd/mtdoops.c kmsg_dump_get_buffer(dumper, true, cxt->oops_buf + MTDOOPS_HEADER_SIZE, dumper 1809 fs/binfmt_elf.c for (ct = &dump_task->mm->core_state->dumper; ct; ct = ct->next) { dumper 2019 fs/binfmt_elf.c for (ct = current->mm->core_state->dumper.next; dumper 1612 fs/binfmt_elf_fdpic.c for (ct = current->mm->core_state->dumper.next; dumper 445 fs/coredump.c core_state->dumper.task = tsk; dumper 446 fs/coredump.c core_state->dumper.next = NULL; dumper 466 fs/coredump.c ptr = core_state->dumper.next; dumper 488 fs/coredump.c next = mm->core_state->dumper.next; dumper 388 fs/pstore/platform.c static void pstore_dump(struct kmsg_dumper *dumper, dumper 441 fs/pstore/platform.c if (!kmsg_dump_get_buffer(dumper, true, dst + header_size, dumper 43 include/linux/kmsg_dump.h void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason); dumper 58 include/linux/kmsg_dump.h bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, dumper 61 include/linux/kmsg_dump.h bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, dumper 64 include/linux/kmsg_dump.h bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, dumper 67 include/linux/kmsg_dump.h void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper); dumper 69 include/linux/kmsg_dump.h void kmsg_dump_rewind(struct kmsg_dumper *dumper); dumper 71 include/linux/kmsg_dump.h int kmsg_dump_register(struct kmsg_dumper *dumper); dumper 73 include/linux/kmsg_dump.h int kmsg_dump_unregister(struct kmsg_dumper *dumper); dumper 79 include/linux/kmsg_dump.h static inline bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, dumper 86 include/linux/kmsg_dump.h static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, dumper 92 include/linux/kmsg_dump.h static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, dumper 98 include/linux/kmsg_dump.h static inline void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) dumper 102 include/linux/kmsg_dump.h static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper) dumper 106 include/linux/kmsg_dump.h static inline int kmsg_dump_register(struct kmsg_dumper *dumper) dumper 111 include/linux/kmsg_dump.h static inline int kmsg_dump_unregister(struct kmsg_dumper *dumper) dumper 365 include/linux/mm_types.h struct core_thread dumper; dumper 2100 kernel/debug/kdb/kdb_main.c struct kmsg_dumper dumper = { .active = 1 }; dumper 2125 kernel/debug/kdb/kdb_main.c kmsg_dump_rewind_nolock(&dumper); dumper 2126 kernel/debug/kdb/kdb_main.c while (kmsg_dump_get_line_nolock(&dumper, 1, NULL, 0, NULL)) dumper 2158 kernel/debug/kdb/kdb_main.c kmsg_dump_rewind_nolock(&dumper); dumper 2159 kernel/debug/kdb/kdb_main.c while (kmsg_dump_get_line_nolock(&dumper, 1, buf, sizeof(buf), &len)) { dumper 459 kernel/exit.c self.next = xchg(&core_state->dumper.next, &self); dumper 3088 kernel/printk/printk.c int kmsg_dump_register(struct kmsg_dumper *dumper) dumper 3094 kernel/printk/printk.c if (!dumper->dump) dumper 3099 kernel/printk/printk.c if (!dumper->registered) { dumper 3100 kernel/printk/printk.c dumper->registered = 1; dumper 3101 kernel/printk/printk.c list_add_tail_rcu(&dumper->list, &dump_list); dumper 3117 kernel/printk/printk.c int kmsg_dump_unregister(struct kmsg_dumper *dumper) dumper 3123 kernel/printk/printk.c if (dumper->registered) { dumper 3124 kernel/printk/printk.c dumper->registered = 0; dumper 3125 kernel/printk/printk.c list_del_rcu(&dumper->list); dumper 3148 kernel/printk/printk.c struct kmsg_dumper *dumper; dumper 3155 kernel/printk/printk.c list_for_each_entry_rcu(dumper, &dump_list, list) { dumper 3156 kernel/printk/printk.c if (dumper->max_reason && reason > dumper->max_reason) dumper 3160 kernel/printk/printk.c dumper->active = true; dumper 3163 kernel/printk/printk.c dumper->cur_seq = clear_seq; dumper 3164 kernel/printk/printk.c dumper->cur_idx = clear_idx; dumper 3165 kernel/printk/printk.c dumper->next_seq = log_next_seq; dumper 3166 kernel/printk/printk.c dumper->next_idx = log_next_idx; dumper 3170 kernel/printk/printk.c dumper->dump(dumper, reason); dumper 3173 kernel/printk/printk.c dumper->active = false; dumper 3197 kernel/printk/printk.c bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, dumper 3204 kernel/printk/printk.c if (!dumper->active) dumper 3207 kernel/printk/printk.c if (dumper->cur_seq < log_first_seq) { dumper 3209 kernel/printk/printk.c dumper->cur_seq = log_first_seq; dumper 3210 kernel/printk/printk.c dumper->cur_idx = log_first_idx; dumper 3214 kernel/printk/printk.c if (dumper->cur_seq >= log_next_seq) dumper 3217 kernel/printk/printk.c msg = log_from_idx(dumper->cur_idx); dumper 3220 kernel/printk/printk.c dumper->cur_idx = log_next(dumper->cur_idx); dumper 3221 kernel/printk/printk.c dumper->cur_seq++; dumper 3246 kernel/printk/printk.c bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, dumper 3253 kernel/printk/printk.c ret = kmsg_dump_get_line_nolock(dumper, syslog, line, size, len); dumper 3279 kernel/printk/printk.c bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, dumper 3291 kernel/printk/printk.c if (!dumper->active) dumper 3295 kernel/printk/printk.c if (dumper->cur_seq < log_first_seq) { dumper 3297 kernel/printk/printk.c dumper->cur_seq = log_first_seq; dumper 3298 kernel/printk/printk.c dumper->cur_idx = log_first_idx; dumper 3302 kernel/printk/printk.c if (dumper->cur_seq >= dumper->next_seq) { dumper 3308 kernel/printk/printk.c seq = dumper->cur_seq; dumper 3309 kernel/printk/printk.c idx = dumper->cur_idx; dumper 3310 kernel/printk/printk.c while (seq < dumper->next_seq) { dumper 3319 kernel/printk/printk.c seq = dumper->cur_seq; dumper 3320 kernel/printk/printk.c idx = dumper->cur_idx; dumper 3321 kernel/printk/printk.c while (l >= size && seq < dumper->next_seq) { dumper 3334 kernel/printk/printk.c while (seq < dumper->next_seq) { dumper 3342 kernel/printk/printk.c dumper->next_seq = next_seq; dumper 3343 kernel/printk/printk.c dumper->next_idx = next_idx; dumper 3363 kernel/printk/printk.c void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) dumper 3365 kernel/printk/printk.c dumper->cur_seq = clear_seq; dumper 3366 kernel/printk/printk.c dumper->cur_idx = clear_idx; dumper 3367 kernel/printk/printk.c dumper->next_seq = log_next_seq; dumper 3368 kernel/printk/printk.c dumper->next_idx = log_next_idx; dumper 3379 kernel/printk/printk.c void kmsg_dump_rewind(struct kmsg_dumper *dumper) dumper 3384 kernel/printk/printk.c kmsg_dump_rewind_nolock(dumper);