aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorey Minyard <cminyard@mvista.com>2018-04-11 14:24:27 -0400
committerCorey Minyard <cminyard@mvista.com>2018-04-18 11:23:08 -0400
commit0fbecb4f478232070d3161e7b4a222eaba0bcbcd (patch)
tree68ad87e598f41dc96bf1b55cc6b394e97bc50dae
parentebb339a597b5f06cea5ea9d984c56bc4d2fa11f6 (diff)
ipmi: Remove smi->intf checks
Due to changes in the way shutdown is done, it is no longer required to check that the interface is set. Signed-off-by: Corey Minyard <cminyard@mvista.com>
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c11
-rw-r--r--drivers/char/ipmi/ipmi_ssif.c12
2 files changed, 6 insertions, 17 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 2222caf4bab7..de4cfbc7ee0d 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -287,10 +287,7 @@ static void deliver_recv_msg(struct smi_info *smi_info,
287 struct ipmi_smi_msg *msg) 287 struct ipmi_smi_msg *msg)
288{ 288{
289 /* Deliver the message to the upper layer. */ 289 /* Deliver the message to the upper layer. */
290 if (smi_info->intf) 290 ipmi_smi_msg_received(smi_info->intf, msg);
291 ipmi_smi_msg_received(smi_info->intf, msg);
292 else
293 ipmi_free_smi_msg(msg);
294} 291}
295 292
296static void return_hosed_msg(struct smi_info *smi_info, int cCode) 293static void return_hosed_msg(struct smi_info *smi_info, int cCode)
@@ -471,8 +468,7 @@ retry:
471 468
472 start_clear_flags(smi_info); 469 start_clear_flags(smi_info);
473 smi_info->msg_flags &= ~WDT_PRE_TIMEOUT_INT; 470 smi_info->msg_flags &= ~WDT_PRE_TIMEOUT_INT;
474 if (smi_info->intf) 471 ipmi_smi_watchdog_pretimeout(smi_info->intf);
475 ipmi_smi_watchdog_pretimeout(smi_info->intf);
476 } else if (smi_info->msg_flags & RECEIVE_MSG_AVAIL) { 472 } else if (smi_info->msg_flags & RECEIVE_MSG_AVAIL) {
477 /* Messages available. */ 473 /* Messages available. */
478 smi_info->curr_msg = alloc_msg_handle_irq(smi_info); 474 smi_info->curr_msg = alloc_msg_handle_irq(smi_info);
@@ -798,8 +794,7 @@ restart:
798 * We prefer handling attn over new messages. But don't do 794 * We prefer handling attn over new messages. But don't do
799 * this if there is not yet an upper layer to handle anything. 795 * this if there is not yet an upper layer to handle anything.
800 */ 796 */
801 if (likely(smi_info->intf) && 797 if (si_sm_result == SI_SM_ATTN || smi_info->got_attn) {
802 (si_sm_result == SI_SM_ATTN || smi_info->got_attn)) {
803 unsigned char msg[2]; 798 unsigned char msg[2];
804 799
805 if (smi_info->si_state != SI_NORMAL) { 800 if (smi_info->si_state != SI_NORMAL) {
diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
index 4cbaa5ebf897..ecabfe27c828 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
@@ -312,17 +312,13 @@ static void ipmi_ssif_unlock_cond(struct ssif_info *ssif_info,
312static void deliver_recv_msg(struct ssif_info *ssif_info, 312static void deliver_recv_msg(struct ssif_info *ssif_info,
313 struct ipmi_smi_msg *msg) 313 struct ipmi_smi_msg *msg)
314{ 314{
315 struct ipmi_smi *intf = ssif_info->intf; 315 if (msg->rsp_size < 0) {
316
317 if (!intf) {
318 ipmi_free_smi_msg(msg);
319 } else if (msg->rsp_size < 0) {
320 return_hosed_msg(ssif_info, msg); 316 return_hosed_msg(ssif_info, msg);
321 pr_err(PFX 317 pr_err(PFX
322 "Malformed message in deliver_recv_msg: rsp_size = %d\n", 318 "Malformed message in deliver_recv_msg: rsp_size = %d\n",
323 msg->rsp_size); 319 msg->rsp_size);
324 } else { 320 } else {
325 ipmi_smi_msg_received(intf, msg); 321 ipmi_smi_msg_received(ssif_info->intf, msg);
326 } 322 }
327} 323}
328 324
@@ -449,12 +445,10 @@ static void start_recv_msg_fetch(struct ssif_info *ssif_info,
449static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags) 445static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags)
450{ 446{
451 if (ssif_info->msg_flags & WDT_PRE_TIMEOUT_INT) { 447 if (ssif_info->msg_flags & WDT_PRE_TIMEOUT_INT) {
452 struct ipmi_smi *intf = ssif_info->intf;
453 /* Watchdog pre-timeout */ 448 /* Watchdog pre-timeout */
454 ssif_inc_stat(ssif_info, watchdog_pretimeouts); 449 ssif_inc_stat(ssif_info, watchdog_pretimeouts);
455 start_clear_flags(ssif_info, flags); 450 start_clear_flags(ssif_info, flags);
456 if (intf) 451 ipmi_smi_watchdog_pretimeout(ssif_info->intf);
457 ipmi_smi_watchdog_pretimeout(intf);
458 } else if (ssif_info->msg_flags & RECEIVE_MSG_AVAIL) 452 } else if (ssif_info->msg_flags & RECEIVE_MSG_AVAIL)
459 /* Messages available. */ 453 /* Messages available. */
460 start_recv_msg_fetch(ssif_info, flags); 454 start_recv_msg_fetch(ssif_info, flags);