Fix an infinite loop in pnp_get_ioresource(), which freezes coreboot if
a rare condition arises.

Based on findings by Alexandru Gagniuc <mr.nuke.me@gmail.com>

Signed-off-by: Stefan Reinauer <reinauer@google.com>

Acked-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6323 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/src/devices/pnp_device.c b/src/devices/pnp_device.c
index b2bca03..a6d428a 100644
--- a/src/devices/pnp_device.c
+++ b/src/devices/pnp_device.c
@@ -170,6 +170,12 @@
 	struct resource *resource;
 	unsigned moving, gran, step;
 
+	if (!info->mask) {
+		printk(BIOS_ERR, "ERROR: device %s index %d has no mask.\n",
+				dev_path(dev), index);
+		return;
+	}
+
 	resource = new_resource(dev, index);
 
 	/* Initilize the resource. */