diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
index e3c1600461436dfb9298e311830423e7ec0f861f..cd933a95548d671927fb8a270514e473c5ced7d6 100644
--- a/scripts/genksyms/parse.y
+++ b/scripts/genksyms/parse.y
@@ -216,6 +216,7 @@ decl_specifier:
 		}
 	| type_specifier	{ dont_want_type_specifier = true; $$ = $1; }
 	| type_qualifier
+	| ATTRIBUTE_PHRASE
 	;
 
 storage_class_specifier:
@@ -285,11 +286,13 @@ type_qualifier_seq_opt:
 
 type_qualifier_seq:
 	type_qualifier
+	| ATTRIBUTE_PHRASE
 	| type_qualifier_seq type_qualifier		{ $$ = $2; }
+	| type_qualifier_seq ATTRIBUTE_PHRASE		{ $$ = $2; }
 	;
 
 type_qualifier:
-	CONST_KEYW | VOLATILE_KEYW | ATTRIBUTE_PHRASE
+	CONST_KEYW | VOLATILE_KEYW
 	| RESTRICT_KEYW
 		{ /* restrict has no effect in prototypes so ignore it */
 		  remove_node($1);