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
201 while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) { in ramoops_pstore_read()
202 prz = ramoops_get_next_prz(cxt->przs, &cxt->dump_read_cnt, in ramoops_pstore_read()
203 cxt->max_dump_cnt, id, type, in ramoops_pstore_read()
218 prz = ramoops_get_next_prz(&cxt->cprz, &cxt->console_read_cnt, in ramoops_pstore_read()
221 prz = ramoops_get_next_prz(&cxt->fprz, &cxt->ftrace_read_cnt, in ramoops_pstore_read()
224 prz = ramoops_get_next_prz(&cxt->mprz, &cxt->pmsg_read_cnt, in ramoops_pstore_read()
274 struct ramoops_context *cxt = psi->data; in ramoops_pstore_write_buf() local
279 if (!cxt->cprz) in ramoops_pstore_write_buf()
281 persistent_ram_write(cxt->cprz, buf, size); in ramoops_pstore_write_buf()
284 if (!cxt->fprz) in ramoops_pstore_write_buf()
286 persistent_ram_write(cxt->fprz, buf, size); in ramoops_pstore_write_buf()
289 if (!cxt->mprz) in ramoops_pstore_write_buf()
291 persistent_ram_write(cxt->mprz, buf, size); in ramoops_pstore_write_buf()
306 if (reason == KMSG_DUMP_OOPS && !cxt->dump_oops) in ramoops_pstore_write_buf()
317 if (!cxt->przs) in ramoops_pstore_write_buf()
320 prz = cxt->przs[cxt->dump_write_cnt]; in ramoops_pstore_write_buf()
327 cxt->dump_write_cnt = (cxt->dump_write_cnt + 1) % cxt->max_dump_cnt; in ramoops_pstore_write_buf()
335 struct ramoops_context *cxt = psi->data; in ramoops_pstore_erase() local
340 if (id >= cxt->max_dump_cnt) in ramoops_pstore_erase()
342 prz = cxt->przs[id]; in ramoops_pstore_erase()
345 prz = cxt->cprz; in ramoops_pstore_erase()
348 prz = cxt->fprz; in ramoops_pstore_erase()
351 prz = cxt->mprz; in ramoops_pstore_erase()
374 static void ramoops_free_przs(struct ramoops_context *cxt) in ramoops_free_przs() argument
378 cxt->max_dump_cnt = 0; in ramoops_free_przs()
379 if (!cxt->przs) in ramoops_free_przs()
382 for (i = 0; !IS_ERR_OR_NULL(cxt->przs[i]); i++) in ramoops_free_przs()
383 persistent_ram_free(cxt->przs[i]); in ramoops_free_przs()
384 kfree(cxt->przs); in ramoops_free_przs()
387 static int ramoops_init_przs(struct device *dev, struct ramoops_context *cxt, in ramoops_init_przs() argument
393 if (!cxt->record_size) in ramoops_init_przs()
396 if (*paddr + dump_mem_sz - cxt->phys_addr > cxt->size) { in ramoops_init_przs()
401 cxt->max_dump_cnt = dump_mem_sz / cxt->record_size; in ramoops_init_przs()
402 if (!cxt->max_dump_cnt) in ramoops_init_przs()
405 cxt->przs = kzalloc(sizeof(*cxt->przs) * cxt->max_dump_cnt, in ramoops_init_przs()
407 if (!cxt->przs) { in ramoops_init_przs()
412 for (i = 0; i < cxt->max_dump_cnt; i++) { in ramoops_init_przs()
413 cxt->przs[i] = persistent_ram_new(*paddr, cxt->record_size, 0, in ramoops_init_przs()
414 &cxt->ecc_info, in ramoops_init_przs()
415 cxt->memtype); in ramoops_init_przs()
416 if (IS_ERR(cxt->przs[i])) { in ramoops_init_przs()
417 err = PTR_ERR(cxt->przs[i]); in ramoops_init_przs()
419 cxt->record_size, (unsigned long long)*paddr, err); in ramoops_init_przs()
422 *paddr += cxt->record_size; in ramoops_init_przs()
427 ramoops_free_przs(cxt); in ramoops_init_przs()
431 static int ramoops_init_prz(struct device *dev, struct ramoops_context *cxt, in ramoops_init_prz() argument
438 if (*paddr + sz - cxt->phys_addr > cxt->size) { in ramoops_init_prz()
441 cxt->size, (unsigned long long)cxt->phys_addr); in ramoops_init_prz()
445 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, cxt->memtype); in ramoops_init_prz()
465 struct ramoops_context *cxt = &oops_cxt; in ramoops_probe() local
473 if (cxt->max_dump_cnt) in ramoops_probe()
492 cxt->size = pdata->mem_size; in ramoops_probe()
493 cxt->phys_addr = pdata->mem_address; in ramoops_probe()
494 cxt->memtype = pdata->mem_type; in ramoops_probe()
495 cxt->record_size = pdata->record_size; in ramoops_probe()
496 cxt->console_size = pdata->console_size; in ramoops_probe()
497 cxt->ftrace_size = pdata->ftrace_size; in ramoops_probe()
498 cxt->pmsg_size = pdata->pmsg_size; in ramoops_probe()
499 cxt->dump_oops = pdata->dump_oops; in ramoops_probe()
500 cxt->ecc_info = pdata->ecc_info; in ramoops_probe()
502 paddr = cxt->phys_addr; in ramoops_probe()
504 dump_mem_sz = cxt->size - cxt->console_size - cxt->ftrace_size in ramoops_probe()
505 - cxt->pmsg_size; in ramoops_probe()
506 err = ramoops_init_przs(dev, cxt, &paddr, dump_mem_sz); in ramoops_probe()
510 err = ramoops_init_prz(dev, cxt, &cxt->cprz, &paddr, in ramoops_probe()
511 cxt->console_size, 0); in ramoops_probe()
515 err = ramoops_init_prz(dev, cxt, &cxt->fprz, &paddr, cxt->ftrace_size, in ramoops_probe()
520 err = ramoops_init_prz(dev, cxt, &cxt->mprz, &paddr, cxt->pmsg_size, 0); in ramoops_probe()
524 cxt->pstore.data = cxt; in ramoops_probe()
531 if (cxt->console_size) in ramoops_probe()
532 cxt->pstore.bufsize = 1024; /* LOG_LINE_MAX */ in ramoops_probe()
533 cxt->pstore.bufsize = max(cxt->record_size, cxt->pstore.bufsize); in ramoops_probe()
534 cxt->pstore.buf = kmalloc(cxt->pstore.bufsize, GFP_KERNEL); in ramoops_probe()
535 spin_lock_init(&cxt->pstore.buf_lock); in ramoops_probe()
536 if (!cxt->pstore.buf) { in ramoops_probe()
542 err = pstore_register(&cxt->pstore); in ramoops_probe()
561 cxt->size, (unsigned long long)cxt->phys_addr, in ramoops_probe()
562 cxt->ecc_info.ecc_size, cxt->ecc_info.block_size); in ramoops_probe()
567 kfree(cxt->pstore.buf); in ramoops_probe()
569 cxt->pstore.bufsize = 0; in ramoops_probe()
570 kfree(cxt->mprz); in ramoops_probe()
572 kfree(cxt->fprz); in ramoops_probe()
574 kfree(cxt->cprz); in ramoops_probe()
576 ramoops_free_przs(cxt); in ramoops_probe()
583 struct ramoops_context *cxt = &oops_cxt; in ramoops_remove() local
585 pstore_unregister(&cxt->pstore); in ramoops_remove()
586 cxt->max_dump_cnt = 0; in ramoops_remove()
588 kfree(cxt->pstore.buf); in ramoops_remove()
589 cxt->pstore.bufsize = 0; in ramoops_remove()
591 persistent_ram_free(cxt->mprz); in ramoops_remove()
592 persistent_ram_free(cxt->fprz); in ramoops_remove()
593 persistent_ram_free(cxt->cprz); in ramoops_remove()
594 ramoops_free_przs(cxt); in ramoops_remove()