Re: [PATCH](2) efivars: check enabled {2.6.6 doesn't boot with 4kstacks}

From: Randy.Dunlap
Date: Tue May 11 2004 - 10:38:07 EST


On Tue, 11 May 2004 09:38:33 -0500 Matt Domsch wrote:

| On Mon, May 10, 2004 at 09:02:43PM -0700, Randy.Dunlap wrote:
| > // linux-266
| > // efivars_init and efivars_exit need to check efi_enabled
| > // instead of assuming that the system is using EFI;
|
| Good catch. I missed the creation of that in the x86 EFI merge.
|
| > +++ ./drivers/firmware/efivars.c 2004-05-10 20:45:55.000000000 -0700
| > @@ -664,6 +664,9 @@ efivars_init(void)
| > unsigned long variable_name_size = 1024;
| > int i, rc = 0, error = 0;
| >
| > + if (!efi_enabled)
| > + return 0;
|
| I would think this would be return -ENODEV; instead, yes?

um, OK. I suppose that is a good idea... to prevent the module
from remaining loaded.

Here's an updated diff.

--
~Randy



// linux-266
// efivars_init and _exit need to check for efi_enabled (or else crash);

diffstat:=
drivers/firmware/efivars.c | 6 ++++++
1 files changed, 6 insertions(+)


diff -Naurp ./drivers/firmware/efivars.c~efivars_check_enabled ./drivers/firmware/efivars.c
--- ./drivers/firmware/efivars.c~efivars_check_enabled 2004-05-09 19:33:13.000000000 -0700
+++ ./drivers/firmware/efivars.c 2004-05-11 08:43:07.000000000 -0700
@@ -664,6 +664,9 @@ efivars_init(void)
unsigned long variable_name_size = 1024;
int i, rc = 0, error = 0;

+ if (!efi_enabled)
+ return -ENODEV;
+
printk(KERN_INFO "EFI Variables Facility v%s\n", EFIVARS_VERSION);

/*
@@ -733,6 +736,9 @@ efivars_exit(void)
{
struct list_head *pos, *n;

+ if (!efi_enabled)
+ return;
+
list_for_each_safe(pos, n, &efivar_list)
efivar_unregister(get_efivar_entry(pos));

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/