This simple patch makes memmove copy (dev->resources -i) resource
structs instead of (dev->resources-i) bytes.  All my resources were
disappearing when I compacted (if I had a zeroed resource).  Now they
don't.

Signed-off-by: Myles Watson <[email protected]>

Thanks,
Myles
Index: cbv2/src/devices/device_util.c
===================================================================
--- cbv2.orig/src/devices/device_util.c
+++ cbv2/src/devices/device_util.c
@@ -272,7 +272,8 @@ void compact_resources(device_t dev)
 	for(i = 0; i < dev->resources;) {
 		resource = &dev->resource[i];
 		if (!resource->flags) {
-			memmove(resource, resource + 1, dev->resources - i);
+			memmove(resource, resource + 1, (dev->resources - i) *
+				sizeof(*resource));
 			dev->resources -= 1;
 			memset(&dev->resource[dev->resources], 0, sizeof(*resource));
 		} else {
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to