patch-2.4.19 linux-2.4.19/arch/ia64/kernel/efivars.c
Next file: linux-2.4.19/arch/ia64/kernel/entry.S
Previous file: linux-2.4.19/arch/ia64/kernel/efi.c
Back to the patch index
Back to the overall index
- Lines: 66
- Date:
Fri Aug 2 17:39:42 2002
- Orig file:
linux-2.4.18/arch/ia64/kernel/efivars.c
- Orig date:
Fri Dec 21 09:41:53 2001
diff -urN linux-2.4.18/arch/ia64/kernel/efivars.c linux-2.4.19/arch/ia64/kernel/efivars.c
@@ -29,6 +29,11 @@
*
* Changelog:
*
+ * 12 Feb 2002 - Matt Domsch <Matt_Domsch@dell.com>
+ * use list_for_each_safe when deleting vars.
+ * remove ifdef CONFIG_SMP around include <linux/smp.h>
+ * v0.04 release to linux-ia64@linuxia64.org
+ *
* 20 April 2001 - Matt Domsch <Matt_Domsch@dell.com>
* Moved vars from /proc/efi to /proc/efi/vars, and made
* efi.c own the /proc/efi directory.
@@ -56,18 +61,16 @@
#include <linux/sched.h> /* for capable() */
#include <linux/mm.h>
#include <linux/module.h>
+#include <linux/smp.h>
#include <asm/efi.h>
#include <asm/uaccess.h>
-#ifdef CONFIG_SMP
-#include <linux/smp.h>
-#endif
MODULE_AUTHOR("Matt Domsch <Matt_Domsch@Dell.com>");
MODULE_DESCRIPTION("/proc interface to EFI Variables");
MODULE_LICENSE("GPL");
-#define EFIVARS_VERSION "0.03 2001-Apr-20"
+#define EFIVARS_VERSION "0.04 2002-Feb-12"
static int
efivar_read(char *page, char **start, off_t off,
@@ -265,7 +268,7 @@
{
unsigned long strsize1, strsize2;
int found=0;
- struct list_head *pos;
+ struct list_head *pos, *n;
unsigned long size = sizeof(efi_variable_t);
efi_status_t status;
efivar_entry_t *efivar = data, *search_efivar = NULL;
@@ -297,7 +300,7 @@
This allows any properly formatted data structure to
be written to any of the files in /proc/efi/vars and it will work.
*/
- list_for_each(pos, &efivar_list) {
+ list_for_each_safe(pos, n, &efivar_list) {
search_efivar = efivar_entry(pos);
strsize1 = utf8_strsize(search_efivar->var.VariableName, 1024);
strsize2 = utf8_strsize(var_data->VariableName, 1024);
@@ -413,12 +416,12 @@
static void __exit
efivars_exit(void)
{
- struct list_head *pos;
+ struct list_head *pos, *n;
efivar_entry_t *efivar;
spin_lock(&efivars_lock);
- list_for_each(pos, &efivar_list) {
+ list_for_each_safe(pos, n, &efivar_list) {
efivar = efivar_entry(pos);
remove_proc_entry(efivar->entry->name, efi_vars_dir);
list_del(&efivar->list);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)