Lines Matching refs:cxt
102 struct ramoops_context *cxt = psi->data; in ramoops_pstore_open() local
104 cxt->dump_read_cnt = 0; in ramoops_pstore_open()
105 cxt->console_read_cnt = 0; in ramoops_pstore_open()
106 cxt->ftrace_read_cnt = 0; in ramoops_pstore_open()
107 cxt->pmsg_read_cnt = 0; in ramoops_pstore_open()
226 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_read() local
241 while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) { in ramoops_pstore_read()
242 prz = ramoops_get_next_prz(cxt->dprzs, cxt->dump_read_cnt++, in ramoops_pstore_read()
257 if (!prz_ok(prz) && !cxt->console_read_cnt++) in ramoops_pstore_read()
258 prz = ramoops_get_next_prz(&cxt->cprz, 0 /* single */, record); in ramoops_pstore_read()
260 if (!prz_ok(prz) && !cxt->pmsg_read_cnt++) in ramoops_pstore_read()
261 prz = ramoops_get_next_prz(&cxt->mprz, 0 /* single */, record); in ramoops_pstore_read()
265 if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) && in ramoops_pstore_read()
266 !cxt->ftrace_read_cnt++) { in ramoops_pstore_read()
267 prz = ramoops_get_next_prz(cxt->fprzs, 0 /* single */, in ramoops_pstore_read()
283 while (cxt->ftrace_read_cnt < cxt->max_ftrace_cnt) { in ramoops_pstore_read()
284 prz_next = ramoops_get_next_prz(cxt->fprzs, in ramoops_pstore_read()
285 cxt->ftrace_read_cnt++, record); in ramoops_pstore_read()
351 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write() local
356 if (!cxt->cprz) in ramoops_pstore_write()
358 persistent_ram_write(cxt->cprz, record->buf, record->size); in ramoops_pstore_write()
363 if (!cxt->fprzs) in ramoops_pstore_write()
368 if (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_pstore_write()
373 persistent_ram_write(cxt->fprzs[zonenum], record->buf, in ramoops_pstore_write()
393 if (record->reason == KMSG_DUMP_OOPS && !cxt->dump_oops) in ramoops_pstore_write()
405 if (!cxt->dprzs) in ramoops_pstore_write()
408 prz = cxt->dprzs[cxt->dump_write_cnt]; in ramoops_pstore_write()
420 cxt->dump_write_cnt = (cxt->dump_write_cnt + 1) % cxt->max_dump_cnt; in ramoops_pstore_write()
429 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write_user() local
431 if (!cxt->mprz) in ramoops_pstore_write_user()
433 return persistent_ram_write_user(cxt->mprz, buf, record->size); in ramoops_pstore_write_user()
441 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_erase() local
446 if (record->id >= cxt->max_dump_cnt) in ramoops_pstore_erase()
448 prz = cxt->dprzs[record->id]; in ramoops_pstore_erase()
451 prz = cxt->cprz; in ramoops_pstore_erase()
454 if (record->id >= cxt->max_ftrace_cnt) in ramoops_pstore_erase()
456 prz = cxt->fprzs[record->id]; in ramoops_pstore_erase()
459 prz = cxt->mprz; in ramoops_pstore_erase()
483 static void ramoops_free_przs(struct ramoops_context *cxt) in ramoops_free_przs() argument
488 if (cxt->dprzs) { in ramoops_free_przs()
489 for (i = 0; i < cxt->max_dump_cnt; i++) in ramoops_free_przs()
490 persistent_ram_free(cxt->dprzs[i]); in ramoops_free_przs()
492 kfree(cxt->dprzs); in ramoops_free_przs()
493 cxt->max_dump_cnt = 0; in ramoops_free_przs()
497 if (cxt->fprzs) { in ramoops_free_przs()
498 for (i = 0; i < cxt->max_ftrace_cnt; i++) in ramoops_free_przs()
499 persistent_ram_free(cxt->fprzs[i]); in ramoops_free_przs()
500 kfree(cxt->fprzs); in ramoops_free_przs()
501 cxt->max_ftrace_cnt = 0; in ramoops_free_przs()
506 struct device *dev, struct ramoops_context *cxt, in ramoops_init_przs() argument
546 if (*paddr + mem_sz - cxt->phys_addr > cxt->size) { in ramoops_init_przs()
550 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_przs()
573 &cxt->ecc_info, in ramoops_init_przs()
574 cxt->memtype, flags, label); in ramoops_init_przs()
601 struct device *dev, struct ramoops_context *cxt, in ramoops_init_prz() argument
610 if (*paddr + sz - cxt->phys_addr > cxt->size) { in ramoops_init_prz()
613 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_prz()
618 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, in ramoops_init_prz()
619 cxt->memtype, PRZ_FLAG_ZAP_OLD, label); in ramoops_init_prz()
723 struct ramoops_context *cxt = &oops_cxt; in ramoops_probe() local
732 if (cxt->max_dump_cnt) { in ramoops_probe()
768 cxt->size = pdata->mem_size; in ramoops_probe()
769 cxt->phys_addr = pdata->mem_address; in ramoops_probe()
770 cxt->memtype = pdata->mem_type; in ramoops_probe()
771 cxt->record_size = pdata->record_size; in ramoops_probe()
772 cxt->console_size = pdata->console_size; in ramoops_probe()
773 cxt->ftrace_size = pdata->ftrace_size; in ramoops_probe()
774 cxt->pmsg_size = pdata->pmsg_size; in ramoops_probe()
775 cxt->dump_oops = pdata->dump_oops; in ramoops_probe()
776 cxt->flags = pdata->flags; in ramoops_probe()
777 cxt->ecc_info = pdata->ecc_info; in ramoops_probe()
779 paddr = cxt->phys_addr; in ramoops_probe()
781 dump_mem_sz = cxt->size - cxt->console_size - cxt->ftrace_size in ramoops_probe()
782 - cxt->pmsg_size; in ramoops_probe()
783 err = ramoops_init_przs("dmesg", dev, cxt, &cxt->dprzs, &paddr, in ramoops_probe()
784 dump_mem_sz, cxt->record_size, in ramoops_probe()
785 &cxt->max_dump_cnt, 0, 0); in ramoops_probe()
789 err = ramoops_init_prz("console", dev, cxt, &cxt->cprz, &paddr, in ramoops_probe()
790 cxt->console_size, 0); in ramoops_probe()
794 cxt->max_ftrace_cnt = (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
797 err = ramoops_init_przs("ftrace", dev, cxt, &cxt->fprzs, &paddr, in ramoops_probe()
798 cxt->ftrace_size, -1, in ramoops_probe()
799 &cxt->max_ftrace_cnt, LINUX_VERSION_CODE, in ramoops_probe()
800 (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
805 err = ramoops_init_prz("pmsg", dev, cxt, &cxt->mprz, &paddr, in ramoops_probe()
806 cxt->pmsg_size, 0); in ramoops_probe()
810 cxt->pstore.data = cxt; in ramoops_probe()
817 cxt->pstore.flags = 0; in ramoops_probe()
818 if (cxt->max_dump_cnt) in ramoops_probe()
819 cxt->pstore.flags |= PSTORE_FLAGS_DMESG; in ramoops_probe()
820 if (cxt->console_size) in ramoops_probe()
821 cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE; in ramoops_probe()
822 if (cxt->max_ftrace_cnt) in ramoops_probe()
823 cxt->pstore.flags |= PSTORE_FLAGS_FTRACE; in ramoops_probe()
824 if (cxt->pmsg_size) in ramoops_probe()
825 cxt->pstore.flags |= PSTORE_FLAGS_PMSG; in ramoops_probe()
832 if (cxt->pstore.flags & PSTORE_FLAGS_DMESG) { in ramoops_probe()
833 cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size; in ramoops_probe()
834 cxt->pstore.buf = kzalloc(cxt->pstore.bufsize, GFP_KERNEL); in ramoops_probe()
835 if (!cxt->pstore.buf) { in ramoops_probe()
842 err = pstore_register(&cxt->pstore); in ramoops_probe()
861 cxt->size, (unsigned long long)cxt->phys_addr, in ramoops_probe()
862 cxt->ecc_info.ecc_size); in ramoops_probe()
867 kfree(cxt->pstore.buf); in ramoops_probe()
869 cxt->pstore.bufsize = 0; in ramoops_probe()
870 persistent_ram_free(cxt->mprz); in ramoops_probe()
873 persistent_ram_free(cxt->cprz); in ramoops_probe()
875 ramoops_free_przs(cxt); in ramoops_probe()
882 struct ramoops_context *cxt = &oops_cxt; in ramoops_remove() local
884 pstore_unregister(&cxt->pstore); in ramoops_remove()
886 kfree(cxt->pstore.buf); in ramoops_remove()
887 cxt->pstore.bufsize = 0; in ramoops_remove()
889 persistent_ram_free(cxt->mprz); in ramoops_remove()
890 persistent_ram_free(cxt->cprz); in ramoops_remove()
891 ramoops_free_przs(cxt); in ramoops_remove()