printk: kmsg_dumper: remove @active field
All 6 kmsg_dumpers do not benefit from the @active flag: (provide their own synchronization) - arch/powerpc/kernel/nvram_64.c - arch/um/kernel/kmsg_dump.c - drivers/mtd/mtdoops.c - fs/pstore/platform.c (only dump on KMSG_DUMP_PANIC, which does not require synchronization) - arch/powerpc/platforms/powernv/opal-kmsg.c - drivers/hv/vmbus_drv.c The other 2 kmsg_dump users also do not rely on @active: (hard-code @active to always be true) - arch/powerpc/xmon/xmon.c - kernel/debug/kdb/kdb_main.c Therefore, @active can be removed. Signed-off-by: John Ogness <john.ogness@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Petr Mladek <pmladek@suse.com> Link: https://lore.kernel.org/r/20210303101528.29901-12-john.ogness@linutronix.de
This commit is contained in:
parent
636babdc06
commit
5f6c7648e5
@ -3005,7 +3005,7 @@ print_address(unsigned long addr)
|
|||||||
static void
|
static void
|
||||||
dump_log_buf(void)
|
dump_log_buf(void)
|
||||||
{
|
{
|
||||||
struct kmsg_dumper dumper = { .active = 1 };
|
struct kmsg_dumper dumper;
|
||||||
unsigned char buf[128];
|
unsigned char buf[128];
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
|
@ -36,7 +36,6 @@ enum kmsg_dump_reason {
|
|||||||
* through the record iterator
|
* through the record iterator
|
||||||
* @max_reason: filter for highest reason number that should be dumped
|
* @max_reason: filter for highest reason number that should be dumped
|
||||||
* @registered: Flag that specifies if this is already registered
|
* @registered: Flag that specifies if this is already registered
|
||||||
* @active: Flag that specifies if this is currently dumping
|
|
||||||
* @cur_seq: Points to the oldest message to dump
|
* @cur_seq: Points to the oldest message to dump
|
||||||
* @next_seq: Points after the newest message to dump
|
* @next_seq: Points after the newest message to dump
|
||||||
*/
|
*/
|
||||||
@ -44,7 +43,6 @@ struct kmsg_dumper {
|
|||||||
struct list_head list;
|
struct list_head list;
|
||||||
void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);
|
void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);
|
||||||
enum kmsg_dump_reason max_reason;
|
enum kmsg_dump_reason max_reason;
|
||||||
bool active;
|
|
||||||
bool registered;
|
bool registered;
|
||||||
|
|
||||||
/* private state of the kmsg iterator */
|
/* private state of the kmsg iterator */
|
||||||
|
@ -2101,7 +2101,7 @@ static int kdb_dmesg(int argc, const char **argv)
|
|||||||
int adjust = 0;
|
int adjust = 0;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
int skip = 0;
|
int skip = 0;
|
||||||
struct kmsg_dumper dumper = { .active = 1 };
|
struct kmsg_dumper dumper;
|
||||||
size_t len;
|
size_t len;
|
||||||
char buf[201];
|
char buf[201];
|
||||||
|
|
||||||
|
@ -3408,8 +3408,6 @@ void kmsg_dump(enum kmsg_dump_reason reason)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* initialize iterator with data about the stored records */
|
/* initialize iterator with data about the stored records */
|
||||||
dumper->active = true;
|
|
||||||
|
|
||||||
logbuf_lock_irqsave(flags);
|
logbuf_lock_irqsave(flags);
|
||||||
dumper->cur_seq = latched_seq_read_nolock(&clear_seq);
|
dumper->cur_seq = latched_seq_read_nolock(&clear_seq);
|
||||||
dumper->next_seq = prb_next_seq(prb);
|
dumper->next_seq = prb_next_seq(prb);
|
||||||
@ -3417,9 +3415,6 @@ void kmsg_dump(enum kmsg_dump_reason reason)
|
|||||||
|
|
||||||
/* invoke dumper which will iterate over records */
|
/* invoke dumper which will iterate over records */
|
||||||
dumper->dump(dumper, reason);
|
dumper->dump(dumper, reason);
|
||||||
|
|
||||||
/* reset iterator */
|
|
||||||
dumper->active = false;
|
|
||||||
}
|
}
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
}
|
}
|
||||||
@ -3454,9 +3449,6 @@ bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog,
|
|||||||
|
|
||||||
prb_rec_init_rd(&r, &info, line, size);
|
prb_rec_init_rd(&r, &info, line, size);
|
||||||
|
|
||||||
if (!dumper->active)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Read text or count text lines? */
|
/* Read text or count text lines? */
|
||||||
if (line) {
|
if (line) {
|
||||||
if (!prb_read_valid(prb, dumper->cur_seq, &r))
|
if (!prb_read_valid(prb, dumper->cur_seq, &r))
|
||||||
@ -3542,7 +3534,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
|
|||||||
bool ret = false;
|
bool ret = false;
|
||||||
bool time = printk_time;
|
bool time = printk_time;
|
||||||
|
|
||||||
if (!dumper->active || !buf || !size)
|
if (!buf || !size)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
logbuf_lock_irqsave(flags);
|
logbuf_lock_irqsave(flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user