Re: [patch 1/3] efivars driver update and move

From: Matt Domsch <Matt_Domsch_at_dell.com>
Date: 2004-04-27 04:57:58
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 <Matt_Domsch@dell.com>
+ * Copyright (C) 2001,2003,2004 Dell <Matt_Domsch@dell.com>
  * Copyright (C) 2004 Intel Corporation <matthew.e.tolentino@intel.com>
  *
  * This code takes all variables accessible from EFI runtime and
@@ -23,6 +23,9 @@
  *
  * Changelog:
  *
+ *  26 Apr 2004 - Matt Domsch <Matt_Domsch@dell.com>
+ *   minor bug fixes
+ *
  *  21 Apr 2004 - Matt Tolentino <matthew.e.tolentino@intel.com)
  *   converted driver to export variable information via sysfs
  *   and moved to drivers/firmware directory
@@ -78,7 +81,7 @@ MODULE_AUTHOR("Matt Domsch <Matt_Domsch@
 MODULE_DESCRIPTION("sysfs interface to EFI Variables");
 MODULE_LICENSE("GPL");
 
-#define EFIVARS_VERSION "0.07 2003-Aug-29"
+#define EFIVARS_VERSION "0.07 2004-Apr-26"
 
 /*
  * efivars_lock protects two things:
@@ -408,7 +411,7 @@ static struct kobj_type ktype_efivar = {
 static ssize_t
 dummy(struct subsystem *sub, char *buf)
 {
-	return 0;
+	return -ENODEV;
 }
 
 static inline void
@@ -472,7 +475,10 @@ efivar_create(struct subsystem *sub, con
 	/* Create the entry in sysfs.  Locking is not required here */
 	status = efivar_create_sysfs_entry(utf8_strsize(new_var->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);

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Received on Mon Apr 26 15:06:19 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:25 EST