On Mon, 2024-09-16 at 14:32 -0400, Michael S. Tsirkin wrote:
> This fixes the following issue discovered by code review:
>
> after vqs have been created, a buggy device can send an interrupt.
>
> A control vq callback will then try to schedule control_work which
> has
> not been initialized yet. Similarly for config interrupt. Further,
> in
> and out vq callbacks invoke find_port_by_vq which attempts to take
> ports_lock which also has not been initialized.
>
> To fix, init all locks and work before creating vqs.
>
> Fixes: 17634ba25544 ("virtio: console: Add a new MULTIPORT feature,
> support for generic ports")
> Signed-off-by: Michael S. Tsirkin <[email protected]>
Reviewed-by: Amit Shah <[email protected]>