Lines Matching refs:cxt
122 struct ramoops_context *cxt = psi->data; in ramoops_pstore_open() local
124 cxt->dump_read_cnt = 0; in ramoops_pstore_open()
125 cxt->console_read_cnt = 0; in ramoops_pstore_open()
126 cxt->ftrace_read_cnt = 0; in ramoops_pstore_open()
127 cxt->pmsg_read_cnt = 0; in ramoops_pstore_open()
194 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_read_for_boot_log() local
197 if (!cxt) in ramoops_pstore_read_for_boot_log()
200 prz = cxt->boot_przs[record->id]; in ramoops_pstore_read_for_boot_log()
216 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_read() local
231 while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) { in ramoops_pstore_read()
232 prz = ramoops_get_next_prz(cxt->dprzs, cxt->dump_read_cnt++, in ramoops_pstore_read()
247 if (!prz_ok(prz) && !cxt->console_read_cnt++) in ramoops_pstore_read()
248 prz = ramoops_get_next_prz(&cxt->cprz, 0 /* single */, record); in ramoops_pstore_read()
250 if (!prz_ok(prz) && !cxt->pmsg_read_cnt++) in ramoops_pstore_read()
251 prz = ramoops_get_next_prz(&cxt->mprz, 0 /* single */, record); in ramoops_pstore_read()
255 if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) && in ramoops_pstore_read()
256 !cxt->ftrace_read_cnt++) { in ramoops_pstore_read()
257 prz = ramoops_get_next_prz(cxt->fprzs, 0 /* single */, in ramoops_pstore_read()
273 while (cxt->ftrace_read_cnt < cxt->max_ftrace_cnt) { in ramoops_pstore_read()
274 prz_next = ramoops_get_next_prz(cxt->fprzs, in ramoops_pstore_read()
275 cxt->ftrace_read_cnt++, record); in ramoops_pstore_read()
299 while (cxt->boot_log_read_cnt < cxt->max_boot_log_cnt && !prz) { in ramoops_pstore_read()
300 prz = ramoops_get_next_prz(cxt->boot_przs, cxt->boot_log_read_cnt++, record); in ramoops_pstore_read()
363 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write() local
368 if (!cxt->cprz) in ramoops_pstore_write()
370 persistent_ram_write(cxt->cprz, record->buf, record->size); in ramoops_pstore_write()
375 if (!cxt->fprzs) in ramoops_pstore_write()
380 if (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_pstore_write()
385 persistent_ram_write(cxt->fprzs[zonenum], record->buf, in ramoops_pstore_write()
415 if (!cxt->dprzs) in ramoops_pstore_write()
418 prz = cxt->dprzs[cxt->dump_write_cnt]; in ramoops_pstore_write()
441 cxt->dump_write_cnt = (cxt->dump_write_cnt + 1) % cxt->max_dump_cnt; in ramoops_pstore_write()
450 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write_user() local
452 if (!cxt->mprz) in ramoops_pstore_write_user()
454 return persistent_ram_write_user(cxt->mprz, buf, record->size); in ramoops_pstore_write_user()
462 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_erase() local
467 if (record->id >= cxt->max_dump_cnt) in ramoops_pstore_erase()
469 prz = cxt->dprzs[record->id]; in ramoops_pstore_erase()
472 prz = cxt->cprz; in ramoops_pstore_erase()
475 if (record->id >= cxt->max_ftrace_cnt) in ramoops_pstore_erase()
477 prz = cxt->fprzs[record->id]; in ramoops_pstore_erase()
480 prz = cxt->mprz; in ramoops_pstore_erase()
504 static void ramoops_free_przs(struct ramoops_context *cxt) in ramoops_free_przs() argument
509 if (cxt->dprzs) { in ramoops_free_przs()
510 for (i = 0; i < cxt->max_dump_cnt; i++) in ramoops_free_przs()
511 persistent_ram_free(cxt->dprzs[i]); in ramoops_free_przs()
513 kfree(cxt->dprzs); in ramoops_free_przs()
514 cxt->max_dump_cnt = 0; in ramoops_free_przs()
518 if (cxt->fprzs) { in ramoops_free_przs()
519 for (i = 0; i < cxt->max_ftrace_cnt; i++) in ramoops_free_przs()
520 persistent_ram_free(cxt->fprzs[i]); in ramoops_free_przs()
521 kfree(cxt->fprzs); in ramoops_free_przs()
522 cxt->max_ftrace_cnt = 0; in ramoops_free_przs()
526 if (cxt->boot_przs) { in ramoops_free_przs()
527 for (i = 0; i < cxt->max_boot_log_cnt; i++) in ramoops_free_przs()
528 persistent_ram_free(cxt->boot_przs[i]); in ramoops_free_przs()
529 kfree(cxt->boot_przs); in ramoops_free_przs()
530 cxt->max_boot_log_cnt = 0; in ramoops_free_przs()
536 struct device *dev, struct ramoops_context *cxt, in ramoops_init_przs() argument
576 if (*paddr + mem_sz - cxt->phys_addr > cxt->size) { in ramoops_init_przs()
580 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_przs()
603 &cxt->ecc_info, in ramoops_init_przs()
604 cxt->memtype, flags, label); in ramoops_init_przs()
632 struct device *dev, struct ramoops_context *cxt, in ramoops_init_prz() argument
641 if (*paddr + sz - cxt->phys_addr > cxt->size) { in ramoops_init_prz()
644 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_prz()
649 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, in ramoops_init_prz()
650 cxt->memtype, PRZ_FLAG_ZAP_OLD, label); in ramoops_init_prz()
797 static void ramoops_register_ram_zone_info_to_minidump(struct ramoops_context *cxt) in ramoops_register_ram_zone_info_to_minidump() argument
802 for (i = 0; i < cxt->max_boot_log_cnt; i++) { in ramoops_register_ram_zone_info_to_minidump()
803 prz = cxt->boot_przs[i]; in ramoops_register_ram_zone_info_to_minidump()
807 for (i = 0; i < cxt->max_dump_cnt; i++) { in ramoops_register_ram_zone_info_to_minidump()
808 prz = cxt->dprzs[i]; in ramoops_register_ram_zone_info_to_minidump()
812 for (i = 0; i < cxt->max_ftrace_cnt; i++) { in ramoops_register_ram_zone_info_to_minidump()
813 prz = cxt->fprzs[i]; in ramoops_register_ram_zone_info_to_minidump()
817 prz = cxt->cprz; in ramoops_register_ram_zone_info_to_minidump()
820 prz = cxt->mprz; in ramoops_register_ram_zone_info_to_minidump()
830 struct ramoops_context *cxt = &oops_cxt; in ramoops_probe() local
840 if (cxt->max_dump_cnt) { in ramoops_probe()
887 cxt->size = pdata->mem_size; in ramoops_probe()
888 cxt->phys_addr = pdata->mem_address; in ramoops_probe()
889 cxt->memtype = pdata->mem_type; in ramoops_probe()
890 cxt->record_size = pdata->record_size; in ramoops_probe()
891 cxt->console_size = pdata->console_size; in ramoops_probe()
892 cxt->ftrace_size = pdata->ftrace_size; in ramoops_probe()
893 cxt->pmsg_size = pdata->pmsg_size; in ramoops_probe()
894 cxt->flags = pdata->flags; in ramoops_probe()
895 cxt->ecc_info = pdata->ecc_info; in ramoops_probe()
897 cxt->boot_log_size = pdata->boot_log_size; in ramoops_probe()
898 cxt->max_boot_log_cnt = pdata->max_boot_log_cnt; in ramoops_probe()
901 paddr = cxt->phys_addr; in ramoops_probe()
903 dump_mem_sz = cxt->size - cxt->console_size - cxt->ftrace_size in ramoops_probe()
904 - cxt->pmsg_size; in ramoops_probe()
906 dump_mem_sz -= cxt->boot_log_size; in ramoops_probe()
910 err = ramoops_init_przs("boot-log", dev, cxt, &cxt->boot_przs, &paddr, in ramoops_probe()
911 cxt->boot_log_size, -1, in ramoops_probe()
912 &cxt->max_boot_log_cnt, 0, 0); in ramoops_probe()
915 if (cxt->boot_log_size > 0) in ramoops_probe()
916 for (i = 0; i < cxt->max_boot_log_cnt; i++) in ramoops_probe()
917 pr_info("boot-log-%d\t0x%zx@%pa\n", i, cxt->boot_przs[i]->size, &cxt->boot_przs[i]->paddr); in ramoops_probe()
920 err = ramoops_init_przs("dmesg", dev, cxt, &cxt->dprzs, &paddr, in ramoops_probe()
921 dump_mem_sz, cxt->record_size, in ramoops_probe()
922 &cxt->max_dump_cnt, 0, 0); in ramoops_probe()
925 if (cxt->record_size > 0) in ramoops_probe()
926 for (i = 0; i < cxt->max_dump_cnt; i++) in ramoops_probe()
927 pr_info("dmesg-%d\t0x%zx@%pa\n", i, cxt->dprzs[i]->size, &cxt->dprzs[i]->paddr); in ramoops_probe()
929 err = ramoops_init_prz("console", dev, cxt, &cxt->cprz, &paddr, in ramoops_probe()
930 cxt->console_size, 0); in ramoops_probe()
933 if (cxt->console_size > 0) in ramoops_probe()
934 pr_info("console\t0x%zx@%pa\n", cxt->cprz->size, &cxt->cprz->paddr); in ramoops_probe()
936 cxt->max_ftrace_cnt = (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
939 err = ramoops_init_przs("ftrace", dev, cxt, &cxt->fprzs, &paddr, in ramoops_probe()
940 cxt->ftrace_size, -1, in ramoops_probe()
941 &cxt->max_ftrace_cnt, LINUX_VERSION_CODE, in ramoops_probe()
942 (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
946 if (cxt->ftrace_size > 0) in ramoops_probe()
947 for (i = 0; i < cxt->max_ftrace_cnt; i++) in ramoops_probe()
948 pr_info("ftrace-%d\t0x%zx@%pa\n", i, cxt->fprzs[i]->size, &cxt->fprzs[i]->paddr); in ramoops_probe()
950 err = ramoops_init_prz("pmsg", dev, cxt, &cxt->mprz, &paddr, in ramoops_probe()
951 cxt->pmsg_size, 0); in ramoops_probe()
954 if (cxt->pmsg_size > 0) in ramoops_probe()
955 pr_info("pmsg\t0x%zx@%pa\n", cxt->mprz->size, &cxt->mprz->paddr); in ramoops_probe()
957 cxt->pstore.data = cxt; in ramoops_probe()
964 cxt->pstore.flags = 0; in ramoops_probe()
965 if (cxt->max_dump_cnt) { in ramoops_probe()
966 cxt->pstore.flags |= PSTORE_FLAGS_DMESG; in ramoops_probe()
967 cxt->pstore.max_reason = pdata->max_reason; in ramoops_probe()
969 if (cxt->console_size) in ramoops_probe()
970 cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE; in ramoops_probe()
971 if (cxt->max_ftrace_cnt) in ramoops_probe()
972 cxt->pstore.flags |= PSTORE_FLAGS_FTRACE; in ramoops_probe()
973 if (cxt->pmsg_size) in ramoops_probe()
974 cxt->pstore.flags |= PSTORE_FLAGS_PMSG; in ramoops_probe()
976 if (cxt->boot_log_size) in ramoops_probe()
977 cxt->pstore.flags |= PSTORE_FLAGS_BOOT_LOG; in ramoops_probe()
985 if (cxt->pstore.flags & PSTORE_FLAGS_DMESG) { in ramoops_probe()
986 cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size; in ramoops_probe()
987 cxt->pstore.buf = kzalloc(cxt->pstore.bufsize, GFP_KERNEL); in ramoops_probe()
988 if (!cxt->pstore.buf) { in ramoops_probe()
995 err = pstore_register(&cxt->pstore); in ramoops_probe()
1013 ramoops_register_ram_zone_info_to_minidump(cxt); in ramoops_probe()
1016 cxt->size, (unsigned long long)cxt->phys_addr, in ramoops_probe()
1017 cxt->ecc_info.ecc_size); in ramoops_probe()
1022 kfree(cxt->pstore.buf); in ramoops_probe()
1024 cxt->pstore.bufsize = 0; in ramoops_probe()
1025 persistent_ram_free(cxt->mprz); in ramoops_probe()
1028 persistent_ram_free(cxt->cprz); in ramoops_probe()
1030 ramoops_free_przs(cxt); in ramoops_probe()
1037 struct ramoops_context *cxt = &oops_cxt; in ramoops_remove() local
1039 pstore_unregister(&cxt->pstore); in ramoops_remove()
1041 kfree(cxt->pstore.buf); in ramoops_remove()
1042 cxt->pstore.bufsize = 0; in ramoops_remove()
1044 persistent_ram_free(cxt->mprz); in ramoops_remove()
1045 persistent_ram_free(cxt->cprz); in ramoops_remove()
1046 ramoops_free_przs(cxt); in ramoops_remove()