Drivers: hv: vss: Improve log messages.

Adding log messages to help troubleshoot error cases and transaction
handling.

Signed-off-by: Alex Ng <alexng@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Alex Ng 2016-11-06 13:14:10 -08:00 committed by Greg Kroah-Hartman
parent b3bb97b8a4
commit 23d2cc0c29
1 changed files with 19 additions and 6 deletions

View File

@ -120,7 +120,7 @@ static int vss_handle_handshake(struct hv_vss_msg *vss_msg)
default: default:
return -EINVAL; return -EINVAL;
} }
pr_debug("VSS: userspace daemon ver. %d connected\n", dm_reg_value); pr_info("VSS: userspace daemon ver. %d connected\n", dm_reg_value);
return 0; return 0;
} }
@ -128,8 +128,10 @@ static int vss_on_msg(void *msg, int len)
{ {
struct hv_vss_msg *vss_msg = (struct hv_vss_msg *)msg; struct hv_vss_msg *vss_msg = (struct hv_vss_msg *)msg;
if (len != sizeof(*vss_msg)) if (len != sizeof(*vss_msg)) {
pr_debug("VSS: Message size does not match length\n");
return -EINVAL; return -EINVAL;
}
if (vss_msg->vss_hdr.operation == VSS_OP_REGISTER || if (vss_msg->vss_hdr.operation == VSS_OP_REGISTER ||
vss_msg->vss_hdr.operation == VSS_OP_REGISTER1) { vss_msg->vss_hdr.operation == VSS_OP_REGISTER1) {
@ -137,8 +139,11 @@ static int vss_on_msg(void *msg, int len)
* Don't process registration messages if we're in the middle * Don't process registration messages if we're in the middle
* of a transaction processing. * of a transaction processing.
*/ */
if (vss_transaction.state > HVUTIL_READY) if (vss_transaction.state > HVUTIL_READY) {
pr_debug("VSS: Got unexpected registration request\n");
return -EINVAL; return -EINVAL;
}
return vss_handle_handshake(vss_msg); return vss_handle_handshake(vss_msg);
} else if (vss_transaction.state == HVUTIL_USERSPACE_REQ) { } else if (vss_transaction.state == HVUTIL_USERSPACE_REQ) {
vss_transaction.state = HVUTIL_USERSPACE_RECV; vss_transaction.state = HVUTIL_USERSPACE_RECV;
@ -155,7 +160,7 @@ static int vss_on_msg(void *msg, int len)
} }
} else { } else {
/* This is a spurious call! */ /* This is a spurious call! */
pr_warn("VSS: Transaction not active\n"); pr_debug("VSS: Transaction not active\n");
return -EINVAL; return -EINVAL;
} }
return 0; return 0;
@ -168,8 +173,10 @@ static void vss_send_op(void)
struct hv_vss_msg *vss_msg; struct hv_vss_msg *vss_msg;
/* The transaction state is wrong. */ /* The transaction state is wrong. */
if (vss_transaction.state != HVUTIL_HOSTMSG_RECEIVED) if (vss_transaction.state != HVUTIL_HOSTMSG_RECEIVED) {
pr_debug("VSS: Unexpected attempt to send to daemon\n");
return; return;
}
vss_msg = kzalloc(sizeof(*vss_msg), GFP_KERNEL); vss_msg = kzalloc(sizeof(*vss_msg), GFP_KERNEL);
if (!vss_msg) if (!vss_msg)
@ -210,9 +217,13 @@ static void vss_handle_request(struct work_struct *dummy)
case VSS_OP_HOT_BACKUP: case VSS_OP_HOT_BACKUP:
if (vss_transaction.state < HVUTIL_READY) { if (vss_transaction.state < HVUTIL_READY) {
/* Userspace is not registered yet */ /* Userspace is not registered yet */
pr_debug("VSS: Not ready for request.\n");
vss_respond_to_host(HV_E_FAIL); vss_respond_to_host(HV_E_FAIL);
return; return;
} }
pr_debug("VSS: Received request for op code: %d\n",
vss_transaction.msg->vss_hdr.operation);
vss_transaction.state = HVUTIL_HOSTMSG_RECEIVED; vss_transaction.state = HVUTIL_HOSTMSG_RECEIVED;
vss_send_op(); vss_send_op();
return; return;
@ -353,8 +364,10 @@ hv_vss_init(struct hv_util_service *srv)
hvt = hvutil_transport_init(vss_devname, CN_VSS_IDX, CN_VSS_VAL, hvt = hvutil_transport_init(vss_devname, CN_VSS_IDX, CN_VSS_VAL,
vss_on_msg, vss_on_reset); vss_on_msg, vss_on_reset);
if (!hvt) if (!hvt) {
pr_warn("VSS: Failed to initialize transport\n");
return -EFAULT; return -EFAULT;
}
return 0; return 0;
} }