--- /dev/null
+From aceb23b9348b98fb93a57cb70149ca8c43962aec Mon Sep 17 00:00:00 2001
+From: Jonathan Corbet <corbet@lwn.net>
+Date: Tue, 9 Sep 2025 13:35:37 -0600
+Subject: docs: kdoc: handle the obsolescensce of docutils.ErrorString()
+
+From: Jonathan Corbet <corbet@lwn.net>
+
+commit 00d95fcc4dee66dfb6980de6f2973b32f973a1eb upstream.
+
+The ErrorString() and SafeString() docutils functions were helpers meant to
+ease the handling of encodings during the Python 3 transition. There is no
+real need for them after Python 3.6, and docutils 0.22 removes them,
+breaking the docs build
+
+Handle this by just injecting our own one-liner version of ErrorString(),
+and removing the sole SafeString() call entirely.
+
+Reported-by: Zhixu Liu <zhixu.liu@gmail.com>
+Signed-off-by: Jonathan Corbet <corbet@lwn.net>
+Message-ID: <87ldmnv2pi.fsf@trenco.lwn.net>
+[ Salvatore Bonaccorso: Backport to v6.17.y for context changes in
+ Documentation/sphinx/kernel_include.py with major refactorings for the v6.18
+ development cycle. Backport ErrorString definition as well to
+ Documentation/sphinx/kernel_abi.py file for 6.12.y where it is imported
+ from docutils before the faccc0ec64e1 ("docs: sphinx/kernel_abi: adjust
+ coding style") change. ]
+Suggested-by: Andreas Radke <andreas.radke@mailbox.org>
+Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/sphinx/kernel_abi.py | 4 +++-
+ Documentation/sphinx/kernel_feat.py | 4 +++-
+ Documentation/sphinx/kernel_include.py | 6 ++++--
+ Documentation/sphinx/maintainers_include.py | 4 +++-
+ 4 files changed, 13 insertions(+), 5 deletions(-)
+
+--- a/Documentation/sphinx/kernel_abi.py
++++ b/Documentation/sphinx/kernel_abi.py
+@@ -42,9 +42,11 @@ import kernellog
+ from docutils import nodes, statemachine
+ from docutils.statemachine import ViewList
+ from docutils.parsers.rst import directives, Directive
+-from docutils.utils.error_reporting import ErrorString
+ from sphinx.util.docutils import switch_source_input
+
++def ErrorString(exc): # Shamelessly stolen from docutils
++ return f'{exc.__class__.__name}: {exc}'
++
+ __version__ = '1.0'
+
+ def setup(app):
+--- a/Documentation/sphinx/kernel_feat.py
++++ b/Documentation/sphinx/kernel_feat.py
+@@ -40,9 +40,11 @@ import sys
+ from docutils import nodes, statemachine
+ from docutils.statemachine import ViewList
+ from docutils.parsers.rst import directives, Directive
+-from docutils.utils.error_reporting import ErrorString
+ from sphinx.util.docutils import switch_source_input
+
++def ErrorString(exc): # Shamelessly stolen from docutils
++ return f'{exc.__class__.__name}: {exc}'
++
+ __version__ = '1.0'
+
+ def setup(app):
+--- a/Documentation/sphinx/kernel_include.py
++++ b/Documentation/sphinx/kernel_include.py
+@@ -34,13 +34,15 @@ u"""
+ import os.path
+
+ from docutils import io, nodes, statemachine
+-from docutils.utils.error_reporting import SafeString, ErrorString
+ from docutils.parsers.rst import directives
+ from docutils.parsers.rst.directives.body import CodeBlock, NumberLines
+ from docutils.parsers.rst.directives.misc import Include
+
+ __version__ = '1.0'
+
++def ErrorString(exc): # Shamelessly stolen from docutils
++ return f'{exc.__class__.__name}: {exc}'
++
+ # ==============================================================================
+ def setup(app):
+ # ==============================================================================
+@@ -111,7 +113,7 @@ class KernelInclude(Include):
+ raise self.severe('Problems with "%s" directive path:\n'
+ 'Cannot encode input file path "%s" '
+ '(wrong locale?).' %
+- (self.name, SafeString(path)))
++ (self.name, path))
+ except IOError as error:
+ raise self.severe('Problems with "%s" directive path:\n%s.' %
+ (self.name, ErrorString(error)))
+--- a/Documentation/sphinx/maintainers_include.py
++++ b/Documentation/sphinx/maintainers_include.py
+@@ -22,10 +22,12 @@ import re
+ import os.path
+
+ from docutils import statemachine
+-from docutils.utils.error_reporting import ErrorString
+ from docutils.parsers.rst import Directive
+ from docutils.parsers.rst.directives.misc import Include
+
++def ErrorString(exc): # Shamelessly stolen from docutils
++ return f'{exc.__class__.__name}: {exc}'
++
+ __version__ = '1.0'
+
+ def setup(app):