diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 276e84b8a8e57cb99cc5f1c956f1d4422657a0e7..10085de886fef49b78a12746a2e0a593545d56e0 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -330,7 +330,8 @@ static void write_src(void)
 				printf("\tPTR\t_text + %#llx\n",
 					table[i].addr - _text);
 			else
-				printf("\tPTR\t%#llx\n", table[i].addr);
+				printf("\tPTR\t_text - %#llx\n",
+					_text - table[i].addr);
 		} else {
 			printf("\tPTR\t%#llx\n", table[i].addr);
 		}