* [PATCH] efivars: check enabled {2.6.6 doesn't boot with 4k stacks}
[not found] <20040510172404.11a90ce9.rddunlap@osdl.org>
@ 2004-05-11 4:02 ` Randy.Dunlap
2004-05-11 14:38 ` Matt Domsch
0 siblings, 1 reply; 3+ messages in thread
From: Randy.Dunlap @ 2004-05-11 4:02 UTC (permalink / raw)
To: gallir, Matt_Domsch, matthew.e.tolentino; +Cc: lkml, akpm
| Perhaps I missed some readme, but just in case. One of my computer, P4HT[*]
| dies during booting. There is no log because nothing is still mounted,
| but I took a photograph of the stack dump in the screen.
|
| http://mnm.uib.es/~gallir/tmp/hang1s.jpg
Yes, easy to reproduce...
| The .config file:
| http://mnm.uib.es/~gallir/tmp/2.6.6-bad-config.txt
|
| I unchecked the 4K stack option and it's working nice.
drivers/firmware/efivars.c::efivars_init & efivars_exit
need to check for efi_enabled before doing anything.
or you could disable CONFIG_EFI_VARS, but the kernel shouldn't
crash like that.
// linux-266
// efivars_init and efivars_exit need to check efi_enabled
// instead of assuming that the system is using EFI;
diffstat:=
drivers/firmware/efivars.c | 6 ++++++
1 files changed, 6 insertions(+)
diff -Naurp ./drivers/firmware/efivars.c~efi_check_enabled ./drivers/firmware/efivars.c
--- ./drivers/firmware/efivars.c~efi_check_enabled 2004-05-09 19:33:13.000000000 -0700
+++ ./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;
+
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));
--
http://www.madrone.org/quotes/2003.0226.akpm.txt
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] efivars: check enabled {2.6.6 doesn't boot with 4k stacks}
2004-05-11 4:02 ` [PATCH] efivars: check enabled {2.6.6 doesn't boot with 4k stacks} Randy.Dunlap
@ 2004-05-11 14:38 ` Matt Domsch
2004-05-11 15:28 ` [PATCH](2) " Randy.Dunlap
0 siblings, 1 reply; 3+ messages in thread
From: Matt Domsch @ 2004-05-11 14:38 UTC (permalink / raw)
To: Randy.Dunlap; +Cc: gallir, matthew.e.tolentino, lkml, akpm
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?
Thanks,
Matt
--
Matt Domsch
Sr. Software Engineer, Lead Engineer
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH](2) efivars: check enabled {2.6.6 doesn't boot with 4k stacks}
2004-05-11 14:38 ` Matt Domsch
@ 2004-05-11 15:28 ` Randy.Dunlap
0 siblings, 0 replies; 3+ messages in thread
From: Randy.Dunlap @ 2004-05-11 15:28 UTC (permalink / raw)
To: Matt Domsch; +Cc: gallir, matthew.e.tolentino, linux-kernel, akpm
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));
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-05-11 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20040510172404.11a90ce9.rddunlap@osdl.org>
2004-05-11 4:02 ` [PATCH] efivars: check enabled {2.6.6 doesn't boot with 4k stacks} Randy.Dunlap
2004-05-11 14:38 ` Matt Domsch
2004-05-11 15:28 ` [PATCH](2) " Randy.Dunlap
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox