A vulnerability in the Linux kernel's USB dwc3 gadget driver was fixed by moving the vbus draw operation to a workqueue context. Previously, the function dwc3_gadget_vbus_draw() could be called from an atomic context and invoke power-supply-core APIs that may sleep, potentially causing a kernel panic.