diff options
author | Tejun Heo <tj@kernel.org> | 2015-11-03 17:29:03 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2015-11-03 17:29:03 -0500 |
commit | 159b5bb46492e4dcef2070b12861030bc360402b (patch) | |
tree | 93de7d6e94a059aade50ee5437de6a50ccd1cf7b /drivers/char/ipmi/ipmi_powernv.c | |
parent | 56e74338a535cbcc2f2da08b1ea1a92920194364 (diff) | |
parent | 469eabb3aec03d9defed3462df743a223a5c8f54 (diff) |
Merge branch 'for-4.3-fixes' into for-4.4
Diffstat (limited to 'drivers/char/ipmi/ipmi_powernv.c')
-rw-r--r-- | drivers/char/ipmi/ipmi_powernv.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/char/ipmi/ipmi_powernv.c b/drivers/char/ipmi/ipmi_powernv.c index 9b409c0f14f7..6e658aa114f1 100644 --- a/drivers/char/ipmi/ipmi_powernv.c +++ b/drivers/char/ipmi/ipmi_powernv.c @@ -143,8 +143,15 @@ static int ipmi_powernv_recv(struct ipmi_smi_powernv *smi) pr_devel("%s: -> %d (size %lld)\n", __func__, rc, rc == 0 ? size : 0); if (rc) { + /* If came via the poll, and response was not yet ready */ + if (rc == OPAL_EMPTY) { + spin_unlock_irqrestore(&smi->msg_lock, flags); + return 0; + } + + smi->cur_msg = NULL; spin_unlock_irqrestore(&smi->msg_lock, flags); - ipmi_free_smi_msg(msg); + send_error_reply(smi, msg, IPMI_ERR_UNSPECIFIED); return 0; } @@ -300,7 +307,6 @@ static const struct of_device_id ipmi_powernv_match[] = { static struct platform_driver powernv_ipmi_driver = { .driver = { .name = "ipmi-powernv", - .owner = THIS_MODULE, .of_match_table = ipmi_powernv_match, }, .probe = ipmi_powernv_probe, |