patch-2.4.27 linux-2.4.27/arch/ppc64/kernel/nvram.c
Next file: linux-2.4.27/arch/ppc64/kernel/proc_pmc.c
Previous file: linux-2.4.27/arch/ppc64/kernel/lparcfg.c
Back to the patch index
Back to the overall index
- Lines: 55
- Date:
2004-08-07 16:26:04.594344312 -0700
- Orig file:
linux-2.4.26/arch/ppc64/kernel/nvram.c
- Orig date:
2004-02-18 05:36:30.000000000 -0800
diff -urN linux-2.4.26/arch/ppc64/kernel/nvram.c linux-2.4.27/arch/ppc64/kernel/nvram.c
@@ -78,11 +78,12 @@
size_t count, loff_t *ppos)
{
unsigned long len;
- char *tmp_buffer;
+ char *tmp_buffer;
+ loff_t pos = *ppos;
if (verify_area(VERIFY_WRITE, buf, count))
return -EFAULT;
- if (*ppos >= rtas_nvram_size)
+ if ((unsigned)pos != pos || pos >= rtas_nvram_size)
return 0;
if (count > rtas_nvram_size)
count = rtas_nvram_size;
@@ -93,7 +94,7 @@
return 0;
}
- len = read_nvram(tmp_buffer, count, ppos);
+ len = read_nvram(tmp_buffer, count, &pos);
if ((long)len <= 0) {
kfree(tmp_buffer);
return len;
@@ -105,6 +106,7 @@
}
kfree(tmp_buffer);
+ *ppos = pos;
return len;
}
@@ -114,10 +116,11 @@
{
unsigned long len;
char * tmp_buffer;
+ loff_t pos = *ppos;
if (verify_area(VERIFY_READ, buf, count))
return -EFAULT;
- if (*ppos >= rtas_nvram_size)
+ if (pos != (unsigned) pos || pos >= rtas_nvram_size)
return 0;
if (count > rtas_nvram_size)
count = rtas_nvram_size;
@@ -133,7 +136,8 @@
return -EFAULT;
}
- len = write_nvram(tmp_buffer, count, ppos);
+ len = write_nvram(tmp_buffer, count, &pos);
+ *ppos = pos;
kfree(tmp_buffer);
return len;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)