diff options
| author | Anton Vorontsov <anton.vorontsov@linaro.org> | 2012-05-26 09:07:51 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-06-13 19:52:40 -0400 |
| commit | fce397930475f7efc712a1345dc0dad269a10544 (patch) | |
| tree | 6e997211442c8c5ba3a34bb1fdc06bc06ba095f5 | |
| parent | 25b63da64708212985c06c7f8b089d356efdd9cf (diff) | |
pstore/ram_core: Factor persistent_ram_zap() out of post_init()
A handy function that we will use outside of ram_core soon. But
so far just factor it out and start using it in post_init().
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | fs/pstore/ram_core.c | 11 | ||||
| -rw-r--r-- | include/linux/pstore_ram.h | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c index f6650d12c0c1..c5fbdbbf81ac 100644 --- a/fs/pstore/ram_core.c +++ b/fs/pstore/ram_core.c | |||
| @@ -320,6 +320,13 @@ void persistent_ram_free_old(struct persistent_ram_zone *prz) | |||
| 320 | prz->old_log_size = 0; | 320 | prz->old_log_size = 0; |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | void persistent_ram_zap(struct persistent_ram_zone *prz) | ||
| 324 | { | ||
| 325 | atomic_set(&prz->buffer->start, 0); | ||
| 326 | atomic_set(&prz->buffer->size, 0); | ||
| 327 | persistent_ram_update_header_ecc(prz); | ||
| 328 | } | ||
| 329 | |||
| 323 | static void *persistent_ram_vmap(phys_addr_t start, size_t size) | 330 | static void *persistent_ram_vmap(phys_addr_t start, size_t size) |
| 324 | { | 331 | { |
| 325 | struct page **pages; | 332 | struct page **pages; |
| @@ -414,8 +421,7 @@ static int __init persistent_ram_post_init(struct persistent_ram_zone *prz, bool | |||
| 414 | } | 421 | } |
| 415 | 422 | ||
| 416 | prz->buffer->sig = PERSISTENT_RAM_SIG; | 423 | prz->buffer->sig = PERSISTENT_RAM_SIG; |
| 417 | atomic_set(&prz->buffer->start, 0); | 424 | persistent_ram_zap(prz); |
| 418 | atomic_set(&prz->buffer->size, 0); | ||
| 419 | 425 | ||
| 420 | return 0; | 426 | return 0; |
| 421 | } | 427 | } |
| @@ -450,7 +456,6 @@ struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start, | |||
| 450 | goto err; | 456 | goto err; |
| 451 | 457 | ||
| 452 | persistent_ram_post_init(prz, ecc); | 458 | persistent_ram_post_init(prz, ecc); |
| 453 | persistent_ram_update_header_ecc(prz); | ||
| 454 | 459 | ||
| 455 | return prz; | 460 | return prz; |
| 456 | err: | 461 | err: |
diff --git a/include/linux/pstore_ram.h b/include/linux/pstore_ram.h index 4491e8ff36e6..3b823d49a85a 100644 --- a/include/linux/pstore_ram.h +++ b/include/linux/pstore_ram.h | |||
| @@ -69,6 +69,7 @@ struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start, | |||
| 69 | size_t size, | 69 | size_t size, |
| 70 | bool ecc); | 70 | bool ecc); |
| 71 | void persistent_ram_free(struct persistent_ram_zone *prz); | 71 | void persistent_ram_free(struct persistent_ram_zone *prz); |
| 72 | void persistent_ram_zap(struct persistent_ram_zone *prz); | ||
| 72 | struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev, | 73 | struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev, |
| 73 | bool ecc); | 74 | bool ecc); |
| 74 | 75 | ||
