From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF71627BF93 for ; Sun, 3 May 2026 04:11:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777781489; cv=none; b=gd1DWhfDnlwHaQoF8HsBKJnxCcm8TXOIqrZxNUlgi2vlpJHaYFZbKah+/DvKgxNOhyyY/S7X7JkIOiuB1XOVaEGuxwL4MwbXrmhYHRKf9lyRl2rUfMvbaQlhwS5pDCEc98W5cF+hyMjG/EVtxrVzH/Tqbh5EwuiClVd05n4KmhM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777781489; c=relaxed/simple; bh=JJsAG1gkqso2YfAnn4Atyld0tjhtLKfPRJvpabuD1Cc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=AMtseKYhsdHtV2E6tWN8tzmktg38Eticb93e71wVlYYUxyx9jZlaiCKTRp1jeAe19SwECxHJ92Mjbid795sYpLywq2l8AEjpnDveug0UhkVqD1lfZZPzXkYBdqo/St83Z0ki92YbeSFm69TDXURlOwjg6truUcDc7Cn9ip6bn0g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TWmPuA4+; arc=none smtp.client-ip=209.85.216.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TWmPuA4+" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-36536771300so15441a91.1 for ; Sat, 02 May 2026 21:11:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777781487; x=1778386287; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=I25SyU9x+6Ytm7vZdxa3Dcmf48Aa30sxYXcChtdcj2o=; b=TWmPuA4+OPZLYKFIW1bqU7ea8Wlvv26cWO8nks3rYcS5MMa0PPB4NsMaTZquA45l5g WFEWntE8ENxDxxDJeR3S2y4EyEQchhVB8Vtfke/JSHetM9fqny5U1pXgOfOHEy5sq0GK eUmceoZZ8UKTsXDXQlsuaNRFkBy4uF2aYFDrddhepyII58gUL4CYUu7pO/YK5pOeRRJG Se3k4vPdik3y8mRrWM/V8KY/lStZTiS8RE+PUbk0tg59C442ATigVmJXb5ZCrmZPEFKl Cj/k2Gpm+HFMOVmu5GRBlbyAEPcR8RR2EFHnX+oleYBgQ0yvbzYvYPMQIhhfKBN8/dor PyVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777781487; x=1778386287; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=I25SyU9x+6Ytm7vZdxa3Dcmf48Aa30sxYXcChtdcj2o=; b=BmEprpR0gZjU4x/ZMKGfn6d5EoivZwEds0L6lEWhCMyz2wd/P7sGTUymsFCJYNXx0v F/5H+Muv5mHWQgUky7sS6zFWM8vOBm7XHCcR/lgkbChaDZD4u7ow/cIxuKKZaiUba/nC cbn19GvIJH8CH4nGA6cAcuUcC3rxN8Jj7Npj672ngvBq2LviZU4VDa/Gmgh9hyOCeOF8 8O866vvUWdQliy8yTY5LdZ0T39m6ZNS3SDFPHEdJ9Ktzxwv6yKimM4R9wxcrXawXKdJo Tz+/2GeOm51MkZYU0VvJESHVmEx3Uhc6531WmOUhipvPYF07gN2JTheDx8oZepahn3ei ho/g== X-Gm-Message-State: AOJu0Yyn6IJH3n3CGHqJC4QWXSdyM2WRQZZvDjelLMZXC2NkQ6951HVe 4Eh56Z5PDjqcX7GshmIcSBTZxO9P3/1cx/qK4XeLxmhQl+1tl6s2/AWmQMotGO14JmKJxA== X-Gm-Gg: AeBDieuUOWuTL8wUtgUDDXHI6erUYwKz9EPjsIZEfll641QJB8JFPFqS2GDtXVzKief c8bP3O4ZYJrcyOkNziT4Bo9PH1yKA+Ev1bK10gVli9U+WgJ8uYSnHdLNQsMORUzo3jNLczmm+aa 6vtA9d4jWQgS+APw35RE86t+llqdzMkZO3gsr23KC4Ngl077HEKh7u8SZu0+4nNdyGyIwWeK5Id qmPnlzp0fIUJUIgmVu6Mu86Tx19e5bIPcMwhNTJgHvmSssL6+BEXLPPAhuaXoKXJlQI+XpGgFXD hkny+VJZX+yFnqOVALrQUCnU9kx6Mu8YIlaiXDylrk53JZuSVX7E5cIPsT/lPAGSfhb2LGnIIqo pqu0uLbjTKHtDeg5xp4Ah1hO/THrJDPwxA09j4FjCWkm36WQGQp9oExtHTBu0nK9JBXu/dXQd3B 6UO//cMMNBS/n9pJgbfxF/Td9MHdoG4Q== X-Received: by 2002:a17:903:18a:b0:24b:1585:6350 with SMTP id d9443c01a7336-2b9f1daca26mr45647895ad.11.1777781487415; Sat, 02 May 2026 21:11:27 -0700 (PDT) Received: from scootaloo ([101.179.98.31]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b9cae3b8e6sm60342925ad.65.2026.05.02.21.11.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 21:11:26 -0700 (PDT) From: Angus Gardner To: linux-kernel@vger.kernel.org Cc: apw@canonical.com, joe@perches.com, dwaipayanray1@gmail.com, lukas.bulwahn@gmail.com Subject: [PATCH] checkpatch: fix false positives for IIO_DEV_ATTR permission checks Date: Sun, 3 May 2026 14:11:20 +1000 Message-ID: <20260503041120.528859-1-angusg778@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The IIO_DEV_ATTR_[A-Z_]+ entry in @mode_permission_funcs used argument position 1 for all IIO_DEV_ATTR_* macros, but this is incorrect for several variants that take an extra numeric argument before the mode: IIO_DEV_ATTR_FREQ(channel, num, mode, ...) - mode at position 3 IIO_DEV_ATTR_PHASE(channel, num, mode, ...) - mode at position 3 IIO_DEV_ATTR_OUTY_ENABLE(channel, out, mode, ..) - mode at position 3 With position 1, checkpatch checked the channel argument (always 0) or the numeric _num/_output argument (0, 1, 2, 3) instead of the actual permission, producing spurious NON_OCTAL_PERMISSIONS errors. IIO_DEV_ATTR_OUT_WAVETYPE has no permission argument at all (it is hardcoded as 0200 inside the macro), so it should be excluded from permission checking entirely. Fix by splitting the single entry into two: one matching the three- argument variants at position 3, using a negative lookahead to prevent overlap with the second entry which matches the remaining IIO_DEV_ATTR_* macros (including OUT_WAVETYPE exclusion) at the correct position 2. Signed-off-by: Angus Gardner --- scripts/checkpatch.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 0492d6afc..fa2af8527 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -840,7 +840,8 @@ our @mode_permission_funcs = ( ["debugfs_create_(?:file|u8|u16|u32|u64|x8|x16|x32|x64|size_t|atomic_t|bool|blob|regset32|u32_array)", 2], ["proc_create(?:_data|)", 2], ["(?:CLASS|DEVICE|SENSOR|SENSOR_DEVICE|IIO_DEVICE)_ATTR", 2], - ["IIO_DEV_ATTR_[A-Z_]+", 1], + ["IIO_DEV_ATTR_(?:FREQ|PHASE|OUTY_ENABLE)[A-Z_]*", 3], + ["IIO_DEV_ATTR_(?!(?:FREQ|PHASE|OUTY_ENABLE|OUT_WAVETYPE))[A-Z_]+", 2], ["SENSOR_(?:DEVICE_|)ATTR_2", 2], ["SENSOR_TEMPLATE(?:_2|)", 3], ["__ATTR", 2], -- 2.51.0