{"id":"CVE-2022-49146","summary":"virtio: use virtio_device_ready() in virtio_device_restore()","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio: use virtio_device_ready() in virtio_device_restore()\n\nAfter waking up a suspended VM, the kernel prints the following trace\nfor virtio drivers which do not directly call virtio_device_ready() in\nthe .restore:\n\n    PM: suspend exit\n    irq 22: nobody cared (try booting with the \"irqpoll\" option)\n    Call Trace:\n     \u003cIRQ\u003e\n     dump_stack_lvl+0x38/0x49\n     dump_stack+0x10/0x12\n     __report_bad_irq+0x3a/0xaf\n     note_interrupt.cold+0xb/0x60\n     handle_irq_event+0x71/0x80\n     handle_fasteoi_irq+0x95/0x1e0\n     __common_interrupt+0x6b/0x110\n     common_interrupt+0x63/0xe0\n     asm_common_interrupt+0x1e/0x40\n     ? __do_softirq+0x75/0x2f3\n     irq_exit_rcu+0x93/0xe0\n     sysvec_apic_timer_interrupt+0xac/0xd0\n     \u003c/IRQ\u003e\n     \u003cTASK\u003e\n     asm_sysvec_apic_timer_interrupt+0x12/0x20\n     arch_cpu_idle+0x12/0x20\n     default_idle_call+0x39/0xf0\n     do_idle+0x1b5/0x210\n     cpu_startup_entry+0x20/0x30\n     start_secondary+0xf3/0x100\n     secondary_startup_64_no_verify+0xc3/0xcb\n     \u003c/TASK\u003e\n    handlers:\n    [\u003c000000008f9bac49\u003e] vp_interrupt\n    [\u003c000000008f9bac49\u003e] vp_interrupt\n    Disabling IRQ #22\n\nThis happens because we don't invoke .enable_cbs callback in\nvirtio_device_restore(). That callback is used by some transports\n(e.g. virtio-pci) to enable interrupts.\n\nLet's fix it, by calling virtio_device_ready() as we do in\nvirtio_dev_probe(). This function calls .enable_cts callback and sets\nDRIVER_OK status bit.\n\nThis fix also avoids setting DRIVER_OK twice for those drivers that\ncall virtio_device_ready() in the .restore.","modified":"2026-04-11T12:43:37.517228Z","published":"2025-02-26T01:55:14.849Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49146.json","cna_assigner":"Linux"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/4ae431113179d72c668b61df320af0c06d1aa5c5"},{"type":"WEB","url":"https://git.kernel.org/stable/c/8d65bc9a5be3f23c5e2ab36b6b8ef40095165b18"},{"type":"WEB","url":"https://git.kernel.org/stable/c/94e9f5da39ee5f8ea31be1585de31c54f10dedce"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49146.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-49146"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"d50497eb4e554e1f0351e1836ee7241c059592e6"},{"fixed":"94e9f5da39ee5f8ea31be1585de31c54f10dedce"},{"fixed":"4ae431113179d72c668b61df320af0c06d1aa5c5"},{"fixed":"8d65bc9a5be3f23c5e2ab36b6b8ef40095165b18"}]}],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-49146.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"5.16.19"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.17.0"},{"fixed":"5.17.2"}]}],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-49146.json"}}],"schema_version":"1.7.5"}