Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3450405pxf; Mon, 29 Mar 2021 02:31:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyuSKjLHQISC4M8oA2QAfZZ8+D7wsDq4c4kh81hOZL41PcBcFeQJgI/gBvwxfTccmnYh2Q9 X-Received: by 2002:aa7:db4f:: with SMTP id n15mr27368497edt.12.1617010312102; Mon, 29 Mar 2021 02:31:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617010312; cv=none; d=google.com; s=arc-20160816; b=vd6itSXCg8lUbcJ7brkDUs3MfFigFNmdJA4Z3YC2IKJyz84emad4zO7i4PNus/xmLx FztShua/RH+oN9yJvfyQcM3Ge0QgLSmVz8aLHwWVoDpADgYnFrplnc4v71E1Bg70zIpo +h9Ax4fS/zqfy2owD9aLBVJ4c4w5/4OTAzNzj63oYGohmuLZiWAxclmq4t/j1FvCbtV9 jEId83X+L6l2QSSC6NePEo0EPrf4GbJHE1NnS0AOC+/EDq3EWCIl0chebufeqauv+/Zf ezzuNiVBHU8EMnrU1/HNK0jM61pyGD6G6Jh98SDMLw7bwAHNS23ddeMxQUvpwOnmGWZd jJeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=I2rYcnAf0ifNkAwBrdzfC3Hucp+PdY95Y1i5iXCzcs4=; b=nLmqvzKjILowRpqWuHeg8cOVKyUrpBqh3J6RzB5kCnRcKNDK2TPCUHYG1uCCCEEDns aQhRqgdV0X2aiCZ7sMyf+ZHvsGRDrEXkg+MkStvu6P38SYnAlesyXv/Cs8/I/sQu12bv C4BcQQtaGyhg9BdV15L+GfeAbJMODYoVnK2RCbo5YjbPx2P8a1+oxclakyHnVqWeotR5 ODyWqUR/lYcelAox4WLUbOFIuvQoLITCJWN2s72Y+hMobuXfbvQpq+Y7d8OmrlLM8ngK X+sAr0oeg0YMao0vmHY6mGssFOLsZuh12lE35cD736nIRPcxkfY4DPpzC9pFApwaX1VT vqUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=DWp35A6I; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w14si12135951edu.225.2021.03.29.02.31.29; Mon, 29 Mar 2021 02:31:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=DWp35A6I; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231539AbhC2JaM (ORCPT + 99 others); Mon, 29 Mar 2021 05:30:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36030 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231296AbhC2J37 (ORCPT ); Mon, 29 Mar 2021 05:29:59 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E5CDC061574; Mon, 29 Mar 2021 02:29:59 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id h8so4111953plt.7; Mon, 29 Mar 2021 02:29:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=I2rYcnAf0ifNkAwBrdzfC3Hucp+PdY95Y1i5iXCzcs4=; b=DWp35A6ITBgFsPERJoKrnD9oIp9n4wapfaTcGC2EG6YLrSB5O3Nq0M0kcN7pV4Xk6z fDyfD26eVfv9+wOhmh7PcmI8AUF7tDgYEYMviw+lg1KX9MV3Dt/k/GkB+pj6+tPI5R7W KkylbAr0Hy83xpbgXRhZSJKC7Pw/yTFB2O2pIVAkGr5DsyvOLDRYcZQfAE7lpRPPhO2P S8/2WUwaxBCscvR4kRpbfY342rTnsJRIgEdxUxxtmD25Nbprj593WvV9jFmkaVhB94WY BKkBC0NkbfHU+CMNx3IuhvKltB9rx+6NZkpuOlT2H5wdmQCyI3zRt5P3Toe6QTX8ZtsS iDsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=I2rYcnAf0ifNkAwBrdzfC3Hucp+PdY95Y1i5iXCzcs4=; b=epTUeO/e+dlnLOVjgJh6DNTxS3g+wbG3uMdsre55+3ETvYId6hwVIer5rsQXRK5dJT NSTP0YcmmMe7JjbZFL8v5mwv5+NNhpk4HHx92m6ZcAJFL3xDoXBGyPb5jB32V1h5vUPK Gwt1BBuVQw5hwpIUL9cUcnlv5V4pP0SdnTF6nV7HFrx3ZrPGBV44z7mhLSUCwoklq2rp id7+gQ4lLmht1mWswN6W+xaAPyMdbEO94Pt2ese6eJ7LGjD1Qlnqeifcj7jAZejrgPTK DBSYMbQT4at/4GAjBDjpQV8BxOUd83gIYOrKGhmTg0HAtjcEN10czWhpv1BiLY7B9Dgg 1Mww== X-Gm-Message-State: AOAM532ZDIZEIWnRdMBHZzyhPO0m56YzsEKjyEFbwf6eCocNTGpFVDs2 rplt9IEEAYOUvxTowl3XGjM= X-Received: by 2002:a17:90b:16cd:: with SMTP id iy13mr26404121pjb.46.1617010199064; Mon, 29 Mar 2021 02:29:59 -0700 (PDT) Received: from localhost.localdomain ([2405:201:600d:a089:4ed:8f53:adc7:b574]) by smtp.googlemail.com with ESMTPSA id z1sm16581419pfn.127.2021.03.29.02.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Mar 2021 02:29:58 -0700 (PDT) From: Aditya Srivastava To: corbet@lwn.net Cc: yashsri421@gmail.com, lukas.bulwahn@gmail.com, linux-kernel-mentees@lists.linuxfoundation.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] scripts: kernel-doc: add warning for comment not following kernel-doc syntax Date: Mon, 29 Mar 2021 14:59:45 +0530 Message-Id: <20210329092945.13152-1-yashsri421@gmail.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, kernel-doc start parsing the comment as a kernel-doc comment if it starts with '/**', but does not take into account if the content inside the comment too, adheres with the expected format. This results in unexpected and unclear warnings for the user. E.g., running scripts/kernel-doc -none mm/memcontrol.c emits: "mm/memcontrol.c:961: warning: expecting prototype for do not fallback to current(). Prototype was for get_mem_cgroup_from_current() instead" Here kernel-doc parses the corresponding comment as a kernel-doc comment and expects prototype for it in the next lines, and as a result causing this warning. Provide a clearer warning message to the users regarding the same, if the content inside the comment does not follow the kernel-doc expected format. Signed-off-by: Aditya Srivastava --- scripts/kernel-doc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/scripts/kernel-doc b/scripts/kernel-doc index cb92d0e1e932..b1d71a7b721f 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2103,15 +2103,17 @@ sub process_name($$) { } } elsif (/$doc_decl/o) { $identifier = $1; - if (/\s*([\w\s]+?)(\(\))?\s*([-:].*)?$/) { + my $is_kernel_comment = 0; + if (/^\s*\*\s*([\w\s]+?)(\(\))?\s*([-:].*)?$/) { $identifier = $1; + $decl_type = 'function'; + $identifier =~ s/^define\s+//; + $is_kernel_comment = 1; } if ($identifier =~ m/^(struct|union|enum|typedef)\b\s*(\S*)/) { $decl_type = $1; $identifier = $2; - } else { - $decl_type = 'function'; - $identifier =~ s/^define\s+//; + $is_kernel_comment = 1; } $identifier =~ s/\s+$//; @@ -2133,6 +2135,13 @@ sub process_name($$) { $declaration_purpose = ""; } + if (!$is_kernel_comment) { + print STDERR "${file}:$.: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst\n"; + print STDERR $_; + ++$warnings; + $state = STATE_NORMAL; + } + if (($declaration_purpose eq "") && $verbose) { print STDERR "${file}:$.: warning: missing initial short description on line:\n"; print STDERR $_; -- 2.17.1