Lines Matching refs:cxt
109 struct ramoops_context *cxt = psi->data; in ramoops_pstore_open() local
111 cxt->dump_read_cnt = 0; in ramoops_pstore_open()
112 cxt->console_read_cnt = 0; in ramoops_pstore_open()
113 cxt->ftrace_read_cnt = 0; in ramoops_pstore_open()
114 cxt->pmsg_read_cnt = 0; in ramoops_pstore_open()
181 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_read() local
196 while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) { in ramoops_pstore_read()
197 prz = ramoops_get_next_prz(cxt->dprzs, cxt->dump_read_cnt++, in ramoops_pstore_read()
212 if (!prz_ok(prz) && !cxt->console_read_cnt++) in ramoops_pstore_read()
213 prz = ramoops_get_next_prz(&cxt->cprz, 0 /* single */, record); in ramoops_pstore_read()
215 if (!prz_ok(prz) && !cxt->pmsg_read_cnt++) in ramoops_pstore_read()
216 prz = ramoops_get_next_prz(&cxt->mprz, 0 /* single */, record); in ramoops_pstore_read()
220 if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) && in ramoops_pstore_read()
221 !cxt->ftrace_read_cnt++) { in ramoops_pstore_read()
222 prz = ramoops_get_next_prz(cxt->fprzs, 0 /* single */, in ramoops_pstore_read()
238 while (cxt->ftrace_read_cnt < cxt->max_ftrace_cnt) { in ramoops_pstore_read()
239 prz_next = ramoops_get_next_prz(cxt->fprzs, in ramoops_pstore_read()
240 cxt->ftrace_read_cnt++, record); in ramoops_pstore_read()
311 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write() local
316 if (!cxt->cprz) in ramoops_pstore_write()
318 persistent_ram_write(cxt->cprz, record->buf, record->size); in ramoops_pstore_write()
323 if (!cxt->fprzs) in ramoops_pstore_write()
328 if (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_pstore_write()
333 persistent_ram_write(cxt->fprzs[zonenum], record->buf, in ramoops_pstore_write()
363 if (!cxt->dprzs) in ramoops_pstore_write()
366 prz = cxt->dprzs[cxt->dump_write_cnt]; in ramoops_pstore_write()
389 cxt->dump_write_cnt = (cxt->dump_write_cnt + 1) % cxt->max_dump_cnt; in ramoops_pstore_write()
398 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_write_user() local
400 if (!cxt->mprz) in ramoops_pstore_write_user()
402 return persistent_ram_write_user(cxt->mprz, buf, record->size); in ramoops_pstore_write_user()
410 struct ramoops_context *cxt = record->psi->data; in ramoops_pstore_erase() local
415 if (record->id >= cxt->max_dump_cnt) in ramoops_pstore_erase()
417 prz = cxt->dprzs[record->id]; in ramoops_pstore_erase()
420 prz = cxt->cprz; in ramoops_pstore_erase()
423 if (record->id >= cxt->max_ftrace_cnt) in ramoops_pstore_erase()
425 prz = cxt->fprzs[record->id]; in ramoops_pstore_erase()
428 prz = cxt->mprz; in ramoops_pstore_erase()
452 static void ramoops_free_przs(struct ramoops_context *cxt) in ramoops_free_przs() argument
457 persistent_ram_free(&cxt->mprz); in ramoops_free_przs()
460 persistent_ram_free(&cxt->cprz); in ramoops_free_przs()
463 if (cxt->dprzs) { in ramoops_free_przs()
464 for (i = 0; i < cxt->max_dump_cnt; i++) in ramoops_free_przs()
465 persistent_ram_free(&cxt->dprzs[i]); in ramoops_free_przs()
467 kfree(cxt->dprzs); in ramoops_free_przs()
468 cxt->dprzs = NULL; in ramoops_free_przs()
469 cxt->max_dump_cnt = 0; in ramoops_free_przs()
473 if (cxt->fprzs) { in ramoops_free_przs()
474 for (i = 0; i < cxt->max_ftrace_cnt; i++) in ramoops_free_przs()
475 persistent_ram_free(&cxt->fprzs[i]); in ramoops_free_przs()
476 kfree(cxt->fprzs); in ramoops_free_przs()
477 cxt->fprzs = NULL; in ramoops_free_przs()
478 cxt->max_ftrace_cnt = 0; in ramoops_free_przs()
483 struct device *dev, struct ramoops_context *cxt, in ramoops_init_przs() argument
523 if (*paddr + mem_sz - cxt->phys_addr > cxt->size) { in ramoops_init_przs()
527 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_przs()
550 &cxt->ecc_info, in ramoops_init_przs()
551 cxt->memtype, flags, label); in ramoops_init_przs()
580 struct device *dev, struct ramoops_context *cxt, in ramoops_init_prz() argument
589 if (*paddr + sz - cxt->phys_addr > cxt->size) { in ramoops_init_prz()
592 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_prz()
597 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, in ramoops_init_prz()
598 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()
770 cxt->size = pdata->mem_size; in ramoops_probe()
771 cxt->phys_addr = pdata->mem_address; in ramoops_probe()
772 cxt->memtype = pdata->mem_type; in ramoops_probe()
773 cxt->record_size = pdata->record_size; in ramoops_probe()
774 cxt->console_size = pdata->console_size; in ramoops_probe()
775 cxt->ftrace_size = pdata->ftrace_size; in ramoops_probe()
776 cxt->pmsg_size = pdata->pmsg_size; in ramoops_probe()
777 cxt->flags = pdata->flags; in ramoops_probe()
778 cxt->ecc_info = pdata->ecc_info; in ramoops_probe()
780 paddr = cxt->phys_addr; in ramoops_probe()
782 dump_mem_sz = cxt->size - cxt->console_size - cxt->ftrace_size in ramoops_probe()
783 - cxt->pmsg_size; in ramoops_probe()
784 err = ramoops_init_przs("dmesg", dev, cxt, &cxt->dprzs, &paddr, in ramoops_probe()
785 dump_mem_sz, cxt->record_size, in ramoops_probe()
786 &cxt->max_dump_cnt, 0, 0); in ramoops_probe()
790 err = ramoops_init_prz("console", dev, cxt, &cxt->cprz, &paddr, in ramoops_probe()
791 cxt->console_size, 0); in ramoops_probe()
795 err = ramoops_init_prz("pmsg", dev, cxt, &cxt->mprz, &paddr, in ramoops_probe()
796 cxt->pmsg_size, 0); in ramoops_probe()
800 cxt->max_ftrace_cnt = (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
803 err = ramoops_init_przs("ftrace", dev, cxt, &cxt->fprzs, &paddr, in ramoops_probe()
804 cxt->ftrace_size, -1, in ramoops_probe()
805 &cxt->max_ftrace_cnt, LINUX_VERSION_CODE, in ramoops_probe()
806 (cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) in ramoops_probe()
811 cxt->pstore.data = cxt; in ramoops_probe()
818 cxt->pstore.flags = 0; in ramoops_probe()
819 if (cxt->max_dump_cnt) { in ramoops_probe()
820 cxt->pstore.flags |= PSTORE_FLAGS_DMESG; in ramoops_probe()
821 cxt->pstore.max_reason = pdata->max_reason; in ramoops_probe()
823 if (cxt->console_size) in ramoops_probe()
824 cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE; in ramoops_probe()
825 if (cxt->max_ftrace_cnt) in ramoops_probe()
826 cxt->pstore.flags |= PSTORE_FLAGS_FTRACE; in ramoops_probe()
827 if (cxt->pmsg_size) in ramoops_probe()
828 cxt->pstore.flags |= PSTORE_FLAGS_PMSG; in ramoops_probe()
835 if (cxt->pstore.flags & PSTORE_FLAGS_DMESG) { in ramoops_probe()
836 cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size; in ramoops_probe()
837 cxt->pstore.buf = kvzalloc(cxt->pstore.bufsize, GFP_KERNEL); in ramoops_probe()
838 if (!cxt->pstore.buf) { in ramoops_probe()
845 err = pstore_register(&cxt->pstore); in ramoops_probe()
864 cxt->size, (unsigned long long)cxt->phys_addr, in ramoops_probe()
865 cxt->ecc_info.ecc_size); in ramoops_probe()
870 kvfree(cxt->pstore.buf); in ramoops_probe()
872 cxt->pstore.bufsize = 0; in ramoops_probe()
874 ramoops_free_przs(cxt); in ramoops_probe()
881 struct ramoops_context *cxt = &oops_cxt; in ramoops_remove() local
883 pstore_unregister(&cxt->pstore); in ramoops_remove()
885 kvfree(cxt->pstore.buf); in ramoops_remove()
886 cxt->pstore.bufsize = 0; in ramoops_remove()
888 ramoops_free_przs(cxt); in ramoops_remove()