]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'ipmi/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 11 Feb 2016 02:39:15 +0000 (13:39 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 11 Feb 2016 02:39:15 +0000 (13:39 +1100)
drivers/char/ipmi/ipmi_si_intf.c
drivers/char/ipmi/ipmi_ssif.c

index 7fddd8696211f0320011c964a88a37a16133c4ba..8671236013f800d67e2d0375940b4f26818ba82c 100644 (file)
@@ -849,7 +849,7 @@ static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
                smi_inc_stat(smi_info, complete_transactions);
 
                handle_transaction_done(smi_info);
-               si_sm_result = smi_info->handlers->event(smi_info->si_sm, 0);
+               goto restart;
        } else if (si_sm_result == SI_SM_HOSED) {
                smi_inc_stat(smi_info, hosed_count);
 
@@ -866,7 +866,7 @@ static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
                         */
                        return_hosed_msg(smi_info, IPMI_ERR_UNSPECIFIED);
                }
-               si_sm_result = smi_info->handlers->event(smi_info->si_sm, 0);
+               goto restart;
        }
 
        /*
@@ -1363,12 +1363,12 @@ MODULE_PARM_DESC(trydmi, "Setting this to zero will disable the"
                 " default scan of the interfaces identified via DMI");
 #endif
 module_param_named(tryplatform, si_tryplatform, bool, 0);
-MODULE_PARM_DESC(tryacpi, "Setting this to zero will disable the"
+MODULE_PARM_DESC(tryplatform, "Setting this to zero will disable the"
                 " default scan of the interfaces identified via platform"
                 " interfaces like openfirmware");
 #ifdef CONFIG_PCI
 module_param_named(trypci, si_trypci, bool, 0);
-MODULE_PARM_DESC(tryacpi, "Setting this to zero will disable the"
+MODULE_PARM_DESC(trypci, "Setting this to zero will disable the"
                 " default scan of the interfaces identified via pci");
 #endif
 module_param_named(trydefaults, si_trydefaults, bool, 0);
index 5f1c3d08ba6540e4afc9469f888e442862d09fa3..8b3be8b9257398b7f0dd306158a6428ea0949ad9 100644 (file)
@@ -920,23 +920,18 @@ static void msg_written_handler(struct ssif_info *ssif_info, int result,
                        msg_done_handler(ssif_info, -EIO, NULL, 0);
                }
        } else {
+               /* Ready to request the result. */
                unsigned long oflags, *flags;
-               bool got_alert;
 
                ssif_inc_stat(ssif_info, sent_messages);
                ssif_inc_stat(ssif_info, sent_messages_parts);
 
                flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
-               got_alert = ssif_info->got_alert;
-               if (got_alert) {
+               if (ssif_info->got_alert) {
+                       /* The result is already ready, just start it. */
                        ssif_info->got_alert = false;
-                       ssif_info->waiting_alert = false;
-               }
-
-               if (got_alert) {
                        ipmi_ssif_unlock_cond(ssif_info, flags);
-                       /* The alert already happened, try now. */
-                       retry_timeout((unsigned long) ssif_info);
+                       start_get(ssif_info);
                } else {
                        /* Wait a jiffie then request the next message */
                        ssif_info->waiting_alert = true;