From: Thomas Gleixner <tglx@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: kernel test robot <lkp@intel.com>,
Ian Rogers <irogers@google.com>,
oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
x86@kernel.org, sparse@chrisli.org, linux-sparse@vger.kernel.org,
Marco Elver <elver@google.com>
Subject: Re: [tip:timers/vdso 12/14] net/rds/ib_cm.c:96:35: sparse: sparse: incorrect type in argument 1 (different modifiers)
Date: Fri, 16 Jan 2026 00:01:19 +0100 [thread overview]
Message-ID: <87ms2e32gw.ffs@tglx> (raw)
In-Reply-To: <20260115211120.GD831050@noisy.programming.kicks-ass.net>
On Thu, Jan 15 2026 at 22:11, Peter Zijlstra wrote:
> On Thu, Jan 15, 2026 at 08:28:51PM +0100, Thomas Gleixner wrote:
>> On Thu, Jan 15 2026 at 00:36, kernel test robot wrote:
>>
>> Cc+ sparse folks.
>>
>> > sparse warnings: (new ones prefixed by >>)
>> >>> net/rds/ib_cm.c:96:35: sparse: sparse: incorrect type in argument 1 (different modifiers) @@ expected void * @@ got restricted __be64 const * @@
>> > net/rds/ib_cm.c:96:35: sparse: expected void *
>> > net/rds/ib_cm.c:96:35: sparse: got restricted __be64 const *
>> > net/rds/ib_cm.c:103:27: sparse: sparse: incorrect type in argument 1 (different modifiers) @@ expected void * @@ got restricted __be64 const * @@
>> > net/rds/ib_cm.c:103:27: sparse: expected void *
>> > net/rds/ib_cm.c:103:27: sparse: got restricted __be64 const *
>>
>> After staring a while at it, it turns out that get_unaligned_t(), which
>> uses __unqual_scalar_typeof() to get an unqualified type makes sparse
>> unhappy when the data type is __be64 (or any other __beNN variant).
>>
>> __beNN is annotated with __attribute__((bitwise)) when sparse is invoked
>> (#ifdef CHECKER). That allows sparse to detect incompatible math
>> operations with __beNN variables.
>>
>
> Per:
>
> https://git.kernel.org/pub/scm/devel/sparse/sparse-dev.git/commit/?id=dc9efe442b8949234a6599fdc94dc7221dd040e1
>
> it seems Sparse now knows about __typeof_unqual__; and it looks like the
> implementation does what you want here (although I've not tested it).
>
> Something like so perhaps, which then mandates the very latest Sparse.
I tried that before and sparse is still upset:
net/rds/ib_cm.c:96:35: warning: incorrect type in argument 1 (different modifiers)
net/rds/ib_cm.c:96:35: expected void *
net/rds/ib_cm.c:96:35: got restricted __be64 const *
net/rds/ib_cm.c:103:27: warning: incorrect type in argument 1 (different modifiers)
net/rds/ib_cm.c:103:27: expected void *
net/rds/ib_cm.c:103:27: got restricted __be64 const *
This time I looked deeper and it seems that USE_TYPEOF_UNQUAL is not
set.
If I force it to be set and use a proper compiler and top of tree
sparse, everything seems to be happy.
Figuring that out is something for tomorrow...
Thanks,
tglx
next prev parent reply other threads:[~2026-01-15 23:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-14 16:36 [tip:timers/vdso 12/14] net/rds/ib_cm.c:96:35: sparse: sparse: incorrect type in argument 1 (different modifiers) kernel test robot
2026-01-14 17:51 ` Ian Rogers
2026-01-14 20:04 ` Thomas Gleixner
2026-01-14 21:03 ` Ian Rogers
2026-01-14 21:27 ` Thomas Gleixner
2026-01-14 21:42 ` Ian Rogers
2026-01-15 19:28 ` Thomas Gleixner
2026-01-15 21:11 ` Peter Zijlstra
2026-01-15 21:19 ` Linus Torvalds
2026-01-15 21:30 ` Peter Zijlstra
2026-01-15 23:03 ` Linus Torvalds
2026-01-16 8:28 ` Peter Zijlstra
2026-01-15 23:01 ` Thomas Gleixner [this message]
2026-01-16 11:25 ` Thomas Gleixner
2026-01-16 18:18 ` [PATCH] compiler: Use __typeof_unqual__() for __unqual_scalar_typeof() Thomas Gleixner
2026-01-17 5:25 ` Ian Rogers
2026-01-17 21:25 ` [tip: timers/vdso] " tip-bot2 for Peter Zijlstra
2026-01-18 9:38 ` tip-bot2 for Peter Zijlstra
2026-02-25 8:15 ` [PATCH] " Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2026-01-14 7:13 [tip:timers/vdso 12/14] net/rds/ib_cm.c:96:35: sparse: sparse: incorrect type in argument 1 (different modifiers) kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ms2e32gw.ffs@tglx \
--to=tglx@kernel.org \
--cc=elver@google.com \
--cc=irogers@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sparse@vger.kernel.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=sparse@chrisli.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.