powerpc/pseries: Decrease message level on EEH initialization

As Anton suggested, the patch decreases the message level on EEH
initialization to avoid unnecessary messages if required. Also,
we have unified hint if any of needful RTAS calls is missed, and
then we can check /proc/device-tree to figure out the missed RTAS
calls.

Suggested-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Gavin Shan 2014-09-30 12:39:04 +10:00 committed by Michael Ellerman
parent 9372dddb18
commit 4ba5a0fc64
1 changed files with 10 additions and 25 deletions

View File

@ -88,29 +88,14 @@ static int pseries_eeh_init(void)
* and its variant since the old firmware probably support address * and its variant since the old firmware probably support address
* of domain/bus/slot/function for EEH RTAS operations. * of domain/bus/slot/function for EEH RTAS operations.
*/ */
if (ibm_set_eeh_option == RTAS_UNKNOWN_SERVICE) { if (ibm_set_eeh_option == RTAS_UNKNOWN_SERVICE ||
pr_warn("%s: RTAS service <ibm,set-eeh-option> invalid\n", ibm_set_slot_reset == RTAS_UNKNOWN_SERVICE ||
__func__); (ibm_read_slot_reset_state2 == RTAS_UNKNOWN_SERVICE &&
return -EINVAL; ibm_read_slot_reset_state == RTAS_UNKNOWN_SERVICE) ||
} else if (ibm_set_slot_reset == RTAS_UNKNOWN_SERVICE) { ibm_slot_error_detail == RTAS_UNKNOWN_SERVICE ||
pr_warn("%s: RTAS service <ibm,set-slot-reset> invalid\n", (ibm_configure_pe == RTAS_UNKNOWN_SERVICE &&
__func__); ibm_configure_bridge == RTAS_UNKNOWN_SERVICE)) {
return -EINVAL; pr_info("EEH functionality not supported\n");
} else if (ibm_read_slot_reset_state2 == RTAS_UNKNOWN_SERVICE &&
ibm_read_slot_reset_state == RTAS_UNKNOWN_SERVICE) {
pr_warn("%s: RTAS service <ibm,read-slot-reset-state2> and "
"<ibm,read-slot-reset-state> invalid\n",
__func__);
return -EINVAL;
} else if (ibm_slot_error_detail == RTAS_UNKNOWN_SERVICE) {
pr_warn("%s: RTAS service <ibm,slot-error-detail> invalid\n",
__func__);
return -EINVAL;
} else if (ibm_configure_pe == RTAS_UNKNOWN_SERVICE &&
ibm_configure_bridge == RTAS_UNKNOWN_SERVICE) {
pr_warn("%s: RTAS service <ibm,configure-pe> and "
"<ibm,configure-bridge> invalid\n",
__func__);
return -EINVAL; return -EINVAL;
} }
@ -118,11 +103,11 @@ static int pseries_eeh_init(void)
spin_lock_init(&slot_errbuf_lock); spin_lock_init(&slot_errbuf_lock);
eeh_error_buf_size = rtas_token("rtas-error-log-max"); eeh_error_buf_size = rtas_token("rtas-error-log-max");
if (eeh_error_buf_size == RTAS_UNKNOWN_SERVICE) { if (eeh_error_buf_size == RTAS_UNKNOWN_SERVICE) {
pr_warn("%s: unknown EEH error log size\n", pr_info("%s: unknown EEH error log size\n",
__func__); __func__);
eeh_error_buf_size = 1024; eeh_error_buf_size = 1024;
} else if (eeh_error_buf_size > RTAS_ERROR_LOG_MAX) { } else if (eeh_error_buf_size > RTAS_ERROR_LOG_MAX) {
pr_warn("%s: EEH error log size %d exceeds the maximal %d\n", pr_info("%s: EEH error log size %d exceeds the maximal %d\n",
__func__, eeh_error_buf_size, RTAS_ERROR_LOG_MAX); __func__, eeh_error_buf_size, RTAS_ERROR_LOG_MAX);
eeh_error_buf_size = RTAS_ERROR_LOG_MAX; eeh_error_buf_size = RTAS_ERROR_LOG_MAX;
} }