diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 1f53d4fc4c1d445ec345bc51b43db2c48d57763b..d591578bd3b209ab8258a814b30727366e8909d8 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -116,6 +116,9 @@ static int read_symbol(FILE *in, struct sym_entry *s)
 	else if (toupper(stype) == 'U' ||
 		 is_arm_mapping_symbol(sym))
 		return -1;
+	/* exclude also MIPS ELF local symbols ($L123 instead of .L123) */
+	else if (str[0] == '$')
+		return -1;
 
 	/* include the type field in the symbol name, so that it gets
 	 * compressed together */