On Thu, Dec 15, 2022 at 11:57:19AM +0100, Ricardo Ribalda wrote: > + /* > + * Ensure that status is aligned, making it safe to use with > + * non-coherent DMA. > + */ > + struct uvc_status status __aligned(ARCH_KMALLOC_MINALIGN); This should be ARCH_DMA_MINALIGN, not ARCH_KMALLOC_MINALIGN. Note that without an __aligned tag on the next member as well, those next members might get cache corrupted. > > struct input_dev *input; .. and without also aligning the next member you'll might still corrupt everything adter the DMAed member. That's the reason why I generall advocate against playing these __aligned games as they can easily go wrong if someone reorders the structure.