- A new platform data parameter to specify ECC configuration;

- Rounding fixup to not waste memory in ecc_blocks;
 - Restore ECC information printouts;
 - A small code cleanup: use kmemdup where appropriate.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.13 (GNU/Linux)
 
 iQIcBAABAgAGBQJRgzLpAAoJEGgI9fZJve1bz3wP/0uolMtor/SmvU24iGn6ZNdM
 sAXOyexLlGTfDp5m/wtzdrLO2nuDnJvUxCqi8lq6zsGzX3XL4p/bDIUlWaFPy6IR
 PtlWJBlvm52V+HLYUjF7qlJtB8TdT24n4+yB6jFn4sqIiUptJWh6ttfg6Y+i16k2
 6eScyerpN0kHFaPiVU5MsNgyBDJc7z8FczDaeXtknaUbNWkLW287bCBt23O0KMoh
 npeMqBLYthjtcah6+MC8yixgZR4CNp4f7lKGCpK8tJ39oQ1GiUEAQJhqOY3Bo9ct
 75T5BigBmvASeTNA19Zhkhk3g2CzyFSGtO8ivIagFTTA0PGVhPM5qG6MFvGh1JYY
 aG0OvRNWa1at+4rh7TgPG199QnkgE2zhnjUO4YhHVVSbrYX7DLZ/OJ1jjBzZAiL8
 Fk361GCVjHC4r8CV8tcabpc5XN8tWSscUapVTduI749KI8OaSm+uQv1eAh+4wK0L
 tltFK8nv0WTYPBnA1eFZAw82EOLdg9f4+43xyVsfuUmygegSNJUWh3ZT3uGM6DmE
 topdSX51d1dPKoJ0SCyOEzwQNgfmxv/LmIsdB8fAWVHdb2jID6T+TZ15FGRKv6h8
 dxiGnK50pqwL9QyDHzDzb4QJob5hirGJxWXQ5c+CWuJ70Maj1jHm1yXFIIr3GDhD
 YG7Io9nLpsuvZtfe1Bkz
 =XdR6
 -----END PGP SIGNATURE-----

Merge tag 'for-v3.10' of git://git.infradead.org/users/cbou/linux-pstore

Pull pstore update from Anton Vorontsov:

 - A new platform data parameter to specify ECC configuration;

 - Rounding fixup to not waste memory in ecc_blocks;

 - Restore ECC information printouts;

 - A small code cleanup: use kmemdup where appropriate.

* tag 'for-v3.10' of git://git.infradead.org/users/cbou/linux-pstore:
  pstore/ram: Restore ecc information block
  pstore/ram: Allow specifying ecc parameters in platform data
  pstore/ram: Include ecc_size when calculating ecc_block
  pstore: Replace calls to kmalloc and memcpy with kmemdup
This commit is contained in:
Linus Torvalds 2013-05-03 07:06:37 -07:00
commit 00fdffb513
3 changed files with 64 additions and 42 deletions

View file

@ -26,6 +26,13 @@
struct persistent_ram_buffer;
struct rs_control;
struct persistent_ram_ecc_info {
int block_size;
int ecc_size;
int symsize;
int poly;
};
struct persistent_ram_zone {
phys_addr_t paddr;
size_t size;
@ -39,15 +46,14 @@ struct persistent_ram_zone {
struct rs_control *rs_decoder;
int corrected_bytes;
int bad_blocks;
int ecc_block_size;
int ecc_size;
struct persistent_ram_ecc_info ecc_info;
char *old_log;
size_t old_log_size;
};
struct persistent_ram_zone *persistent_ram_new(phys_addr_t start, size_t size,
u32 sig, int ecc_size);
u32 sig, struct persistent_ram_ecc_info *ecc_info);
void persistent_ram_free(struct persistent_ram_zone *prz);
void persistent_ram_zap(struct persistent_ram_zone *prz);
@ -74,7 +80,7 @@ struct ramoops_platform_data {
unsigned long console_size;
unsigned long ftrace_size;
int dump_oops;
int ecc_size;
struct persistent_ram_ecc_info ecc_info;
};
#endif