projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
81a6cff
)
vmstat: fix offset calculation on void*
author
Wu Fengguang
<
[email protected]
>
Wed, 3 Nov 2010 17:56:49 +0000
(
01:56
+0800)
committer
Linus Torvalds
<
[email protected]
>
Wed, 3 Nov 2010 18:39:58 +0000
(14:39 -0400)
Fix regression introduced by commit
79da826aee6
("writeback: report
dirty thresholds in /proc/vmstat").
The incorrect pointer arithmetic can result in problems like this:
BUG: unable to handle kernel paging request at
07c06d16
IP: [<
c050c336
>] strnlen+0x6/0x20
Call Trace:
[<
c050a249
>] ? string+0x39/0xe0
[<
c042be6b
>] ? __wake_up_common+0x4b/0x80
[<
c050afcc
>] ? vsnprintf+0x1ec/0x380
[<
c04b380e
>] ? seq_printf+0x2e/0x60
[<
c04829a6
>] ? vmstat_show+0x26/0x30
[<
c04b3bb6
>] ? seq_read+0xa6/0x380
[<
c04b3b10
>] ? seq_read+0x0/0x380
[<
c04d5d2f
>] ? proc_reg_read+0x5f/0x90
[<
c049c4a1
>] ? vfs_read+0xa1/0x140
[<
c04d5cd0
>] ? proc_reg_read+0x0/0x90
[<
c049c981
>] ? sys_read+0x41/0x70
[<
c0402bd0
>] ? sysenter_do_call+0x12/0x26
Reported-by: Tetsuo Handa <
[email protected]
>
Cc: Michael Rubin <
[email protected]
>
Signed-off-by: Wu Fengguang <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
mm/vmstat.c
patch
|
blob
|
history
diff --git
a/mm/vmstat.c
b/mm/vmstat.c
index cd2e42be7b68f73dc60f40631f2b9f87708d3b47..42eac4d33216b81c307a87016e821051bc86146e 100644
(file)
--- a/
mm/vmstat.c
+++ b/
mm/vmstat.c
@@
-949,7
+949,7
@@
static void *vmstat_start(struct seq_file *m, loff_t *pos)
v[PGPGIN] /= 2; /* sectors -> kbytes */
v[PGPGOUT] /= 2;
#endif
- return m->private + *pos;
+ return
(unsigned long *)
m->private + *pos;
}
static void *vmstat_next(struct seq_file *m, void *arg, loff_t *pos)