On Thu 2015-03-19 10:54:22, Oliver Neukum wrote: > On Thu, 2015-03-19 at 10:38 +0100, Pavel Machek wrote: > > On Thu 2015-03-19 10:14:21, Oliver Neukum wrote: > > > On Mon, 2015-03-16 at 22:37 +0100, Jiri Kosina wrote: > > > > > Are you sure CONFIG_DMA_API_DEBUG wouldn't warn here? > > > > > > As far as I can tell, it will not warn. The problem is not in the > > > mapping itself. That is usually legitimate. The problem arises > > > because the buffer doesn't have a cacheline of its own. Thus the > > > memory corruption happens after the IO operation has started. > > > > Nasty. Would WARN_ON(buffer & CACHELINE_SIZE-1) do at least part of > > No. It is perfectly legitimate to put your buffer at an offset > or to combine buffers provided you don't use them at the same > time. Legitimate: yes. Is anyone doing it? And will not they see exactly the same data corruption with the aliasing data? > > Alternatively, we could create "allocate_for_usb" function, and only > > take pointers allocated by that function in usb functions. That would > > also teach people the problem exists... > > No, this problem is not limited to USB. Well.. Recognize that just because you have a pointer does not mean you can pass it to certain functions. Maybe those functions should not be taking pointers in the first place.... Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html