forked from Minki/linux
pstore/ram: Simplify ramoops_get_next_prz() arguments
(1) remove type argument from ramoops_get_next_prz() Since we store the type of the prz when we initialize it, we no longer need to pass it again in ramoops_get_next_prz() since we can just use that to setup the pstore record. So lets remove it from the argument list. (2) remove max argument from ramoops_get_next_prz() Looking at the code flow, the 'max' checks are already being done on the prz passed to ramoops_get_next_prz(). Lets remove it to simplify this function and reduce its arguments. (3) further reduce ramoops_get_next_prz() arguments by passing record Both the id and type fields of a pstore_record are set by ramoops_get_next_prz(). So we can just pass a pointer to the pstore_record instead of passing individual elements. This results in cleaner more readable code and fewer lines. In addition lets also remove the 'update' argument since we can detect that. Changes are squashed into a single patch to reduce fixup conflicts. Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
f0f23e5469
commit
b05c950698
@ -124,19 +124,17 @@ static int ramoops_pstore_open(struct pstore_info *psi)
|
||||
}
|
||||
|
||||
static struct persistent_ram_zone *
|
||||
ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint *c, uint max,
|
||||
u64 *id,
|
||||
enum pstore_type_id *typep, enum pstore_type_id type,
|
||||
bool update)
|
||||
ramoops_get_next_prz(struct persistent_ram_zone *przs[], int id,
|
||||
struct pstore_record *record)
|
||||
{
|
||||
struct persistent_ram_zone *prz;
|
||||
int i = (*c)++;
|
||||
bool update = (record->type == PSTORE_TYPE_DMESG);
|
||||
|
||||
/* Give up if we never existed or have hit the end. */
|
||||
if (!przs || i >= max)
|
||||
if (!przs)
|
||||
return NULL;
|
||||
|
||||
prz = przs[i];
|
||||
prz = przs[id];
|
||||
if (!prz)
|
||||
return NULL;
|
||||
|
||||
@ -147,8 +145,8 @@ ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint *c, uint max,
|
||||
if (!persistent_ram_old_size(prz))
|
||||
return NULL;
|
||||
|
||||
*typep = type;
|
||||
*id = i;
|
||||
record->type = prz->type;
|
||||
record->id = id;
|
||||
|
||||
return prz;
|
||||
}
|
||||
@ -255,10 +253,8 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record)
|
||||
|
||||
/* Find the next valid persistent_ram_zone for DMESG */
|
||||
while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) {
|
||||
prz = ramoops_get_next_prz(cxt->dprzs, &cxt->dump_read_cnt,
|
||||
cxt->max_dump_cnt, &record->id,
|
||||
&record->type,
|
||||
PSTORE_TYPE_DMESG, 1);
|
||||
prz = ramoops_get_next_prz(cxt->dprzs, cxt->dump_read_cnt++,
|
||||
record);
|
||||
if (!prz_ok(prz))
|
||||
continue;
|
||||
header_length = ramoops_read_kmsg_hdr(persistent_ram_old(prz),
|
||||
@ -272,22 +268,18 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record)
|
||||
}
|
||||
}
|
||||
|
||||
if (!prz_ok(prz))
|
||||
prz = ramoops_get_next_prz(&cxt->cprz, &cxt->console_read_cnt,
|
||||
1, &record->id, &record->type,
|
||||
PSTORE_TYPE_CONSOLE, 0);
|
||||
if (!prz_ok(prz) && !cxt->console_read_cnt++)
|
||||
prz = ramoops_get_next_prz(&cxt->cprz, 0 /* single */, record);
|
||||
|
||||
if (!prz_ok(prz))
|
||||
prz = ramoops_get_next_prz(&cxt->mprz, &cxt->pmsg_read_cnt,
|
||||
1, &record->id, &record->type,
|
||||
PSTORE_TYPE_PMSG, 0);
|
||||
if (!prz_ok(prz) && !cxt->pmsg_read_cnt++)
|
||||
prz = ramoops_get_next_prz(&cxt->mprz, 0 /* single */, record);
|
||||
|
||||
/* ftrace is last since it may want to dynamically allocate memory. */
|
||||
if (!prz_ok(prz)) {
|
||||
if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU)) {
|
||||
prz = ramoops_get_next_prz(cxt->fprzs,
|
||||
&cxt->ftrace_read_cnt, 1, &record->id,
|
||||
&record->type, PSTORE_TYPE_FTRACE, 0);
|
||||
if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU) &&
|
||||
!cxt->ftrace_read_cnt++) {
|
||||
prz = ramoops_get_next_prz(cxt->fprzs, 0 /* single */,
|
||||
record);
|
||||
} else {
|
||||
/*
|
||||
* Build a new dummy record which combines all the
|
||||
@ -303,11 +295,7 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record)
|
||||
|
||||
while (cxt->ftrace_read_cnt < cxt->max_ftrace_cnt) {
|
||||
prz_next = ramoops_get_next_prz(cxt->fprzs,
|
||||
&cxt->ftrace_read_cnt,
|
||||
cxt->max_ftrace_cnt,
|
||||
&record->id,
|
||||
&record->type,
|
||||
PSTORE_TYPE_FTRACE, 0);
|
||||
cxt->ftrace_read_cnt++, record);
|
||||
|
||||
if (!prz_ok(prz_next))
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user