Lines Matching refs:cxt

117 	struct ramoops_context *cxt = psi->data;  in ramoops_pstore_open()  local
119 cxt->dump_read_cnt = 0; in ramoops_pstore_open()
120 cxt->console_read_cnt = 0; in ramoops_pstore_open()
121 cxt->ftrace_read_cnt = 0; in ramoops_pstore_open()
122 cxt->pmsg_read_cnt = 0; in ramoops_pstore_open()
242 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_read() local
257 while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) { in ramoops_pstore_read()
258 prz = ramoops_get_next_prz(cxt->dprzs, &cxt->dump_read_cnt, in ramoops_pstore_read()
259 cxt->max_dump_cnt, &record->id, in ramoops_pstore_read()
276 prz = ramoops_get_next_prz(&cxt->cprz, &cxt->console_read_cnt, in ramoops_pstore_read()
281 prz = ramoops_get_next_prz(&cxt->mprz, &cxt->pmsg_read_cnt, in ramoops_pstore_read()
287 if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU)) { in ramoops_pstore_read()
288 prz = ramoops_get_next_prz(cxt->fprzs, in ramoops_pstore_read()
289 &cxt->ftrace_read_cnt, 1, &record->id, in ramoops_pstore_read()
304 while (cxt->ftrace_read_cnt < cxt->max_ftrace_cnt) { in ramoops_pstore_read()
305 prz_next = ramoops_get_next_prz(cxt->fprzs, in ramoops_pstore_read()
306 &cxt->ftrace_read_cnt, in ramoops_pstore_read()
307 cxt->max_ftrace_cnt, in ramoops_pstore_read()
379 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write() local
384 if (!cxt->cprz) in ramoops_pstore_write()
386 persistent_ram_write(cxt->cprz, record->buf, record->size); in ramoops_pstore_write()
391 if (!cxt->fprzs) in ramoops_pstore_write()
396 if (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_pstore_write()
401 persistent_ram_write(cxt->fprzs[zonenum], record->buf, in ramoops_pstore_write()
421 if (record->reason == KMSG_DUMP_OOPS && !cxt->dump_oops) in ramoops_pstore_write()
433 if (!cxt->dprzs) in ramoops_pstore_write()
436 prz = cxt->dprzs[cxt->dump_write_cnt]; in ramoops_pstore_write()
445 cxt->dump_write_cnt = (cxt->dump_write_cnt + 1) % cxt->max_dump_cnt; in ramoops_pstore_write()
454 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write_user() local
456 if (!cxt->mprz) in ramoops_pstore_write_user()
458 return persistent_ram_write_user(cxt->mprz, buf, record->size); in ramoops_pstore_write_user()
466 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_erase() local
471 if (record->id >= cxt->max_dump_cnt) in ramoops_pstore_erase()
473 prz = cxt->dprzs[record->id]; in ramoops_pstore_erase()
476 prz = cxt->cprz; in ramoops_pstore_erase()
479 if (record->id >= cxt->max_ftrace_cnt) in ramoops_pstore_erase()
481 prz = cxt->fprzs[record->id]; in ramoops_pstore_erase()
484 prz = cxt->mprz; in ramoops_pstore_erase()
508 static void ramoops_free_przs(struct ramoops_context *cxt) in ramoops_free_przs() argument
513 if (cxt->dprzs) { in ramoops_free_przs()
514 for (i = 0; i < cxt->max_dump_cnt; i++) in ramoops_free_przs()
515 persistent_ram_free(cxt->dprzs[i]); in ramoops_free_przs()
517 kfree(cxt->dprzs); in ramoops_free_przs()
518 cxt->max_dump_cnt = 0; in ramoops_free_przs()
522 if (cxt->fprzs) { in ramoops_free_przs()
523 for (i = 0; i < cxt->max_ftrace_cnt; i++) in ramoops_free_przs()
524 persistent_ram_free(cxt->fprzs[i]); in ramoops_free_przs()
525 kfree(cxt->fprzs); in ramoops_free_przs()
526 cxt->max_ftrace_cnt = 0; in ramoops_free_przs()
531 struct device *dev, struct ramoops_context *cxt, in ramoops_init_przs() argument
571 if (*paddr + mem_sz - cxt->phys_addr > cxt->size) { in ramoops_init_przs()
575 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_przs()
591 &cxt->ecc_info, in ramoops_init_przs()
592 cxt->memtype, flags); in ramoops_init_przs()
618 struct device *dev, struct ramoops_context *cxt, in ramoops_init_prz() argument
625 if (*paddr + sz - cxt->phys_addr > cxt->size) { in ramoops_init_prz()
628 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_prz()
632 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, in ramoops_init_prz()
633 cxt->memtype, 0); in ramoops_init_prz()
716 struct ramoops_context *cxt = &oops_cxt; in ramoops_probe() local
738 if (cxt->max_dump_cnt) { in ramoops_probe()
765 cxt->size = pdata->mem_size; in ramoops_probe()
766 cxt->phys_addr = pdata->mem_address; in ramoops_probe()
767 cxt->memtype = pdata->mem_type; in ramoops_probe()
768 cxt->record_size = pdata->record_size; in ramoops_probe()
769 cxt->console_size = pdata->console_size; in ramoops_probe()
770 cxt->ftrace_size = pdata->ftrace_size; in ramoops_probe()
771 cxt->pmsg_size = pdata->pmsg_size; in ramoops_probe()
772 cxt->dump_oops = pdata->dump_oops; in ramoops_probe()
773 cxt->flags = pdata->flags; in ramoops_probe()
774 cxt->ecc_info = pdata->ecc_info; in ramoops_probe()
776 paddr = cxt->phys_addr; in ramoops_probe()
778 dump_mem_sz = cxt->size - cxt->console_size - cxt->ftrace_size in ramoops_probe()
779 - cxt->pmsg_size; in ramoops_probe()
780 err = ramoops_init_przs("dump", dev, cxt, &cxt->dprzs, &paddr, in ramoops_probe()
781 dump_mem_sz, cxt->record_size, in ramoops_probe()
782 &cxt->max_dump_cnt, 0, 0); in ramoops_probe()
786 err = ramoops_init_prz("console", dev, cxt, &cxt->cprz, &paddr, in ramoops_probe()
787 cxt->console_size, 0); in ramoops_probe()
791 cxt->max_ftrace_cnt = (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
794 err = ramoops_init_przs("ftrace", dev, cxt, &cxt->fprzs, &paddr, in ramoops_probe()
795 cxt->ftrace_size, -1, in ramoops_probe()
796 &cxt->max_ftrace_cnt, LINUX_VERSION_CODE, in ramoops_probe()
797 (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
802 err = ramoops_init_prz("pmsg", dev, cxt, &cxt->mprz, &paddr, in ramoops_probe()
803 cxt->pmsg_size, 0); in ramoops_probe()
807 cxt->pstore.data = cxt; in ramoops_probe()
814 if (cxt->console_size) in ramoops_probe()
815 cxt->pstore.bufsize = 1024; /* LOG_LINE_MAX */ in ramoops_probe()
816 cxt->pstore.bufsize = max(cxt->record_size, cxt->pstore.bufsize); in ramoops_probe()
817 cxt->pstore.buf = kmalloc(cxt->pstore.bufsize, GFP_KERNEL); in ramoops_probe()
818 if (!cxt->pstore.buf) { in ramoops_probe()
823 spin_lock_init(&cxt->pstore.buf_lock); in ramoops_probe()
825 cxt->pstore.flags = PSTORE_FLAGS_DMESG; in ramoops_probe()
826 if (cxt->console_size) in ramoops_probe()
827 cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE; in ramoops_probe()
828 if (cxt->ftrace_size) in ramoops_probe()
829 cxt->pstore.flags |= PSTORE_FLAGS_FTRACE; in ramoops_probe()
830 if (cxt->pmsg_size) in ramoops_probe()
831 cxt->pstore.flags |= PSTORE_FLAGS_PMSG; in ramoops_probe()
833 err = pstore_register(&cxt->pstore); in ramoops_probe()
852 cxt->size, (unsigned long long)cxt->phys_addr, in ramoops_probe()
853 cxt->ecc_info.ecc_size, cxt->ecc_info.block_size); in ramoops_probe()
858 kfree(cxt->pstore.buf); in ramoops_probe()
860 cxt->pstore.bufsize = 0; in ramoops_probe()
861 persistent_ram_free(cxt->mprz); in ramoops_probe()
864 persistent_ram_free(cxt->cprz); in ramoops_probe()
866 ramoops_free_przs(cxt); in ramoops_probe()
873 struct ramoops_context *cxt = &oops_cxt; in ramoops_remove() local
875 pstore_unregister(&cxt->pstore); in ramoops_remove()
877 kfree(cxt->pstore.buf); in ramoops_remove()
878 cxt->pstore.bufsize = 0; in ramoops_remove()
880 persistent_ram_free(cxt->mprz); in ramoops_remove()
881 persistent_ram_free(cxt->cprz); in ramoops_remove()
882 ramoops_free_przs(cxt); in ramoops_remove()