diff options
author | Haiyang Zhang <haiyangz@microsoft.com> | 2010-09-08 20:29:45 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-09-14 16:27:12 -0700 |
commit | 9e795a5232e1888d46e22e05677d280a1056ceea (patch) | |
tree | 72ef59bde440e15a514158513f35fdbdc389bfab /drivers/staging/hv | |
parent | 5fee254098c11a52ce04e1efdc8c090caf592bfd (diff) | |
download | kernel_samsung_smdk4412-9e795a5232e1888d46e22e05677d280a1056ceea.zip kernel_samsung_smdk4412-9e795a5232e1888d46e22e05677d280a1056ceea.tar.gz kernel_samsung_smdk4412-9e795a5232e1888d46e22e05677d280a1056ceea.tar.bz2 |
staging: hv: Convert vmbus driver interface function pointer table to constant
Convert vmbus driver interface function pointer table to constant
The vmbus interface functions are assigned to a constant - vmbus_ops.
Because the vmbus interface function pointer table is converted to a
constant variable -- vmbus_ops, the function GetChannelInterface(),
VmbusGetChannelInterface() and pointer GetChannelInterface are no longer
in use. The deprecated function's work is done by the initialization of
the newly added constant variable vmbus_ops.
I created the new constant variable vmbus_ops and removed the deprecated
function pointer GetChannelInterface in one patch.
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/hv')
-rw-r--r-- | drivers/staging/hv/TODO | 2 | ||||
-rw-r--r-- | drivers/staging/hv/channel_interface.c | 29 | ||||
-rw-r--r-- | drivers/staging/hv/channel_interface.h | 2 | ||||
-rw-r--r-- | drivers/staging/hv/vmbus.c | 9 | ||||
-rw-r--r-- | drivers/staging/hv/vmbus_api.h | 4 | ||||
-rw-r--r-- | drivers/staging/hv/vmbus_drv.c | 4 |
6 files changed, 19 insertions, 31 deletions
diff --git a/drivers/staging/hv/TODO b/drivers/staging/hv/TODO index 66a89c8..582fd4a 100644 --- a/drivers/staging/hv/TODO +++ b/drivers/staging/hv/TODO @@ -2,8 +2,6 @@ TODO: - fix remaining checkpatch warnings and errors - audit the vmbus to verify it is working properly with the driver model - - convert vmbus driver interface function pointer tables - to constant, a.k.a vmbus_ops - see if the vmbus can be merged with the other virtual busses in the kernel - audit the network driver diff --git a/drivers/staging/hv/channel_interface.c b/drivers/staging/hv/channel_interface.c index d9f51ac..3f6a1cb 100644 --- a/drivers/staging/hv/channel_interface.c +++ b/drivers/staging/hv/channel_interface.c @@ -97,20 +97,6 @@ static int IVmbusChannelTeardownGpadl(struct hv_device *device, u32 GpadlHandle) } -void GetChannelInterface(struct vmbus_channel_interface *iface) -{ - iface->Open = IVmbusChannelOpen; - iface->Close = IVmbusChannelClose; - iface->SendPacket = IVmbusChannelSendPacket; - iface->SendPacketPageBuffer = IVmbusChannelSendPacketPageBuffer; - iface->SendPacketMultiPageBuffer = - IVmbusChannelSendPacketMultiPageBuffer; - iface->RecvPacket = IVmbusChannelRecvPacket; - iface->RecvPacketRaw = IVmbusChannelRecvPacketRaw; - iface->EstablishGpadl = IVmbusChannelEstablishGpadl; - iface->TeardownGpadl = IVmbusChannelTeardownGpadl; - iface->GetInfo = GetChannelInfo; -} void GetChannelInfo(struct hv_device *device, struct hv_device_info *info) { @@ -150,3 +136,18 @@ void GetChannelInfo(struct hv_device *device, struct hv_device_info *info) info->Outbound.BytesAvailToRead = debugInfo.Outbound.BytesAvailToRead; info->Outbound.BytesAvailToWrite = debugInfo.Outbound.BytesAvailToWrite; } + + +/* vmbus interface function pointer table */ +const struct vmbus_channel_interface vmbus_ops = { + .Open = IVmbusChannelOpen, + .Close = IVmbusChannelClose, + .SendPacket = IVmbusChannelSendPacket, + .SendPacketPageBuffer = IVmbusChannelSendPacketPageBuffer, + .SendPacketMultiPageBuffer = IVmbusChannelSendPacketMultiPageBuffer, + .RecvPacket = IVmbusChannelRecvPacket, + .RecvPacketRaw = IVmbusChannelRecvPacketRaw, + .EstablishGpadl = IVmbusChannelEstablishGpadl, + .TeardownGpadl = IVmbusChannelTeardownGpadl, + .GetInfo = GetChannelInfo, +}; diff --git a/drivers/staging/hv/channel_interface.h b/drivers/staging/hv/channel_interface.h index 6acaf6c..ec88219 100644 --- a/drivers/staging/hv/channel_interface.h +++ b/drivers/staging/hv/channel_interface.h @@ -27,8 +27,6 @@ #include "vmbus_api.h" -void GetChannelInterface(struct vmbus_channel_interface *ChannelInterface); - void GetChannelInfo(struct hv_device *Device, struct hv_device_info *DeviceInfo); diff --git a/drivers/staging/hv/vmbus.c b/drivers/staging/hv/vmbus.c index ca1e18a..db2afa3 100644 --- a/drivers/staging/hv/vmbus.c +++ b/drivers/staging/hv/vmbus.c @@ -61,14 +61,6 @@ static void VmbusGetChannelOffers(void) } /* - * VmbusGetChannelInterface - Get the channel interface - */ -static void VmbusGetChannelInterface(struct vmbus_channel_interface *Interface) -{ - GetChannelInterface(Interface); -} - -/* * VmbusGetChannelInfo - Get the device info for the specified device object */ static void VmbusGetChannelInfo(struct hv_device *DeviceObject, @@ -279,7 +271,6 @@ int VmbusInitialize(struct hv_driver *drv) driver->OnMsgDpc = VmbusOnMsgDPC; driver->OnEventDpc = VmbusOnEventDPC; driver->GetChannelOffers = VmbusGetChannelOffers; - driver->GetChannelInterface = VmbusGetChannelInterface; driver->GetChannelInfo = VmbusGetChannelInfo; /* Hypervisor initialization...setup hypercall page..etc */ diff --git a/drivers/staging/hv/vmbus_api.h b/drivers/staging/hv/vmbus_api.h index 4275be3..7f3d7dc 100644 --- a/drivers/staging/hv/vmbus_api.h +++ b/drivers/staging/hv/vmbus_api.h @@ -129,6 +129,9 @@ struct vmbus_channel_interface { void (*GetInfo)(struct hv_device *dev, struct hv_device_info *devinfo); }; +extern const struct vmbus_channel_interface vmbus_ops; + + /* Base driver object */ struct hv_driver { const char *name; @@ -183,7 +186,6 @@ struct vmbus_driver { void (*OnEventDpc)(struct hv_driver *driver); void (*GetChannelOffers)(void); - void (*GetChannelInterface)(struct vmbus_channel_interface *i); void (*GetChannelInfo)(struct hv_device *dev, struct hv_device_info *devinfo); }; diff --git a/drivers/staging/hv/vmbus_drv.c b/drivers/staging/hv/vmbus_drv.c index 092f02e..ad29887 100644 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@ -458,9 +458,7 @@ EXPORT_SYMBOL(vmbus_child_driver_unregister); */ void vmbus_get_interface(struct vmbus_channel_interface *interface) { - struct vmbus_driver *vmbus_drv_obj = &g_vmbus_drv.drv_obj; - - vmbus_drv_obj->GetChannelInterface(interface); + *interface = vmbus_ops; } EXPORT_SYMBOL(vmbus_get_interface); |