From 36e2fbd537862e8159e9e13c511235652fc41a47 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sun, 8 Feb 2026 15:50:58 +0700 Subject: [PATCH] virtio-gpud: Don't crash on no edid descriptor --- drivers/graphics/virtio-gpud/src/scheme.rs | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/graphics/virtio-gpud/src/scheme.rs b/drivers/graphics/virtio-gpud/src/scheme.rs index b8b4396626..9e05cf3db5 100644 --- a/drivers/graphics/virtio-gpud/src/scheme.rs +++ b/drivers/graphics/virtio-gpud/src/scheme.rs @@ -309,16 +309,21 @@ impl<'a> GraphicsAdapter for VirtGpuAdapter<'a> { if self.has_edid { let edid = edid::parse(&display.edid).unwrap().1; - let first_detailed_timing = edid - .descriptors - .iter() - .find_map(|descriptor| match descriptor { - edid::Descriptor::DetailedTiming(detailed_timing) => Some(detailed_timing), - _ => None, - }) - .unwrap(); - connector.mm_width = first_detailed_timing.horizontal_size.into(); - connector.mm_height = first_detailed_timing.vertical_size.into(); + if let Some(first_detailed_timing) = + edid.descriptors + .iter() + .find_map(|descriptor| match descriptor { + edid::Descriptor::DetailedTiming(detailed_timing) => { + Some(detailed_timing) + } + _ => None, + }) + { + connector.mm_width = first_detailed_timing.horizontal_size.into(); + connector.mm_height = first_detailed_timing.vertical_size.into(); + } else { + log::error!("No edid timing descriptor detected"); + } connector.modes = edid .descriptors