summaryrefslogtreecommitdiffstats
path: root/master/jmm/efi-sni-bis
diff options
context:
space:
mode:
Diffstat (limited to 'master/jmm/efi-sni-bis')
-rw-r--r--master/jmm/efi-sni-bis31
1 files changed, 18 insertions, 13 deletions
diff --git a/master/jmm/efi-sni-bis b/master/jmm/efi-sni-bis
index c035e53..9480dc8 100644
--- a/master/jmm/efi-sni-bis
+++ b/master/jmm/efi-sni-bis
@@ -31,7 +31,7 @@ index 2cdcc7b..e297c4f 100644
x86_efi = kern/efi/init.c;
x86_efi = kern/efi/mm.c;
diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c
-index a83bf2e..0c2a88c 100644
+index a83bf2e..a8fd647 100644
--- a/grub-core/kern/efi/init.c
+++ b/grub-core/kern/efi/init.c
@@ -20,6 +20,7 @@
@@ -50,19 +50,20 @@ index a83bf2e..0c2a88c 100644
}
void
-@@ -133,6 +135,11 @@ grub_efi_set_prefix (void)
+@@ -132,6 +134,12 @@ grub_efi_set_prefix (void)
+ image = grub_efi_get_loaded_image (grub_efi_image_handle);
if (image)
{
- if (!device)
++ if (!device) {
+ device = grub_efinet_get_device_name (image->device_handle);
-+ /* If we net booted - hard code the prefix */
-+ if (device && !path)
-+ path = grub_strdup("/grub/");
-+ if (!device)
++ /* If we net booted - hard code the prefix */
++ if (device)
++ path = grub_strdup("/grub/");
++ }
+ if (!device)
device = grub_efidisk_get_device_name (image->device_handle);
else if (device[0] == ',' || !device[0])
- {
-@@ -187,6 +194,7 @@ grub_efi_set_prefix (void)
+@@ -187,6 +195,7 @@ grub_efi_set_prefix (void)
void
grub_efi_fini (void)
{
@@ -114,10 +115,10 @@ index 5dd5ada..74bbd47 100644
goto fail;
diff --git a/grub-core/net/efi/efinet.c b/grub-core/net/efi/efinet.c
new file mode 100644
-index 0000000..684df98
+index 0000000..ca7ff09
--- /dev/null
+++ b/grub-core/net/efi/efinet.c
-@@ -0,0 +1,544 @@
+@@ -0,0 +1,548 @@
+/* efinet.c - EFI network access using SNI. */
+/*
+ * GRUB -- GRand Unified Bootloader
@@ -448,11 +449,15 @@ index 0000000..684df98
+ struct grub_sni_data *d = NULL;
+
+
++ if (name && grub_strncmp(name,"sni",3)) {
++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no such device");
++ }
++
+ if (name)
+ {
+ num = get_unit_number (name);
+ if (num < 0)
-+ return grub_errno;
++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no such device");
+ net->name = grub_strdup (name);
+ }
+ else
@@ -467,7 +472,7 @@ index 0000000..684df98
+ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no such device");
+
+
-+ grub_printf("DEVICE PATH to %s:",name);
++ grub_printf("DEVICE PATH to `%s'...\n",name);
+ grub_efi_print_device_path(d->device_path);
+ grub_printf("\n");
+