Hi, This series fills in missing PCI AER callbacks on virtio-pci, and adds matching virtio-blk pieces for queue_rq after VQ removal plus system-shutdown teardown.
virtio-pci only registered reset_prepare/reset_done. Without .error_detected the recovery core votes NO_AER_DRIVER on the first broadcast, and report_perm_failure_detected skips the driver callback whenever overall status is not RECOVERED. Patch 1 registers .error_detected and .slot_reset: frozen/unknown call virtio_device_reset_prepare() then NEED_RESET; after a successful PCI reset, slot_reset restores config and calls virtio_device_reset_done(); perm_failure only virtio_break_device() and DISCONNECT. AER bus reset via pci_bus_error_reset does not invoke .reset_prepare, so quiesce and restore for that path live in error_detected and slot_reset. The existing .reset_prepare and .reset_done still serve FLR. Patch 2 fails new requests early in virtio_queue_rq when vqs were removed during frozen reset_prepare. It also registers virtio_driver.shutdown for reboot and poweroff via virtio_dev_shutdown, with freeze-before-break reclaim and blk_mark_disk_dead(). Changes since v2, thanks to Michael for the review: - perm_failure: only virtio_break_device() - default and frozen share one quiesce then NEED_RESET path - Add .slot_reset to restore after successful AER PCI reset - Drop PCI common to drv->shutdown wiring; virtio-blk .shutdown for system shutdown via virtio_dev_shutdown Based on linux-next next-20260730. Thanks, Xixin Liu --- Xixin Liu (2): virtio-pci: add error_detected and slot_reset for AER virtio-blk: add shutdown and fail queue_rq after VQ teardown drivers/block/virtio_blk.c | 36 ++++++++++++++++++++++++++++++ drivers/virtio/virtio_pci_common.c | 53 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) -- 2.43.0

