From 4f3bab1a55359a2623e098a6ed61e8d82145af77 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 24 Feb 2009 05:51:21 +0000 Subject: [image] Allow for zero embedded images Having a default script containing #!gpxe autoboot can cause problems when entering commands to load and start a kernel manually; the default script image will still be present when the kernel is started and so will be treated as an initrd. It is possible to work around this by typing "imgfree" before any other commands, but this is counter-intuitive. Fix by allowing the embedded image list to be empty (in which case we just call autoboot()), and making this the default. Reported by alkisg@gmail.com. --- src/image/default.gpxe | 2 -- src/image/embedded.c | 13 +++++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) delete mode 100644 src/image/default.gpxe (limited to 'src/image') diff --git a/src/image/default.gpxe b/src/image/default.gpxe deleted file mode 100644 index 0b080b58c..000000000 --- a/src/image/default.gpxe +++ /dev/null @@ -1,2 +0,0 @@ -#!gpxe -autoboot diff --git a/src/image/embedded.c b/src/image/embedded.c index f76ca11b6..4f7635788 100644 --- a/src/image/embedded.c +++ b/src/image/embedded.c @@ -16,7 +16,8 @@ * * @v refcnt Reference counter */ -static void embedded_image_free ( struct refcnt *refcnt __unused ) { +static void __attribute__ (( unused )) +embedded_image_free ( struct refcnt *refcnt __unused ) { /* Do nothing */ } @@ -51,14 +52,18 @@ static struct image embedded_images[] = { * Register all embedded images */ static void embedded_init ( void ) { - unsigned int i; + int i; struct image *image; void *data; int rc; + /* Skip if we have no embedded images */ + if ( ! sizeof ( embedded_images ) ) + return; + /* Fix up data pointers and register images */ - for ( i = 0 ; i < ( sizeof ( embedded_images ) / - sizeof ( embedded_images[0] ) ) ; i++ ) { + for ( i = 0 ; i < ( int ) ( sizeof ( embedded_images ) / + sizeof ( embedded_images[0] ) ) ; i++ ) { image = &embedded_images[i]; /* virt_to_user() cannot be used in a static -- cgit v1.2.3-55-g7522