diff options
author | Michael Brown | 2009-03-31 05:38:48 +0200 |
---|---|---|
committer | Michael Brown | 2009-03-31 05:38:48 +0200 |
commit | f7d2168c8eb23108e159a03416966b0f3c983320 (patch) | |
tree | 8d6dff5af83cfa23b5786a10e696d36c6088cc68 /src/image | |
parent | [resolv] Simplify xfer_redirect() logic (diff) | |
download | ipxe-f7d2168c8eb23108e159a03416966b0f3c983320.tar.gz ipxe-f7d2168c8eb23108e159a03416966b0f3c983320.tar.xz ipxe-f7d2168c8eb23108e159a03416966b0f3c983320.zip |
[segment] Add "Requested memory not available" error message
prep_segment() can sometimes fail because an image requests memory
that is already in use by gPXE. This will happen if
e.g. undionly.kpxe is used to boot memtest86; the memtest86 image is
an old-format kernel that needs to be loaded at 9000:0000, but this
area of memory may well already be in use by the underlying PXE stack.
Add a human-friendly error message, so that the cause is more
immediately visible.
Diffstat (limited to 'src/image')
-rw-r--r-- | src/image/segment.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/image/segment.c b/src/image/segment.c index 9bd60f9c..3d2b8a4b 100644 --- a/src/image/segment.c +++ b/src/image/segment.c @@ -26,6 +26,7 @@ #include <errno.h> #include <gpxe/uaccess.h> #include <gpxe/memmap.h> +#include <gpxe/errortab.h> #include <gpxe/segment.h> /** @@ -72,3 +73,13 @@ int prep_segment ( userptr_t segment, size_t filesz, size_t memsz ) { start, mid, end ); return -ERANGE; } + +/** + * Segment-specific error messages + * + * This error happens sufficiently often to merit a user-friendly + * description. + */ +struct errortab segment_errors[] __errortab = { + { ERANGE, "Requested memory not available" }, +}; |