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 | |
| 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')
| -rw-r--r-- | src/hci/strerror.c | 1 | ||||
| -rw-r--r-- | src/image/segment.c | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/hci/strerror.c b/src/hci/strerror.c index 30532b398..8e7d878b6 100644 --- a/src/hci/strerror.c +++ b/src/hci/strerror.c @@ -115,5 +115,6 @@ struct errortab common_errors[] __errortab = { { ENOSPC, "No space left on device" }, { ENOTSUP, "Not supported" }, { EPERM, "Operation not permitted" }, + { ERANGE, "Out of range" }, { ETIMEDOUT, "Connection timed out" }, }; diff --git a/src/image/segment.c b/src/image/segment.c index 9bd60f9c4..3d2b8a4b3 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" }, +}; |
