Patch below fixes three small bugs in efivars.c as posted by Matt Tolentino last week and included in the latest -mm. Aside from this small patch, I'm quite pleased with Matt T's work, thanks! * dummy() used for reading write-only sysfs files should return -ENODEV to indicate failure, not 0. * efivar_create() should return the number of bytes written on success, not zero. * efivar_delete() should return the number of bytes written on success, not zero. Compiled, tested with efibootmgr-0.5.0-test3. The anomolies I noted late Friday night are resolved by this kernel patch - efibootmgr was actually testing the values returned by writes. -- 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 --- linux-2.6.5.orig/drivers/firmware/efivars.c 2004-04-24 06:58:08.000000000 -0400 +++ linux-2.6.5/drivers/firmware/efivars.c 2004-04-27 03:48:33.037318467 -0400 @@ -1,7 +1,7 @@ /* * EFI Variables - efivars.c * - * Copyright (C) 2001,2003 Dell + * Copyright (C) 2001,2003,2004 Dell * Copyright (C) 2004 Intel Corporation * * This code takes all variables accessible from EFI runtime and @@ -23,6 +23,9 @@ * * Changelog: * + * 26 Apr 2004 - Matt Domsch + * minor bug fixes + * * 21 Apr 2004 - Matt Tolentino VariableName, 1024), new_var->VariableName, &new_var->VendorGuid); - return status; + if (status) { + printk(KERN_WARNING "efivars: variable created, but sysfs entry wasn't.\n"); + } + return count; } static ssize_t @@ -532,7 +538,7 @@ efivar_delete(struct subsystem *sub, con efivar_unregister(search_efivar); /* It's dead Jim.... */ - return status; + return count; } static VAR_SUBSYS_ATTR(new_var, 0200, dummy, efivar_create);