From nobody Mon May 4 13:04:18 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 68A411B86C7 for ; Mon, 4 May 2026 09:23:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777886632; cv=none; b=M1IOdH2vf4qqHJRN9cnRXbq3WogJYIE8ItC2xEeM7qQXg2XXFSNqXVvWKogrHOji7P0xjoK9k7cPMv7OIgxzUsPaZfjK7S+OxJwqaHeCg5wADKaQC+P6hVW8VWGbsoVJHEwMyrvqv1uNxYwytUTXmxTJHLuOZWa6z2l1k5yMb5Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777886632; c=relaxed/simple; bh=JJsAG1gkqso2YfAnn4Atyld0tjhtLKfPRJvpabuD1Cc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=JYUlo//W6H/M3R9VEu637LHrWYFBYpyMiMw5d1oEEgFx3MADYICcRMfu0xtenMepyvUoeDxDAbn4jBkdCDkkEtOyyPzrhv4S7zlYrbIpqBoYnm+f2Kt4ytpBcbL7gYmjXkX1iC/rSZyfY2oCnqFfLf4FOdt1S7TJA15pt4cu0pk= 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=T1TGXt3i; arc=none smtp.client-ip=209.85.214.171 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="T1TGXt3i" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2b9fcf7c91bso12944485ad.0 for ; Mon, 04 May 2026 02:23:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777886630; x=1778491430; 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=T1TGXt3icCjkqCyCglw6kRnJqpEprugOkZxGRqzQ2n5LMjHaFuu5NyfUrOSLGNDjTC tImuu6ZDWaDUi2IBye9p9KpWUMelFwbAJn3ifDmsTAaSHj/srm4p6olDfgF8gPXlEeyl R51DhnNS5DmW1RWeEAsUMJIgVzDg2QTyM33BxaFUIqC7limLfnP9CJbXwlxFdv1oJrQO 73xi69jfwqJ9qKtbbLYeFAm1irsxDeXEF/DOW+8hwV6a2TaUDk9aO4ie4PhuxGcXvIdS bpjwG8VLfyPcCI6YHGCMROMjYYltxwqdQUbKFZuZB+jw9jWQhTlPK9Gtq6xt7NC/agca g0kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777886630; x=1778491430; 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=QU/Sf4OOCeNRQFnWYWANN05gtu159xLefmxUnvk5IiKIfnGWPnrc+zoqNZkOdgyo52 j+rS5m2iQhJnCPvqEXsMWgDkUlN1TLKYPP4K9FRQxN8RlpCfn26E2eveqCi8fY9FncxW ZY4YHPmoIKu+QdfrJbPlDcoRZ5EGlvnlWW4z0QRK7PHdgn33p2IMGIAXbfTVRR062/Tb VX8aopBM2osxzZvVM9bG6pkdbXHcHgP5+XKrWr1yISK5KcHjSTyV6LCNkOol+qJ51UMv GcznoXAewqAOG0vBsSZ01LV0uVTxH0moD+9vGNcAsaQuTUxO3PyqdeHthouKKcaaSMXK Y1TA== X-Gm-Message-State: AOJu0YwiJIDyjq0VclloVFJ6BY2ZXxnbWxifmQE/CNT0u3R0NcWqi20N 4z2P+sTaA9ANLyZQODTawrikXQvCiRGiwPOOzJIGfdtT4ApbNuUoM4dJchqe+YcPgvGXGw== X-Gm-Gg: AeBDievJfI/RBP5kpF/tVufSomRbkS4PCDdM/Z6h/gK4oAKpYl7vm6JF5ahWSJRDoK4 SdmHnbLL/joderr803Vd4uvhIz3VBMEnHG2m3YSYzs566FKYtpq1IpkhDVvRQaHszEgLbQ8UTb0 v2HQqCrAkcFw1tu7n0d675R6/9AE/d9aPibe6Wvz9C9GCLt40OUjFpJEQCT9+lyk6NxY5+/cX7v VGNJcPUTLnBdzQ6I7t5b9M4flu4yELeidT/Aa5ob/cN2iwG+x/61s9BML81uhSUEkDNQfDF+UH0 Ol975Y+mbgmWLiPhwIXO0L4U86WvrkXP3Z7vMo+gid9alPzYLSSnb1VjgSQ5/v5CXsE/wQCqPcA vmi3d2R0NyBOnjG1x36tdYdXFDwx362q2XK1NhOwZg0AWxNFvsic1YRTj35Vcu0yzAmz1eFd09L Ki06wEvpvhxVLQrm75CUK3Jv33tQj+KA== X-Received: by 2002:a17:903:388b:b0:2b2:4bf9:1766 with SMTP id d9443c01a7336-2b9f280a9e3mr88071525ad.33.1777886630267; Mon, 04 May 2026 02:23:50 -0700 (PDT) Received: from scootaloo ([101.179.98.31]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b9caa7e7besm100337605ad.12.2026.05.04.02.23.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 02:23:49 -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: Mon, 4 May 2026 19:23:43 +1000 Message-ID: <20260504092343.1539034-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: quoted-printable Content-Type: text/plain; charset="utf-8" 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 =3D ( ["debugfs_create_(?:file|u8|u16|u32|u64|x8|x16|x32|x64|size_t|atomic_t|bo= ol|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], --=20 2.51.0