diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 5b076ef51996629bc8bdc24f0fa37268019844e5..7f25354deba2c91b580ca6863b761681756747f5 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -671,13 +671,21 @@ static int init_section_ref_ok(const char *name)
 		".debug",
 		NULL
 	};
-	
+	/* part of section name */
+	const char *namelist3 [] = {
+		".unwind",  /* sample: IA_64.unwind.init.text */
+		NULL
+	};
+
 	for (s = namelist1; *s; s++)
 		if (strcmp(*s, name) == 0)
 			return 1;
 	for (s = namelist2; *s; s++)	
 		if (strncmp(*s, name, strlen(*s)) == 0)
 			return 1;
+	for (s = namelist3; *s; s++)	
+		if (strstr(*s, name) != NULL)
+			return 1;
 	return 0;
 }
 
@@ -727,6 +735,11 @@ static int exit_section_ref_ok(const char *name)
 		".debug",
 		NULL
 	};
+	/* part of section name */
+	const char *namelist3 [] = {
+		".unwind",  /* Sample: IA_64.unwind.exit.text */
+		NULL
+	};
 	
 	for (s = namelist1; *s; s++)
 		if (strcmp(*s, name) == 0)
@@ -734,6 +747,9 @@ static int exit_section_ref_ok(const char *name)
 	for (s = namelist2; *s; s++)	
 		if (strncmp(*s, name, strlen(*s)) == 0)
 			return 1;
+	for (s = namelist3; *s; s++)	
+		if (strstr(*s, name) != NULL)
+			return 1;
 	return 0;
 }