diff options
| author | Fuad Tabba <fuad.tabba@linux.dev> | 2026-08-07 11:40:59 +0100 |
|---|---|---|
| committer | Oliver Upton <oupton@kernel.org> | 2026-08-07 09:06:27 -0700 |
| commit | c6c156d931c33b92362383cf76f6d6e1291dcbfe (patch) | |
| tree | 48d51fba95b6d78eddd11b2a9cf3c290d43fe553 /include/linux/workqueue_api.h | |
| parent | a13c140cc289c0b7b3770bce5b3ad42ab35074aa (diff) | |
KVM: arm64: vgic-its: Don't dereference a NULL collection on ITT save
MAPC with V=0 drops ite->collection but leaves the ITE on the device's
ITT list, and vgic_its_save_ite() dereferences it unconditionally. A
guest that issues MAPD, MAPTI and then MAPC(V=0) therefore oopses the
host when the VMM issues KVM_DEV_ARM_ITS_SAVE_TABLES to migrate it.
That sequence is UNPREDICTABLE per the architecture, but KVM already
handles the resulting state in the translate, MOVI and DISCARD paths.
Save a zeroed entry, which vgic_its_restore_ite() reads back as
invalid. Skipping the ITE instead would leave the ITT slot holding
whatever is in guest memory, and restore rejects an entry naming a
collection the restored collection table does not have.
Fixes: eff484e0298da ("KVM: arm64: vgic-its: ITT save and restore")
Cc: stable@vger.kernel.org
Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev>
Link: https://patch.msgid.link/20260807104102.2410744-2-fuad.tabba@linux.dev
Signed-off-by: Oliver Upton <oupton@kernel.org>
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions
