--- /dev/null
+From 701b3a3c0ac42630f74a5efba8545d61ac0e3293 Mon Sep 17 00:00:00 2001
+From: "valdis.kletnieks@vt.edu" <valdis.kletnieks@vt.edu>
+Date: Tue, 17 Jul 2018 12:57:29 -0400
+Subject: PATCH scripts/kernel-doc
+
+From: Valdis Kletnieks <valdis.kletnieks@vt.edu>
+
+commit 701b3a3c0ac42630f74a5efba8545d61ac0e3293 upstream.
+
+Fix a warning whinge from Perl introduced by "scripts: kernel-doc: parse next structs/unions"
+
+Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/({ <-- HERE [^\{\}]*})/ at ./scripts/kernel-doc line 1155.
+Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/({ <-- HERE )/ at ./scripts/kernel-doc line 1179.
+
+Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
+Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Signed-off-by: Jonathan Corbet <corbet@lwn.net>
+Cc: Nathan Chancellor <natechancellor@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ scripts/kernel-doc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/scripts/kernel-doc
++++ b/scripts/kernel-doc
+@@ -1152,7 +1152,7 @@ sub dump_struct($$) {
+ }
+
+ # Ignore other nested elements, like enums
+- $members =~ s/({[^\{\}]*})//g;
++ $members =~ s/(\{[^\{\}]*})//g;
+
+ create_parameterlist($members, ';', $file, $declaration_name);
+ check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual);
+@@ -1176,7 +1176,7 @@ sub dump_struct($$) {
+ $declaration .= "\t" x $level;
+ }
+ $declaration .= "\t" . $clause . "\n";
+- $level++ if ($clause =~ m/({)/ && !($clause =~m/}/));
++ $level++ if ($clause =~ m/(\{)/ && !($clause =~m/}/));
+ }
+ output_declaration($declaration_name,
+ 'struct',
--- /dev/null
+From 673bb2dfc36488abfdbbfc2ce2631204eaf682f2 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 5 Aug 2018 17:41:09 +0100
+Subject: scripts/kernel-doc: Escape all literal braces in regexes
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit 673bb2dfc36488abfdbbfc2ce2631204eaf682f2 upstream.
+
+Commit 701b3a3c0ac4 ("PATCH scripts/kernel-doc") fixed the two
+instances of literal braces that Perl 5.28 warns about, but there are
+still more than it doesn't warn about.
+
+Escape all left braces that are treated as literal characters. Also
+escape literal right braces, for consistency and to avoid confusing
+bracket-matching in text editors.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Jonathan Corbet <corbet@lwn.net>
+Cc: Nathan Chancellor <natechancellor@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ scripts/kernel-doc | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/scripts/kernel-doc
++++ b/scripts/kernel-doc
+@@ -1062,7 +1062,7 @@ sub dump_struct($$) {
+ my $x = shift;
+ my $file = shift;
+
+- if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
++ if ($x =~ /(struct|union)\s+(\w+)\s*\{(.*)\}/) {
+ my $decl_type = $1;
+ $declaration_name = $2;
+ my $members = $3;
+@@ -1148,20 +1148,20 @@ sub dump_struct($$) {
+ }
+ }
+ }
+- $members =~ s/(struct|union)([^\{\};]+)\{([^\{\}]*)}([^\{\}\;]*)\;/$newmember/;
++ $members =~ s/(struct|union)([^\{\};]+)\{([^\{\}]*)\}([^\{\}\;]*)\;/$newmember/;
+ }
+
+ # Ignore other nested elements, like enums
+- $members =~ s/(\{[^\{\}]*})//g;
++ $members =~ s/(\{[^\{\}]*\})//g;
+
+ create_parameterlist($members, ';', $file, $declaration_name);
+ check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual);
+
+ # Adjust declaration for better display
+- $declaration =~ s/([{;])/$1\n/g;
+- $declaration =~ s/}\s+;/};/g;
++ $declaration =~ s/([\{;])/$1\n/g;
++ $declaration =~ s/\}\s+;/};/g;
+ # Better handle inlined enums
+- do {} while ($declaration =~ s/(enum\s+{[^}]+),([^\n])/$1,\n$2/);
++ do {} while ($declaration =~ s/(enum\s+\{[^\}]+),([^\n])/$1,\n$2/);
+
+ my @def_args = split /\n/, $declaration;
+ my $level = 1;
+@@ -1171,12 +1171,12 @@ sub dump_struct($$) {
+ $clause =~ s/\s+$//;
+ $clause =~ s/\s+/ /;
+ next if (!$clause);
+- $level-- if ($clause =~ m/(})/ && $level > 1);
++ $level-- if ($clause =~ m/(\})/ && $level > 1);
+ if (!($clause =~ m/^\s*#/)) {
+ $declaration .= "\t" x $level;
+ }
+ $declaration .= "\t" . $clause . "\n";
+- $level++ if ($clause =~ m/(\{)/ && !($clause =~m/}/));
++ $level++ if ($clause =~ m/(\{)/ && !($clause =~m/\}/));
+ }
+ output_declaration($declaration_name,
+ 'struct',
+@@ -1244,7 +1244,7 @@ sub dump_enum($$) {
+ # strip #define macros inside enums
+ $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos;
+
+- if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
++ if ($x =~ /enum\s+(\w+)\s*\{(.*)\}/) {
+ $declaration_name = $1;
+ my $members = $2;
+ my %_members;
+@@ -1785,7 +1785,7 @@ sub process_proto_type($$) {
+ }
+
+ while (1) {
+- if ( $x =~ /([^{};]*)([{};])(.*)/ ) {
++ if ( $x =~ /([^\{\};]*)([\{\};])(.*)/ ) {
+ if( length $prototype ) {
+ $prototype .= " "
+ }