Re: [PATCH v2] media: uvcvideo: Do not alloc dev->status

From: Sergey Senozhatsky
Date: Wed Dec 14 2022 - 20:15:04 EST


On (22/12/14 14:37), Ricardo Ribalda wrote:
[..]
> +struct uvc_status_streaming {
> + u8 button;
> +} __packed;
> +
> +struct uvc_status_control {
> + u8 bSelector;
> + u8 bAttribute;
> + u8 bValue[11];
> +} __packed;
> +
> +struct uvc_status {
> + u8 bStatusType;
> + u8 bOriginator;
> + u8 bEvent;
> + union {
> + struct uvc_status_control control;
> + struct uvc_status_streaming streaming;
> + };
> +} __packed;
> +
> struct uvc_device {
> struct usb_device *udev;
> struct usb_interface *intf;
> @@ -559,7 +579,7 @@ struct uvc_device {
> /* Status Interrupt Endpoint */
> struct usb_host_endpoint *int_ep;
> struct urb *int_urb;
> - u8 *status;
> +
> struct input_dev *input;
> char input_phys[64];
>
> @@ -572,6 +592,12 @@ struct uvc_device {
> } async_ctrl;
>
> struct uvc_entity *gpio_unit;
> +
> + /*
> + * Ensure that status is aligned, making it safe to use with
> + * non-coherent DMA.
> + */
> + struct uvc_status status __aligned(ARCH_KMALLOC_MINALIGN);

____cacheline_aligned ?

I don't see anyone using ARCH_KMALLOC_MINALIGN except for slab.h