summaryrefslogtreecommitdiffstats
path: root/drivers/staging/unisys/visorbus/visorchipset.c
diff options
context:
space:
mode:
authorDavid Kershner2017-09-27 19:14:16 +0200
committerGreg Kroah-Hartman2017-09-28 11:17:13 +0200
commitfd9e450cf5499d6ed6821f2d007e91b729e26092 (patch)
treee0cbfb0c1d9096ad1b0232f7d7f67d38ac0cba29 /drivers/staging/unisys/visorbus/visorchipset.c
parentstaging: unisys: visorbus: don't put code in declaration. (diff)
downloadkernel-qcow2-linux-fd9e450cf5499d6ed6821f2d007e91b729e26092.tar.gz
kernel-qcow2-linux-fd9e450cf5499d6ed6821f2d007e91b729e26092.tar.xz
kernel-qcow2-linux-fd9e450cf5499d6ed6821f2d007e91b729e26092.zip
staging: unisys: visorbus: NULL pending_msg_hdr not an error
A NULL pending_msg_hdr is not an error, it just means that the firmware does not want an error response for that message. Signed-off-by: David Kershner <david.kershner@unisys.com> Reviewed-by: Tim Sell <timothy.sell@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/unisys/visorbus/visorchipset.c')
-rw-r--r--drivers/staging/unisys/visorbus/visorchipset.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index 14bc219350a7..df7429df0699 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -481,9 +481,6 @@ static int controlvm_responder(enum controlvm_id cmd_id,
struct controlvm_message_header *pending_msg_hdr,
int response)
{
- if (!pending_msg_hdr)
- return -EIO;
-
if (pending_msg_hdr->id != (u32)cmd_id)
return -EINVAL;
@@ -497,8 +494,6 @@ static int device_changestate_responder(
{
struct controlvm_message outmsg;
- if (!p->pending_msg_hdr)
- return -EIO;
if (p->pending_msg_hdr->id != cmd_id)
return -EINVAL;
@@ -1391,8 +1386,10 @@ static void setup_crash_devices_work_queue(struct work_struct *work)
void visorbus_response(struct visor_device *bus_info, int response,
int controlvm_id)
{
- controlvm_responder(controlvm_id, bus_info->pending_msg_hdr, response);
+ if (!bus_info->pending_msg_hdr)
+ return;
+ controlvm_responder(controlvm_id, bus_info->pending_msg_hdr, response);
kfree(bus_info->pending_msg_hdr);
bus_info->pending_msg_hdr = NULL;
}
@@ -1401,9 +1398,11 @@ void visorbus_device_changestate_response(struct visor_device *dev_info,
int response,
struct visor_segment_state state)
{
+ if (!dev_info->pending_msg_hdr)
+ return;
+
device_changestate_responder(CONTROLVM_DEVICE_CHANGESTATE, dev_info,
response, state);
-
kfree(dev_info->pending_msg_hdr);
dev_info->pending_msg_hdr = NULL;
}