On Fri, Apr 25, 2025 at 12:29:35PM +0200, Niklas Schnelle wrote: > On Fri, 2025-04-25 at 11:00 +0200, Thomas Huth wrote: > > On 17/04/2025 19.37, Farhan Ali wrote: > > > + asm volatile( > > > + /* pcilgi */ > > > + ".insn rre,0xb9d60000,%[val],%[ioaddr_len]\n" > > > + "ipm %[cc]\n" > > > + "srl %[cc],28\n" > > > + : [cc] "=d"(cc), [val] "=d"(val), > > > + [ioaddr_len] "+&d"(ioaddr_len.pair) :: "cc"); > > > > Do we need the "&" modifier here? ... at least the kernel does not seem to > > use it ... > > From my understanding it's not strictly needed, but I also used it in > the rdma-core user-space code where I had pointed Farhan. I looked at
It is not needed, since all inputs are consumed before to any output is written to. > > > + asm volatile ( > > > + /* pcistgi */ > > > + ".insn rre,0xb9d40000,%[val],%[ioaddr_len]\n" > > > + : [ioaddr_len] "+&d" (ioaddr_len.pair) > > > > dito Same here, it is not needed.