summaryrefslogtreecommitdiff
path: root/0001-Updated-kernel-panic.c-Added-megumin.patch
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2019-04-10 20:46:31 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2019-04-10 20:46:31 +0200
commitd9c5dbc9c7ba2158930b28c9b9eea8dcff7e3bdd (patch)
treee83f3bcb7ac3d41f624f4fc916905b65ef1e41ba /0001-Updated-kernel-panic.c-Added-megumin.patch
parent4cbead658138d378a236d9e7da86d79693c5986b (diff)
downloadminilinux-d9c5dbc9c7ba2158930b28c9b9eea8dcff7e3bdd.tar.gz
Now a patch
Diffstat (limited to '0001-Updated-kernel-panic.c-Added-megumin.patch')
-rw-r--r--0001-Updated-kernel-panic.c-Added-megumin.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/0001-Updated-kernel-panic.c-Added-megumin.patch b/0001-Updated-kernel-panic.c-Added-megumin.patch
new file mode 100644
index 0000000..3ad61bf
--- /dev/null
+++ b/0001-Updated-kernel-panic.c-Added-megumin.patch
@@ -0,0 +1,100 @@
+From 1ca4ce5a2d0992b0c324741e325d26ca624cf0be Mon Sep 17 00:00:00 2001
+From: Jonas Gunz <himself@jonasgunz.de>
+Date: Wed, 10 Apr 2019 20:44:14 +0200
+Subject: [PATCH] Updated kernel/panic.c: Added megumin
+
+Kernel prints ASCII art of megumin on Panic. Why? Because.
+---
+ kernel/panic.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 61 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/panic.c b/kernel/panic.c
+index 0ae0d7332f12..0a8ad8757ab6 100644
+--- a/kernel/panic.c
++++ b/kernel/panic.c
+@@ -8,6 +8,7 @@
+ * This function is used through-out the kernel (including mm and fs)
+ * to indicate a major problem.
+ */
++
+ #include <linux/debug_locks.h>
+ #include <linux/sched/debug.h>
+ #include <linux/interrupt.h>
+@@ -167,6 +168,58 @@ void panic(const char *fmt, ...)
+ int old_cpu, this_cpu;
+ bool _crash_kexec_post_notifiers = crash_kexec_post_notifiers;
+
++ const char* megumin[] = {
++ " #=&&%%%%%%%%%%%%%%%%%%%%%%%%%%%&$ ",
++ " $&???????????%%%%%%%%%%%%%%%%%%%%%& ",
++ " &%///???????????????????%%%%???????%%$ ",
++ " $%////////////??????????????????????????& ",
++ " $%!!!!!!!!!!!!!////????????????????//////??$ ",
++ " $?<!!<!!!!!!!!!!!!!/////////????///!/////////% ",
++ " $?<!/?/!<<<<!!!!!!!!!//////????/////!<!!!!!!!!!/$ ",
++ " $%!/?%%/??!;<<<<<<<<<!!!!!!!?%%%%%?///!!<<!!!<<<<<% ",
++ " &<!%%?////?<:;;;;;;;;<<<<<<;!?%%%?%%%/!!?:*:<<<<<<<<$ ",
++ " =<:!/???!!!/<;***:::::;;;;;;;*!/??????&??!!;~-~:;;;;;;? ",
++ " %*\"</!<<!??!;;\"\"\"\"\"*****::::::\"<!???%%??&//<$&!;,<**::::$ ",
++ " !~~*!<<<<<<;;;~-~~~~\"\"~~\"\"***::~-<!%??////?!<= $.-;~\"***/ ",
++ " $<-:;;<<<<!;<<\",,,``--,,`-~~\"****~``!!/////!?/<% $!\"~~\"*= ",
++ " $;</\"-~*:!=.-\"~.`&*$~/!;,`-~\"\"\"\"\"\"\",.~?!<//!!!?;% $%;~~< ",
++ " $?&\"`-``,-\"&&&%%%&%???%/*~\"\"-----~~~`.;*-*;!<<!!*? $/*& ",
++ " #;`,-~\"\":;&$ =&.~~~~~``,<///?%%?!;:~-`,/?.!~.-~~\"\";*$ $&&=# ",
++ " <,-~*;?%%%%%%/<!/%%%%%%!?!%%%%%/!/!/!;;<:!:; ,,-~\"\"<~$ &&%%&$ ",
++ " $$=!//<?!/%%%?<!%%!!%%%?<?%%!?%?<?%%<%%&%%/<</?<*\"~~~:~ $%%%&%& ",
++ " $%%%%?<?%%/<??;/%%%%!<??:!/%/!;<;!/?%/!%%?!!?%!%&%?!;*~,\"& %%%$=%?$ ",
++ " $!?%%/<%%?&=$= ,`\":!! :~,`,,.,.,,`-\"~\"<:/!/?%%%?!%%&%//<*~*$ $%%&$$&&$ ",
++ " $%%!%==.`-\":;;<!!/?%%&&%%<?<*\", ?<~~;<;:\"`,`~*:<;??!/%&/!?<% $&%=$$$= ",
++ " $$ .,`,. =&&&&&&&&= $$$$ `-~\"::*!<!////!:~` =%/;*\":!?<&%!$ &%$$$$= ",
++ " $ .```. = ,-~~-``,,,.....,``,,.,.``,.,.,``,`,,. .,--~*:;<<;\"-`. &%$ $=$$$= ",
++ " $ .`,`. .,`~\"\";;::::***~~\"\"\"\"\"\"~~~- --~~~~~~~\"\"\"\"\"\"*~***~~-``.....,~:!/%~*!&$ $$$$ ",
++ " $ .,,. .,`\"******:;:*:**\"*\"`\"\"\"~~~~~~~- `-~~~~~~~~~~~~\"~~\"****:\"-, &!; && :~~~\";/&$ ",
++ " # .,.. ,`-\"*:;;;;;::*\";:*:**\"\"\"-$~~~~~~-----.& ,`----~~~~~~\"\":\"<!?<!-\",``---~\" ;\"*., %!:\"\";/=$ ",
++ " $ ,,. .`\";:``/??/!!<;;::**:*\"**\"\"\"\"`&-~~~~-````-,%% ,`-~\"*::;<!!<!<?%?%.~,,``--~~\"\"\"\"&***:*-.$??...$ ",
++ " .-~:;:- ?:`,`:%??/!<<;:**:**\"**~\"\"~.&`-----`,,,,,%&=.= \":;<<<<<;<;!:/?/%&<\".,``--~\"\"\"\"*~***::::;:\"-,. $ ",
++ " $$ `\":<:`$?*\"\"~--`,$%%?/!<;::***\"*\"*\"~~~-.& ,```````--$$$$ $=.~*:;;<<;<::!/!?%;<*.,-?-~~****`:*:::::;;;;;;:~`, ==$ ",
++ " $ ,~::*, /;;;:**\"~~-`,&??/!!<;::\"*\"\"\"\"\"~~~~`,&=.=``~~\"~~-~&$$$$ = ~*:;;;;*;:!</?;-/~,\"<--~~:;:%!:::::;;;;;;;;;<<<;~,.$$$ ",
++ " $=`:;;;` %!!<<;;;:**\"~~-,`<%?/!!<;:*\"\"\"\"\"\"\"~~--`.&&,= -`~~~~--$$$$ $$$& `\":;;*:*<;!//~:!\"\"<`-~~/:*!*.:::;;;;;<<<<<<!!!!//;`?/%$ ",
++ " $?;\"&=?!/!!!!<<<;;:**\"~~-,-&%?/!!<;:\"\"\"~~~~~~---`,%$ . , ,`~--`= $$$$$ .~*\"\";:<!!/?%!?!``-~!.**<~-<<!!;*~`,. $&&?%!*~~~\"\"\":& ",
++ " $&&%?/!!!!!<<<;;:*\"\"~-`,~:%?/!<;:**\"~~~~~~*::- -%$$ $.$..```$$$$$$ && ... -\":*;<!!/?%/<,`-~!/?*<? ?;*~\"\"***::;<<!!//?%&&=$ ",
++ " #$$==&&%?/!<;:**\"~`/**;<!;;**\"~~~~;;:;:*~.$ $&& .$ ===$$$$$&?$ -\"~~: $$,~*\":;<!!!?%,.,`-?;:*<;&?/?%&&==$$$ ",
++ " $$=&&%%/!<\"~`,/<?/!<;:*<:;***-.$ <;$ $$$$$$$$$$$$$$ \";`.: $$`-~\"::;<!!??//,`-$</&: $ ",
++ " $$==$ ,----~:*:*\"\"-` $= ,```.$$$$$$$$$$$$$$ ., $$ - ~**::;<</?!!`,`$</:< $ ",
++ " `~*\"-~~`, $$$.~`.` $$$$$$$$$$$$$$$$=&=$.=.~\"**:;;*!/<% .-&</?\" ",
++ " --~`---,, #$$$ $$$$$$$$$$$$$$$$$&%&= %,~\"\"**::~!!;%?*!~<\"<. $ ",
++ " ,```,-`,, =$$$=$$$$$$$$$$$$$$$$$$$$$$ % `~~\"\"***~;!:/%.<`<..$ =$ ",
++ " ,,,,,``,. ==//&$$$$$$$$ .`\"\",$$$$$$$$%.-~~\"\"**~-\"<:;%!`\"<$ = ",
++ " ,,.,,,..$$$$$$$$$$ `\"::::;; $$$$$$$$.-~~~\"\"~-~~*;*?&-*~$$ $$ ",
++ " .... $&$$$$$$$$ ~***~`.$$$$$$$#$`--~~\"--\"~~-*~<&!!. $$$ ",
++ " $$$$$$$$$$$$$$$$$$$$# `--~~`~*:~~.`\"`*!% $ ",
++ " $$$$$$$$$$$$$$$$$ `--``~\"*::\", . .$ ",
++ " $$$$$$ ,-, `*\"*:;;~ $ ",
++ " # ` -:**:;<< ",
++ " -:;;<<!!- "};
++
++ unsigned int megucnt;
++
++
+ /*
+ * Disable local interrupts. This will prevent panic_smp_self_stop
+ * from deadlocking the first cpu that invokes the panic, since
+@@ -205,7 +258,14 @@ void panic(const char *fmt, ...)
+ if (len && buf[len - 1] == '\n')
+ buf[len - 1] = '\0';
+
+- pr_emerg("Kernel panic - not syncing: %s\n", buf);
++ pr_emerg("MegunPanic!\n(∩ಠ益[+])⊃━☆゚Explosion!\nKernel panic - not syncing: %s\n", buf);
++
++
++ for(megucnt = 0; megucnt < sizeof(megumin) / sizeof(char*); megucnt++)
++ {
++ pr_emerg("%s\n", megumin[megucnt]);
++ }
++
+ #ifdef CONFIG_DEBUG_BUGVERBOSE
+ /*
+ * Avoid nested stack-dumping if a panic occurs during oops processing
+--
+2.21.0
+