search for: hv_channel_ready

Displaying 18 results from an estimated 18 matches for "hv_channel_ready".

2010 May 28
0
[PATCH 1/1] staging: hv: Fix race condition on vmbus channel initialization
...list.h> #include <linux/module.h> +#include <linux/completion.h> #include "osd.h" #include "logging.h" #include "vmbus_private.h" @@ -293,6 +294,25 @@ void FreeVmbusChannel(struct vmbus_channel *Channel) Channel); } + +DECLARE_COMPLETION(hv_channel_ready); + +/* + * Count initialized channels, and ensure all channels are ready when hv_vmbus + * module loading completes. + */ +static void count_hv_channel(void) +{ + static int counter; + unsigned long flags; + + spin_lock_irqsave(&gVmbusConnection.channel_lock, flags); + if (++counter == MAX_MSG...
2010 May 28
0
[PATCH 1/1] staging: hv: Fix race condition on vmbus channel initialization
...list.h> #include <linux/module.h> +#include <linux/completion.h> #include "osd.h" #include "logging.h" #include "vmbus_private.h" @@ -293,6 +294,25 @@ void FreeVmbusChannel(struct vmbus_channel *Channel) Channel); } + +DECLARE_COMPLETION(hv_channel_ready); + +/* + * Count initialized channels, and ensure all channels are ready when hv_vmbus + * module loading completes. + */ +static void count_hv_channel(void) +{ + static int counter; + unsigned long flags; + + spin_lock_irqsave(&gVmbusConnection.channel_lock, flags); + if (++counter == MAX_MSG...
2011 Mar 07
0
[PATCH 06/16] Staging: hv: Change the signature for vmbus_child_driver_unregister
...text *driver_to_driver_context(struct device_driv /* Vmbus interface */ int vmbus_child_driver_register(struct device_driver *drv); -void vmbus_child_driver_unregister(struct driver_context *driver_ctx); +void vmbus_child_driver_unregister(struct device_driver *drv); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 685376b..1473809 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -646,23 +646,22 @@ EXPORT_SYMBOL(vmbus_child_driver_register); /** * vmbus_child_driver_unregister() - Unre...
2011 Mar 07
0
[PATCH 06/16] Staging: hv: Change the signature for vmbus_child_driver_unregister
...text *driver_to_driver_context(struct device_driv /* Vmbus interface */ int vmbus_child_driver_register(struct device_driver *drv); -void vmbus_child_driver_unregister(struct driver_context *driver_ctx); +void vmbus_child_driver_unregister(struct device_driver *drv); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 685376b..1473809 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -646,23 +646,22 @@ EXPORT_SYMBOL(vmbus_child_driver_register); /** * vmbus_child_driver_unregister() - Unre...
2011 Mar 07
0
[PATCH 05/16] Staging: hv: Change the signature for vmbus_child_driver_register
...river_to_driver_context(struct device_driv /* Vmbus interface */ -int vmbus_child_driver_register(struct driver_context *driver_ctx); +int vmbus_child_driver_register(struct device_driver *drv); void vmbus_child_driver_unregister(struct driver_context *driver_ctx); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 6ef5bee..685376b 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -617,9 +617,8 @@ static void vmbus_bus_exit(void) /** * vmbus_child_driver_register() - Register a vmbus'...
2011 Mar 07
0
[PATCH 05/16] Staging: hv: Change the signature for vmbus_child_driver_register
...river_to_driver_context(struct device_driv /* Vmbus interface */ -int vmbus_child_driver_register(struct driver_context *driver_ctx); +int vmbus_child_driver_register(struct device_driver *drv); void vmbus_child_driver_unregister(struct driver_context *driver_ctx); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 6ef5bee..685376b 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -617,9 +617,8 @@ static void vmbus_bus_exit(void) /** * vmbus_child_driver_register() - Register a vmbus'...
2011 Mar 10
1
[PATCH 10/21] Staging: hv: Cleanup root device handling
...- DPRINT_ERR(VMBUS_DRV, - "ERROR - Unable to register vmbus root device"); - + root_device_unregister(root_dev); free_irq(vmbus_irq, NULL); bus_unregister(&vmbus_drv_ctx->bus); - - ret = -1; goto cleanup; } + vmbus_request_offers(); wait_for_completion(&hv_channel_ready); @@ -538,7 +476,6 @@ static void vmbus_bus_exit(void) { struct vmbus_driver_context *vmbus_drv_ctx = &vmbus_drv; - struct hv_device *dev_ctx = &vmbus_drv.device_ctx; vmbus_release_unattached_channels(); vmbus_disconnect(); @@ -547,7 +484,7 @@ static void vmbus_bus_exit(void)...
2011 Mar 10
1
[PATCH 10/21] Staging: hv: Cleanup root device handling
...- DPRINT_ERR(VMBUS_DRV, - "ERROR - Unable to register vmbus root device"); - + root_device_unregister(root_dev); free_irq(vmbus_irq, NULL); bus_unregister(&vmbus_drv_ctx->bus); - - ret = -1; goto cleanup; } + vmbus_request_offers(); wait_for_completion(&hv_channel_ready); @@ -538,7 +476,6 @@ static void vmbus_bus_exit(void) { struct vmbus_driver_context *vmbus_drv_ctx = &vmbus_drv; - struct hv_device *dev_ctx = &vmbus_drv.device_ctx; vmbus_release_unattached_channels(); vmbus_disconnect(); @@ -547,7 +484,7 @@ static void vmbus_bus_exit(void)...
2011 Feb 26
2
[PATCH 6/6] Staging: hv: Cleanup hyperv_driver variable names
...face */ -int vmbus_child_driver_register(struct hyperv_driver *driver_ctx); -void vmbus_child_driver_unregister(struct hyperv_driver *driver_ctx); +int vmbus_child_driver_register(struct hyperv_driver *drv); +void vmbus_child_driver_unregister(struct hyperv_driver *drv); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index c7e8a36..40c641f 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -46,7 +46,7 @@ struct vmbus_hyperv_driver { /* FIXME, this is a bug */ /* The driver field is not used in he...
2011 Feb 26
2
[PATCH 6/6] Staging: hv: Cleanup hyperv_driver variable names
...face */ -int vmbus_child_driver_register(struct hyperv_driver *driver_ctx); -void vmbus_child_driver_unregister(struct hyperv_driver *driver_ctx); +int vmbus_child_driver_register(struct hyperv_driver *drv); +void vmbus_child_driver_unregister(struct hyperv_driver *drv); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index c7e8a36..40c641f 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -46,7 +46,7 @@ struct vmbus_hyperv_driver { /* FIXME, this is a bug */ /* The driver field is not used in he...
2011 Feb 26
1
[PATCH 5/6] Staging: hv: Rename driver_context to hyperv_driver
...us_child_driver_register(struct driver_context *driver_ctx); -void vmbus_child_driver_unregister(struct driver_context *driver_ctx); +int vmbus_child_driver_register(struct hyperv_driver *driver_ctx); +void vmbus_child_driver_unregister(struct hyperv_driver *driver_ctx); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_api.h b/drivers/staging/hv/vmbus_api.h index 0d8232e..6e3e1a8 100644 --- a/drivers/staging/hv/vmbus_api.h +++ b/drivers/staging/hv/vmbus_api.h @@ -55,7 +55,7 @@ struct hv_multipage_buffer { #pragma pack(pop) -struct driver_context; +struct hyperv_driver...
2011 Feb 26
1
[PATCH 5/6] Staging: hv: Rename driver_context to hyperv_driver
...us_child_driver_register(struct driver_context *driver_ctx); -void vmbus_child_driver_unregister(struct driver_context *driver_ctx); +int vmbus_child_driver_register(struct hyperv_driver *driver_ctx); +void vmbus_child_driver_unregister(struct hyperv_driver *driver_ctx); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_api.h b/drivers/staging/hv/vmbus_api.h index 0d8232e..6e3e1a8 100644 --- a/drivers/staging/hv/vmbus_api.h +++ b/drivers/staging/hv/vmbus_api.h @@ -55,7 +55,7 @@ struct hv_multipage_buffer { #pragma pack(pop) -struct driver_context; +struct hyperv_driver...
2011 Jan 26
8
[PATCH 1/8] staging: hv: Convert camel cased variables in connection.c to lower cases
...gt;work); } @@ -323,10 +323,10 @@ static void count_hv_channel(void) static int counter; unsigned long flags; - spin_lock_irqsave(&gVmbusConnection.channel_lock, flags); + spin_lock_irqsave(&vmbus_connection.channel_lock, flags); if (++counter == MAX_MSG_TYPES) complete(&hv_channel_ready); - spin_unlock_irqrestore(&gVmbusConnection.channel_lock, flags); + spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags); } /* @@ -361,9 +361,9 @@ static void vmbus_process_offer(struct work_struct *work) INIT_WORK(&newchannel->work, vmbus_process_rescind_offer);...
2011 Jan 26
8
[PATCH 1/8] staging: hv: Convert camel cased variables in connection.c to lower cases
...gt;work); } @@ -323,10 +323,10 @@ static void count_hv_channel(void) static int counter; unsigned long flags; - spin_lock_irqsave(&gVmbusConnection.channel_lock, flags); + spin_lock_irqsave(&vmbus_connection.channel_lock, flags); if (++counter == MAX_MSG_TYPES) complete(&hv_channel_ready); - spin_unlock_irqrestore(&gVmbusConnection.channel_lock, flags); + spin_unlock_irqrestore(&vmbus_connection.channel_lock, flags); } /* @@ -361,9 +361,9 @@ static void vmbus_process_offer(struct work_struct *work) INIT_WORK(&newchannel->work, vmbus_process_rescind_offer);...
2011 Mar 15
16
[PATCH 00/12] Staging: hv: Cleanup vmbus driver - Phase II
This patch-set fixes the following issues in the vmbus driver (vmbus_drv.c): Make vmbus driver a platform pci device and cleanup root device management and irq allocation (patches 1/12 through 3/12): 1) Make vmbus driver a platform pci driver. 2) Cleanup root device management. 3) Leverage the pci model for allocating irq. General cleanup of vmbus driver (patches 4/12 though 12/12): 1)
2011 Mar 15
16
[PATCH 00/12] Staging: hv: Cleanup vmbus driver - Phase II
This patch-set fixes the following issues in the vmbus driver (vmbus_drv.c): Make vmbus driver a platform pci device and cleanup root device management and irq allocation (patches 1/12 through 3/12): 1) Make vmbus driver a platform pci driver. 2) Cleanup root device management. 3) Leverage the pci model for allocating irq. General cleanup of vmbus driver (patches 4/12 though 12/12): 1)
2011 Feb 24
4
[PATCH ] Staging: hv: Hyper-V driver cleanup
...ce */ -int vmbus_child_driver_register(struct driver_context *driver_ctx); -void vmbus_child_driver_unregister(struct driver_context *driver_ctx); +int vmbus_child_driver_register(struct hyperv_driver *drv); +void vmbus_child_driver_unregister(struct hyperv_driver *drv); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_api.h b/drivers/staging/hv/vmbus_api.h index 635ce22..6e3e1a8 100644 --- a/drivers/staging/hv/vmbus_api.h +++ b/drivers/staging/hv/vmbus_api.h @@ -55,8 +55,8 @@ struct hv_multipage_buffer { #pragma pack(pop) -struct hv_driver; -struct hv_device; +struct...
2011 Feb 24
4
[PATCH ] Staging: hv: Hyper-V driver cleanup
...ce */ -int vmbus_child_driver_register(struct driver_context *driver_ctx); -void vmbus_child_driver_unregister(struct driver_context *driver_ctx); +int vmbus_child_driver_register(struct hyperv_driver *drv); +void vmbus_child_driver_unregister(struct hyperv_driver *drv); extern struct completion hv_channel_ready; diff --git a/drivers/staging/hv/vmbus_api.h b/drivers/staging/hv/vmbus_api.h index 635ce22..6e3e1a8 100644 --- a/drivers/staging/hv/vmbus_api.h +++ b/drivers/staging/hv/vmbus_api.h @@ -55,8 +55,8 @@ struct hv_multipage_buffer { #pragma pack(pop) -struct hv_driver; -struct hv_device; +struct...