Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd9e450c authored by David Kershner's avatar David Kershner Committed by Greg Kroah-Hartman
Browse files

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: default avatarDavid Kershner <david.kershner@unisys.com>
Reviewed-by: default avatarTim Sell <timothy.sell@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 17e4bdda
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -690,8 +690,9 @@ void remove_visor_device(struct visor_device *dev)
{
	list_del(&dev->list_all);
	put_device(&dev->device);
	device_unregister(&dev->device);
	if (dev->pending_msg_hdr)
		visorbus_response(dev, 0, CONTROLVM_DEVICE_DESTROY);
	device_unregister(&dev->device);
}

static int get_vbus_header_info(struct visorchannel *chan,
+6 −7
Original line number Diff line number Diff line
@@ -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;
}