Lines Matching refs:cxt

114 	struct ramoops_context *cxt = psi->data;  in ramoops_pstore_open()  local
116 cxt->dump_read_cnt = 0; in ramoops_pstore_open()
117 cxt->console_read_cnt = 0; in ramoops_pstore_open()
118 cxt->ftrace_read_cnt = 0; in ramoops_pstore_open()
119 cxt->pmsg_read_cnt = 0; in ramoops_pstore_open()
188 struct ramoops_context *cxt = psi->data; in ramoops_pstore_read() local
192 prz = ramoops_get_next_prz(cxt->przs, &cxt->dump_read_cnt, in ramoops_pstore_read()
193 cxt->max_dump_cnt, id, type, in ramoops_pstore_read()
196 prz = ramoops_get_next_prz(&cxt->cprz, &cxt->console_read_cnt, in ramoops_pstore_read()
199 prz = ramoops_get_next_prz(&cxt->fprz, &cxt->ftrace_read_cnt, in ramoops_pstore_read()
202 prz = ramoops_get_next_prz(&cxt->mprz, &cxt->pmsg_read_cnt, in ramoops_pstore_read()
258 struct ramoops_context *cxt = psi->data; in ramoops_pstore_write_buf() local
263 if (!cxt->cprz) in ramoops_pstore_write_buf()
265 persistent_ram_write(cxt->cprz, buf, size); in ramoops_pstore_write_buf()
268 if (!cxt->fprz) in ramoops_pstore_write_buf()
270 persistent_ram_write(cxt->fprz, buf, size); in ramoops_pstore_write_buf()
273 if (!cxt->mprz) in ramoops_pstore_write_buf()
275 persistent_ram_write(cxt->mprz, buf, size); in ramoops_pstore_write_buf()
290 if (reason == KMSG_DUMP_OOPS && !cxt->dump_oops) in ramoops_pstore_write_buf()
301 if (!cxt->przs) in ramoops_pstore_write_buf()
304 prz = cxt->przs[cxt->dump_write_cnt]; in ramoops_pstore_write_buf()
311 cxt->dump_write_cnt = (cxt->dump_write_cnt + 1) % cxt->max_dump_cnt; in ramoops_pstore_write_buf()
319 struct ramoops_context *cxt = psi->data; in ramoops_pstore_erase() local
324 if (id >= cxt->max_dump_cnt) in ramoops_pstore_erase()
326 prz = cxt->przs[id]; in ramoops_pstore_erase()
329 prz = cxt->cprz; in ramoops_pstore_erase()
332 prz = cxt->fprz; in ramoops_pstore_erase()
335 prz = cxt->mprz; in ramoops_pstore_erase()
358 static void ramoops_free_przs(struct ramoops_context *cxt) in ramoops_free_przs() argument
362 cxt->max_dump_cnt = 0; in ramoops_free_przs()
363 if (!cxt->przs) in ramoops_free_przs()
366 for (i = 0; !IS_ERR_OR_NULL(cxt->przs[i]); i++) in ramoops_free_przs()
367 persistent_ram_free(cxt->przs[i]); in ramoops_free_przs()
368 kfree(cxt->przs); in ramoops_free_przs()
371 static int ramoops_init_przs(struct device *dev, struct ramoops_context *cxt, in ramoops_init_przs() argument
377 if (!cxt->record_size) in ramoops_init_przs()
380 if (*paddr + dump_mem_sz - cxt->phys_addr > cxt->size) { in ramoops_init_przs()
385 cxt->max_dump_cnt = dump_mem_sz / cxt->record_size; in ramoops_init_przs()
386 if (!cxt->max_dump_cnt) in ramoops_init_przs()
389 cxt->przs = kzalloc(sizeof(*cxt->przs) * cxt->max_dump_cnt, in ramoops_init_przs()
391 if (!cxt->przs) { in ramoops_init_przs()
396 for (i = 0; i < cxt->max_dump_cnt; i++) { in ramoops_init_przs()
397 size_t sz = cxt->record_size; in ramoops_init_przs()
399 cxt->przs[i] = persistent_ram_new(*paddr, sz, 0, in ramoops_init_przs()
400 &cxt->ecc_info, in ramoops_init_przs()
401 cxt->memtype); in ramoops_init_przs()
402 if (IS_ERR(cxt->przs[i])) { in ramoops_init_przs()
403 err = PTR_ERR(cxt->przs[i]); in ramoops_init_przs()
413 ramoops_free_przs(cxt); in ramoops_init_przs()
417 static int ramoops_init_prz(struct device *dev, struct ramoops_context *cxt, in ramoops_init_prz() argument
424 if (*paddr + sz - cxt->phys_addr > cxt->size) { in ramoops_init_prz()
427 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_prz()
431 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, cxt->memtype); in ramoops_init_prz()
451 struct ramoops_context *cxt = &oops_cxt; in ramoops_probe() local
459 if (cxt->max_dump_cnt) in ramoops_probe()
478 cxt->size = pdata->mem_size; in ramoops_probe()
479 cxt->phys_addr = pdata->mem_address; in ramoops_probe()
480 cxt->memtype = pdata->mem_type; in ramoops_probe()
481 cxt->record_size = pdata->record_size; in ramoops_probe()
482 cxt->console_size = pdata->console_size; in ramoops_probe()
483 cxt->ftrace_size = pdata->ftrace_size; in ramoops_probe()
484 cxt->pmsg_size = pdata->pmsg_size; in ramoops_probe()
485 cxt->dump_oops = pdata->dump_oops; in ramoops_probe()
486 cxt->ecc_info = pdata->ecc_info; in ramoops_probe()
488 paddr = cxt->phys_addr; in ramoops_probe()
490 dump_mem_sz = cxt->size - cxt->console_size - cxt->ftrace_size in ramoops_probe()
491 - cxt->pmsg_size; in ramoops_probe()
492 err = ramoops_init_przs(dev, cxt, &paddr, dump_mem_sz); in ramoops_probe()
496 err = ramoops_init_prz(dev, cxt, &cxt->cprz, &paddr, in ramoops_probe()
497 cxt->console_size, 0); in ramoops_probe()
501 err = ramoops_init_prz(dev, cxt, &cxt->fprz, &paddr, cxt->ftrace_size, in ramoops_probe()
506 err = ramoops_init_prz(dev, cxt, &cxt->mprz, &paddr, cxt->pmsg_size, 0); in ramoops_probe()
510 cxt->pstore.data = cxt; in ramoops_probe()
517 if (cxt->console_size) in ramoops_probe()
518 cxt->pstore.bufsize = 1024; /* LOG_LINE_MAX */ in ramoops_probe()
519 cxt->pstore.bufsize = max(cxt->record_size, cxt->pstore.bufsize); in ramoops_probe()
520 cxt->pstore.buf = kmalloc(cxt->pstore.bufsize, GFP_KERNEL); in ramoops_probe()
521 spin_lock_init(&cxt->pstore.buf_lock); in ramoops_probe()
522 if (!cxt->pstore.buf) { in ramoops_probe()
528 err = pstore_register(&cxt->pstore); in ramoops_probe()
547 cxt->size, (unsigned long long)cxt->phys_addr, in ramoops_probe()
548 cxt->ecc_info.ecc_size, cxt->ecc_info.block_size); in ramoops_probe()
553 kfree(cxt->pstore.buf); in ramoops_probe()
555 cxt->pstore.bufsize = 0; in ramoops_probe()
556 kfree(cxt->mprz); in ramoops_probe()
558 kfree(cxt->fprz); in ramoops_probe()
560 kfree(cxt->cprz); in ramoops_probe()
562 ramoops_free_przs(cxt); in ramoops_probe()
573 struct ramoops_context *cxt = &oops_cxt; in ramoops_remove()
575 iounmap(cxt->virt_addr); in ramoops_remove()
576 release_mem_region(cxt->phys_addr, cxt->size); in ramoops_remove()
577 cxt->max_dump_cnt = 0; in ramoops_remove()
580 kfree(cxt->pstore.buf); in ramoops_remove()
581 cxt->pstore.bufsize = 0; in ramoops_remove()