Probe_flash() cleanup for better code readability

Corresponding to flashrom svn r291 and coreboot v2 svn r3407.

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
diff --git a/flashrom.c b/flashrom.c
index 63aba1e..f548a91 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -102,18 +102,15 @@
 struct flashchip *probe_flash(struct flashchip *flash, int force)
 {
 	volatile uint8_t *bios;
-	unsigned long flash_baseaddr, size;
+	unsigned long flash_baseaddr = 0, size;
 
-	while (flash->name != NULL) {
-		if (chip_to_probe && strcmp(flash->name, chip_to_probe) != 0) {
-			flash++;
+	for (; flash && flash->name; flash++) {
+		if (chip_to_probe && strcmp(flash->name, chip_to_probe) != 0)
 			continue;
-		}
 		printf_debug("Probing for %s %s, %d KB: ",
 			     flash->vendor, flash->name, flash->total_size);
 		if (!flash->probe && !force) {
 			printf_debug("failed! flashrom has no probe function for this flash chip.\n");
-			flash++;
 			continue;
 		}
 
@@ -150,18 +147,21 @@
 		}
 		flash->virtual_memory = bios;
 
-		if (force || flash->probe(flash) == 1) {
-			printf("Found chip \"%s %s\" (%d KB) at physical address 0x%lx.\n",
-			       flash->vendor, flash->name, flash->total_size,
-			       flash_baseaddr);
-			return flash;
-		}
-		munmap((void *)bios, size);
+		if (force)
+			break;
 
-		flash++;
+		if (flash->probe(flash) == 1)
+			break;
+
+		munmap((void *)bios, size);
 	}
 
-	return NULL;
+	if (!flash || !flash->name)
+		return NULL;
+
+	printf("Found chip \"%s %s\" (%d KB) at physical address 0x%lx.\n",
+	       flash->vendor, flash->name, flash->total_size, flash_baseaddr);
+	return flash;
 }
 
 int verify_flash(struct flashchip *flash, uint8_t *buf)