Merge tag 'mac80211-next-for-john-2014-11-04' of git://git.kernel.org/pub/scm/linux...
[cascardo/linux.git] / arch / powerpc / platforms / pseries / eeh_pseries.c
index b080538..a6c7e19 100644 (file)
@@ -88,29 +88,14 @@ static int pseries_eeh_init(void)
         * and its variant since the old firmware probably support address
         * of domain/bus/slot/function for EEH RTAS operations.
         */
-       if (ibm_set_eeh_option == RTAS_UNKNOWN_SERVICE) {
-               pr_warn("%s: RTAS service <ibm,set-eeh-option> invalid\n",
-                       __func__);
-               return -EINVAL;
-       } else if (ibm_set_slot_reset == RTAS_UNKNOWN_SERVICE) {
-               pr_warn("%s: RTAS service <ibm,set-slot-reset> invalid\n",
-                       __func__);
-               return -EINVAL;
-       } 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__);
+       if (ibm_set_eeh_option == RTAS_UNKNOWN_SERVICE          ||
+           ibm_set_slot_reset == RTAS_UNKNOWN_SERVICE          ||
+           (ibm_read_slot_reset_state2 == RTAS_UNKNOWN_SERVICE &&
+            ibm_read_slot_reset_state == RTAS_UNKNOWN_SERVICE) ||
+           ibm_slot_error_detail == RTAS_UNKNOWN_SERVICE       ||
+           (ibm_configure_pe == RTAS_UNKNOWN_SERVICE           &&
+            ibm_configure_bridge == RTAS_UNKNOWN_SERVICE)) {
+               pr_info("EEH functionality not supported\n");
                return -EINVAL;
        }
 
@@ -118,11 +103,11 @@ static int pseries_eeh_init(void)
        spin_lock_init(&slot_errbuf_lock);
        eeh_error_buf_size = rtas_token("rtas-error-log-max");
        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__);
                eeh_error_buf_size = 1024;
        } 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);
                eeh_error_buf_size = RTAS_ERROR_LOG_MAX;
        }
@@ -349,7 +334,9 @@ static int pseries_eeh_set_option(struct eeh_pe *pe, int option)
                if (pe->addr)
                        config_addr = pe->addr;
                break;
-
+       case EEH_OPT_FREEZE_PE:
+               /* Not support */
+               return 0;
        default:
                pr_err("%s: Invalid option %d\n",
                        __func__, option);
@@ -729,6 +716,7 @@ static struct eeh_ops pseries_eeh_ops = {
        .wait_state             = pseries_eeh_wait_state,
        .get_log                = pseries_eeh_get_log,
        .configure_bridge       = pseries_eeh_configure_bridge,
+       .err_inject             = NULL,
        .read_config            = pseries_eeh_read_config,
        .write_config           = pseries_eeh_write_config,
        .next_error             = NULL,