On Mon, Aug 22, 2016 at 10:25 AM, Nicholas Mc Guire <der.herr@xxxxxxx> wrote: > > A probably very basic sparse question - but I could not figure out a > satisfying answer. while compile testing a patch for ntb_transfer.c I got > > CHECK drivers/ntb/ntb_transport.c > drivers/ntb/ntb_transport.c:1583:43: warning: incorrect type in argument 1 (different address spaces) > drivers/ntb/ntb_transport.c:1583:43: expected void *dst > drivers/ntb/ntb_transport.c:1583:43: got void [noderef] <asn:2>*offset > drivers/ntb/ntb_transport.c:1583:56: warning: incorrect type in argument 2 (different address spaces) > drivers/ntb/ntb_transport.c:1583:56: expected void const [noderef] <asn:1>*src > drivers/ntb/ntb_transport.c:1583:56: got void *buf Yes, sparse is correcy, and the ntb code is doing some really dodgy things that may or may not actually work. In fact, they are pretty much guaranteed to not work on some architectures. Playing games with nontemporal stores is almost always a bug anyway. Ugly, ugly. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html