Am Freitag, 13. August 2010, 12:06:54 schrieb Martin Fuzzey: > So I think a policy needs to be defined to ensure this and enforced in > the code. I can see two possible methods: > > 1) Require that usb drivers submit buffers obtained from kmalloc() and > friends with no extra offsets. If they want some other alignment later > they can use memmove in the completion handler. Enforce this in the core > by checking the buffer pointers are aligned to ARCH_KMALLOC_MINALIGN > > or > > 2) Require that usb_submit_urb() accept byte aligned buffers. Enforce > this by a new test in usbtest (which all HCDs are expected to pass). > Implement it either in individual HCDs that require it or by letting > HCDs inform the core of their requirements and have the core do the > alignment (as it already does the dma mapping). Of course HCDs that can > implement byte aligned transfers (either natively or using tricks such > as the one Russell suggested) should do so. > > I think 2) is the better solution because: > a) Solution 1 will impose a runtime overhead even on platforms / HCDs > that don't need it (including the most common cases) > b) There are more drivers than HCDs Yes. But it doesn't prevent you from publishing this information so drivers can help the lower levels. Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html