diff options
| author | Sebastian Andrzej Siewior <[email protected]> | 2016-09-08 11:48:05 +0000 |
|---|---|---|
| committer | Kees Cook <[email protected]> | 2016-09-08 21:58:00 +0000 |
| commit | 4407de74df18ed405cc5998990004c813ccfdbde (patch) | |
| tree | 757205808fa294bbf533099aa991ebaff20d06cb /net/switchdev/switchdev.c | |
| parent | Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang... (diff) | |
| download | kernel-4407de74df18ed405cc5998990004c813ccfdbde.tar.gz kernel-4407de74df18ed405cc5998990004c813ccfdbde.zip | |
pstore/ramoops: fixup driver removal
A basic rmmod ramoops segfaults. Let's see why.
Since commit 34f0ec82e0a9 ("pstore: Correct the max_dump_cnt clearing of
ramoops") sets ->max_dump_cnt to zero before looping over ->przs but we
didn't use it before that either.
And since commit ee1d267423a1 ("pstore: add pstore unregister") we free
that memory on rmmod.
But even then, we looped until a NULL pointer or ERR. I don't see where
it is ensured that the last member is NULL. Let's try this instead:
simply error recovery and free. Clean up in error case where resources
were allocated. And then, in the free path, rely on ->max_dump_cnt in
the free path.
Cc: Anton Vorontsov <[email protected]>
Cc: Colin Cross <[email protected]>
Cc: Kees Cook <[email protected]>
Cc: Tony Luck <[email protected]>
Cc: Namhyung Kim <[email protected]>
Acked-by: Namhyung Kim <[email protected]>
Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
Signed-off-by: Kees Cook <[email protected]>
Cc: [email protected] # 4.4.x-
Diffstat (limited to 'net/switchdev/switchdev.c')
0 files changed, 0 insertions, 0 deletions
