On Wed, 8 Jan 2025 at 06:19, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > That leaves us with the "not addressable" sparse error. Hmm. That one is actually a sparse mis-feature. Sparse sees that "dmi" ((USItype)(v)) input, and the 'm' makes it go "it's a memory location" and that makes sparse go "it must be addressable". But for asm inputs, it just means that the compiler should *put* the thing in memory to be an input. And this is hidden on x86, because sparse recognizes "r" for register, and says "if it can be either a register or memory, I don't require memory". So there's various x86 inline asm that does something like "rm" (0) and sparse won't complain about the zero not being addressable. But in your case, just making the inputs lvalues will fix the sparse problem, so I guess that's the right thing to do. I sadly don't see sparse being fixed because we don't have a maintainer.. Linus