|
@@ -40,6 +40,8 @@ struct err_log_info {
|
|
|
#define NVRAM_MAX_REQ 2079
|
|
|
#define NVRAM_MIN_REQ 1055
|
|
|
|
|
|
+#define NVRAM_LOG_PART_NAME "ibm,rtas-log"
|
|
|
+
|
|
|
static ssize_t pSeries_nvram_read(char *buf, size_t count, loff_t *index)
|
|
|
{
|
|
|
unsigned int i;
|
|
@@ -262,8 +264,8 @@ int nvram_clear_error_log(void)
|
|
|
* error logs and cleanup partitions if needed.
|
|
|
*
|
|
|
* The general strategy is the following:
|
|
|
- * 1.) If there is ppc64,linux partition large enough then use it.
|
|
|
- * 2.) If there is not a ppc64,linux partition large enough, search
|
|
|
+ * 1.) If there is log partition large enough then use it.
|
|
|
+ * 2.) If there is none large enough, search
|
|
|
* for a free partition that is large enough.
|
|
|
* 3.) If there is not a free partition large enough remove
|
|
|
* _all_ OS partitions and consolidate the space.
|
|
@@ -281,34 +283,35 @@ static int __init pseries_nvram_init_log_partition(void)
|
|
|
nvram_scan_partitions();
|
|
|
|
|
|
/* Lookg for ours */
|
|
|
- p = nvram_find_partition("ppc64,linux", NVRAM_SIG_OS, &size);
|
|
|
+ p = nvram_find_partition(NVRAM_LOG_PART_NAME, NVRAM_SIG_OS, &size);
|
|
|
|
|
|
/* Found one but too small, remove it */
|
|
|
if (p && size < NVRAM_MIN_REQ) {
|
|
|
- pr_info("nvram: Found too small ppc64,linux partition"
|
|
|
+ pr_info("nvram: Found too small "NVRAM_LOG_PART_NAME" partition"
|
|
|
",removing it...");
|
|
|
- nvram_remove_partition("ppc64,linux", NVRAM_SIG_OS);
|
|
|
+ nvram_remove_partition(NVRAM_LOG_PART_NAME, NVRAM_SIG_OS);
|
|
|
p = 0;
|
|
|
}
|
|
|
|
|
|
/* Create one if we didn't find */
|
|
|
if (!p) {
|
|
|
- p = nvram_create_partition("ppc64,linux", NVRAM_SIG_OS,
|
|
|
+ p = nvram_create_partition(NVRAM_LOG_PART_NAME, NVRAM_SIG_OS,
|
|
|
NVRAM_MAX_REQ, NVRAM_MIN_REQ);
|
|
|
/* No room for it, try to get rid of any OS partition
|
|
|
* and try again
|
|
|
*/
|
|
|
if (p == -ENOSPC) {
|
|
|
- pr_info("nvram: No room to create ppc64,linux"
|
|
|
+ pr_info("nvram: No room to create "NVRAM_LOG_PART_NAME
|
|
|
" partition, deleting all OS partitions...");
|
|
|
nvram_remove_partition(NULL, NVRAM_SIG_OS);
|
|
|
- p = nvram_create_partition("ppc64,linux", NVRAM_SIG_OS,
|
|
|
- NVRAM_MAX_REQ, NVRAM_MIN_REQ);
|
|
|
+ p = nvram_create_partition(NVRAM_LOG_PART_NAME,
|
|
|
+ NVRAM_SIG_OS, NVRAM_MAX_REQ,
|
|
|
+ NVRAM_MIN_REQ);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (p <= 0) {
|
|
|
- pr_err("nvram: Failed to find or create ppc64,linux"
|
|
|
+ pr_err("nvram: Failed to find or create "NVRAM_LOG_PART_NAME
|
|
|
" partition, err %d\n", (int)p);
|
|
|
return 0;
|
|
|
}
|