Skip to content

Commit 8350123

Browse files
minipli-osswipawel
authored andcommitted
console: unify panic() and warning()
Move the duplicated code of panic() and warning() to a common helper that'll take care about the printk()s. The message type ("PANIC" / "WARNING") will still be center aligned. Signed-off-by: Mathias Krause <minipli@grsecurity.net>
1 parent 5fb4cd1 commit 8350123

1 file changed

Lines changed: 20 additions & 12 deletions

File tree

common/console.c

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,31 +122,39 @@ void register_console_callback(console_callback_t cb, void *arg) {
122122
console_callbacks[num_console_callbacks++].arg = arg;
123123
}
124124

125-
void panic(const char *fmt, ...) {
126-
va_list args;
125+
static void oops_print(const char *fmt, va_list args, const char *type) {
126+
static const char stars[] = "***********************************";
127+
size_t slen = sizeof(stars) - 1;
128+
size_t tlen = strlen(type);
129+
int s1_len, s2_len;
130+
131+
if (tlen > slen - 4)
132+
tlen = slen - 4;
133+
134+
s1_len = (slen - tlen - 2) / 2;
135+
s2_len = slen - tlen - 2 - s1_len;
127136

128-
printk("************** PANIC **************\n");
137+
printk("%.*s %s %.*s\n", s1_len, stars, type, s2_len, stars);
129138
printk("CPU[%u]: ", smp_processor_id());
139+
vprintk(fmt, args);
140+
printk("\n%s\n", stars);
141+
}
142+
143+
void panic(const char *fmt, ...) {
144+
va_list args;
130145

131146
va_start(args, fmt);
132-
vprintk(fmt, args);
147+
oops_print(fmt, args, "PANIC");
133148
va_end(args);
134149

135-
printk("\n***********************************\n");
136-
137150
while (1)
138151
halt();
139152
}
140153

141154
void warning(const char *fmt, ...) {
142155
va_list args;
143156

144-
printk("************* WARNING *************\n");
145-
printk("CPU[%u]: ", smp_processor_id());
146-
147157
va_start(args, fmt);
148-
vprintk(fmt, args);
158+
oops_print(fmt, args, "WARNING");
149159
va_end(args);
150-
151-
printk("\n***********************************\n");
152160
}

0 commit comments

Comments
 (0)