Received: by 10.223.164.202 with SMTP id h10csp2125272wrb; Thu, 16 Nov 2017 09:44:57 -0800 (PST) X-Google-Smtp-Source: AGs4zMaylhIxSWCuV96SNN2kfZ9NctHJ2RH3+hfEemzFqkr1c2yDq6NRtHUHWc1nOOd0ok6gxcpu X-Received: by 10.84.195.36 with SMTP id i33mr2533729pld.38.1510854296979; Thu, 16 Nov 2017 09:44:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510854296; cv=none; d=google.com; s=arc-20160816; b=gUyxzCgh+0mtr1i/Q8avKwiXA3CYUSQgHsv7Fv15iTKnzWV5FFVRhKooBdvm7MKRz3 BDgooVJ6x/r7a5D/TZOeDGaiUKENq485YZHf7sLl0a3A13upr/o2ysmvOKjaO0Nox0d5 7bAo3kAsITLuOVhZgWH9iY9CuW14Mr4ce05hYLbNZN1inokBY8QUmvgsx67mpDGKSb4+ GHrQ8WbFCoBiXueoCC7vhtULBH+Oj6R8hwvD4Buaxj2wsPpytkbxgOqb+sA4gVbFMcCx zYd3TgoArSczVy99Ds+qMzF0UK9tDMI97QVo1VM1aYsY19NzZ1ltTuLTVNcZpMjVCcpw fMnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=02KfU4Y54vyT2VMirfBB86rnMOSAkSJLu/itHHvKhhA=; b=ItRnodkRaNz9sqcv8dlzz8SbqECHjb1LpMrLSCwZ38MCwS1BH/hwQNe021EZGfiPVc uQEHt7OH71p9k8nWDSqAcJtgFEZgjTIch1Ti9ZJyJLT15TS3ecYojpMLIetf4s0H1hpa /954Iqsn3Yml+cMedF5Ayj/VYfNNf9dFifHGV9kVwsjFZnCjtT2qqoaaRAdfwM70fuH/ bHxRb9lVy4dKgLeo6KUuEzBACYEjPiQxOx8wfTrcBwM5yIuEVZ2SjQuZuPTMhykKWKp3 KBdrqS7OCuqMD+Lk3ISg0aFNWwTFARBWWm2wcn060P/rvQ5p/JOsk99houIM7VYfJcI7 QBSg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g4si1205671pgc.83.2017.11.16.09.44.43; Thu, 16 Nov 2017 09:44:56 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965164AbdKPRCz (ORCPT + 92 others); Thu, 16 Nov 2017 12:02:55 -0500 Received: from aserp1040.oracle.com ([141.146.126.69]:50888 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936145AbdKPRCf (ORCPT ); Thu, 16 Nov 2017 12:02:35 -0500 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id vAGH2LIr000472 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Nov 2017 17:02:22 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id vAGH2L5B018928 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Nov 2017 17:02:21 GMT Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id vAGH2Kqo017856; Thu, 16 Nov 2017 17:02:21 GMT Received: from abi.no.oracle.com (/10.172.144.123) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 16 Nov 2017 09:02:20 -0800 From: Knut Omang To: linux-kernel@vger.kernel.org Cc: Knut Omang , =?UTF-8?q?=C3=85smund=20=C3=98stvold?= , =?UTF-8?q?H=C3=A5kon=20Bugge?= , John Haxby , Kees Cook , linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org, Mauro Carvalho Chehab , =?UTF-8?q?Micka=C3=ABl=20Sala=C3=BCn?= Subject: [PATCH 0/7] Support for automatic checkpatch running in the kernel Date: Thu, 16 Nov 2017 18:01:40 +0100 Message-Id: X-Mailer: git-send-email 2.13.6 X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series implements features to facilitate running checkpatch on the entire kernel as part of automatic testing. This is done by by adding a few small features to checkpatch and put these features to use to implement support for a new Makefile environment variable P={1,2} following the pattern of sparse and the C={1,2} variable. The basic functionality + docs are in patch #1-4. It also fixes a minor issue with "checkpatch --fix-inplace" found during testing (patch #5). The most important checkpatch feature added is the --ignore-cfg feature, which takes a file argument and parses that file according to this minimal language: # comments line_len except checkpatch_type [files ...] pervasive checkpatch_type1 [checkpatch_type2 ...] With "make P=2" checkpatch is called with "--file" and "--ignore_cfg checkpatch.cfg" which causes it to look for a file named 'checkpatch.cfg' in the same directory as the source file. If that file exists, checkpatch will be run with an implicit --strict and with the @ignore list expanded with content from the configuration file. If it does not exist, make will simply silently ignore the file. Patches #6-7 enhances this behaviour to also scan the directories above a file until a match for the --file parameter is found. The idea is that the community can work to add checkpatch.cfg files to directories, serving both as documentation and as a way for subsystem maintainers to enforce policies and individual tastes as well as TODOs and/or priorities, to make it easier for newcomers to contribute in this area. By ignoring directories without such files, automation can start right away as it is trivially possible to run errorless with P=2 for the entire kernel. The patches includes a documentation file with some more details. This patch set has evolved from an earlier implementation I made that was just a wrapper script around checkpatch. That version have been used for a number of years on a driver project I worked on where we had automatic checkin regression testing. I extended that to also run checkpatch to avoid having to clean up frequent unintended whitespace changes and style violations from others... I have also tested this version on some directories I am familiar with. The result of that work is available in two patch sets of 10 and 11 patches, but we agreed that it would be better to post them as separate patch sets later. Those patch sets illustrates how I picture the "flow" from just "reining in" the checkpatch detections to actually fixing classes of checkpatch issues one by one, while updating the checkpatch.cfg file(s) to have 0 errors or warnings at any commit boundary. The combined set is available here: git://github.com/knuto/linux.git branch checkpatch Comments and suggestions appreciated! Thanks, Knut Knut Omang (7): checkpatch: Implement new --ignore-cfg parameter kbuild: Add P= command line flag to run checkpatch checkpatch: Add a few convenience options to disable/modify features Documentation: Add documentation for the new P= Makefile option checkpatch: Improve --fix-inplace for TABSTOP checkpatch: Make --ignore-cfg look recursively for the file Documentation: Update checkpatch --ignore-cfg description Documentation/dev-tools/index.rst | 1 +- Documentation/dev-tools/run-checkpatch.rst | 109 ++++++++++++++++++++++- Makefile | 20 +++- scripts/Makefile.build | 13 +++- scripts/checkpatch.pl | 108 +++++++++++++++++++++- 5 files changed, 249 insertions(+), 2 deletions(-) create mode 100644 Documentation/dev-tools/run-checkpatch.rst base-commit: bebc6082da0a9f5d47a1ea2edc099bf671058bd4 -- git-series 0.9.1 From 1584991906081394327@xxx Fri Nov 24 23:27:52 +0000 2017 X-GM-THRID: 1584936292664143894 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread