linux/drivers/staging/hv
K. Y. Srinivasan 76e5f8135d Staging: hv: util: Fix a bug in kvp implementation
The host gurantees that there can be only one kvp transaction active
against the guest. So, the transaction active state is needed only to
protect against spurious user level calls. The current code had a race
condition where the guest could prematurely return because the previous
transaction state was not cleared - this state was being cleared after
sending the response to the host and there was a window where the host
could notify the guest of a new transaction before the transaction active
state was properly set.
Also deal with the case when the user mode component
does not respond in a timely fashion correctly.
I would like to thank Long Li <longli@microsoft.com>
for identifying the problem.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Diagnosed-by: Long Li <longli@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-10 17:05:27 -07:00
..
tools Staging: hv: util: kvp: Cleanup kvp_get_domain_name() 2011-08-23 16:19:37 -07:00
channel_mgmt.c Staging: hv: vmbus: Get rid of hv_cb_utils[] and other unneeded code 2011-09-20 13:00:54 -07:00
channel.c Staging: hv: vmbus: Properly deal with de-registering channel callback 2011-08-29 11:05:30 -07:00
connection.c Staging: hv: vmbus: Cleanup the code in process_chn_event() 2011-09-06 11:53:51 -07:00
hv_kvp.c Staging: hv: util: Fix a bug in kvp implementation 2011-10-10 17:05:27 -07:00
hv_kvp.h Staging: hv: util: Perform some service specific init/deinit in probe/remove 2011-09-20 13:00:53 -07:00
hv_mouse.c Staging: hv: mousevsc: Get rid of unnecessary comments 2011-10-04 10:39:39 -07:00
hv_timesource.c Remove unneeded version.h include from drivers/staging/hv/hv_timesource.c 2011-07-05 09:10:47 -07:00
hv_util.c Staging: hv: util: Properly handle util services in the util driver 2011-09-20 13:00:53 -07:00
hv.c Staging: hv: vmbus: Do not enable auto eoi 2011-08-29 11:06:59 -07:00
hyperv_net.h Staging: hv: netvsc: Get rid of the usage of the ext field in struct hv_device 2011-09-16 20:06:03 +02:00
hyperv_vmbus.h Staging: hv: vmbus: Rename vmbus_child_device_unregister 2011-09-09 13:45:39 -07:00
hyperv.h Staging: hv: vmbus: Get rid of hv_cb_utils[] and other unneeded code 2011-09-20 13:00:54 -07:00
Kconfig Staging: hv: vmbus: Get rid of the module dependency 2011-09-16 20:06:03 +02:00
Makefile Staging: hv: storvsc: Include storvsc.c in storvsc_drv.c 2011-08-29 11:01:07 -07:00
netvsc_drv.c staging: hv: remove the carrier status check from netvsc_open() 2011-09-29 17:34:50 -07:00
netvsc.c Staging: hv: netvsc: Rename netDevice as net_device 2011-09-16 20:06:04 +02:00
ring_buffer.c Staging: hv: vmbus: Fix a checkpatch warning in ring_buffer.c 2011-08-29 11:10:02 -07:00
rndis_filter.c Staging: hv: netvsc: Cleanup the name and type of link_stat variable 2011-09-16 20:07:19 +02:00
storvsc_drv.c Staging: hv: storvsc: Eliminate the usage of ext field in struct hv_device 2011-09-16 20:06:03 +02:00
TODO staging: hv: remove the carrier status check from netvsc_open() 2011-09-29 17:34:50 -07:00
vmbus_drv.c Staging: hv: vmbus: Do not allocate struct hv_device_info on the stack 2011-09-16 20:06:03 +02:00