diff options
author | Corey Minyard <cminyard@mvista.com> | 2018-04-11 14:24:27 -0400 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2018-04-18 11:23:08 -0400 |
commit | 0fbecb4f478232070d3161e7b4a222eaba0bcbcd (patch) | |
tree | 68ad87e598f41dc96bf1b55cc6b394e97bc50dae | |
parent | ebb339a597b5f06cea5ea9d984c56bc4d2fa11f6 (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.c | 11 | ||||
-rw-r--r-- | drivers/char/ipmi/ipmi_ssif.c | 12 |
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 | ||
296 | static void return_hosed_msg(struct smi_info *smi_info, int cCode) | 293 | static 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, | |||
312 | static void deliver_recv_msg(struct ssif_info *ssif_info, | 312 | static 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, | |||
449 | static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags) | 445 | static 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); |