Replicate the same behavior as what's done with kernel-doc.pl: continue building docs even when there are exceptions. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> --- Documentation/sphinx/kerneldoc.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py index 314479718a01..4de667d4d95b 100644 --- a/Documentation/sphinx/kerneldoc.py +++ b/Documentation/sphinx/kerneldoc.py @@ -278,14 +278,27 @@ class KernelDocDirective(Directive): node = nodes.section() - kfiles.parse(**self.parse_args) - filenames = self.parse_args["file_list"] + try: + kfiles.parse(**self.parse_args) + filenames = self.parse_args["file_list"] + msgs = kfiles.msg(**self.msg_args, filenames=filenames) - for filename, out in kfiles.msg(**self.msg_args, filenames=filenames): + except Exception as e: # pylint: disable=W0703 + logger.warning("kernel-doc '%s' processing failed with: %s" % + (cmd_str(cmd), str(e))) + + for filename, out in msgs: if self.verbose >= 1: print(cmd_str(cmd)) - ret = self.parse_msg(filename, node, out, cmd) + try: + ret = self.parse_msg(filename, node, out, cmd) + + except Exception as e: # pylint: disable=W0703 + logger.warning("kernel-doc '%s' processing failed with: %s" % + (cmd_str(cmd), str(e))) + return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] + if ret: return ret -- 2.49.0