netvsc: don't pass void * to internal device_add
authorstephen hemminger <stephen@networkplumber.org>
Tue, 24 Jan 2017 21:06:09 +0000 (13:06 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Jan 2017 21:29:00 +0000 (16:29 -0500)
All the caller's/callee's know that the format of the device_add
parameter is a netvsc_device_info struct.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/hyperv_net.h
drivers/net/hyperv/netvsc.c
drivers/net/hyperv/rndis_filter.c

index 4b91e37c85ca151a3f26a56088c08b008a099af1..28cbd6a2ecf8a6ce5785ba16251053711bacc721 100644 (file)
@@ -178,7 +178,8 @@ struct rndis_device {
 /* Interface */
 struct rndis_message;
 struct netvsc_device;
-int netvsc_device_add(struct hv_device *device, void *additional_info);
+int netvsc_device_add(struct hv_device *device,
+                     const struct netvsc_device_info *info);
 void netvsc_device_remove(struct hv_device *device);
 int netvsc_send(struct hv_device *device,
                struct hv_netvsc_packet *packet,
@@ -196,7 +197,7 @@ void netvsc_channel_cb(void *context);
 int rndis_filter_open(struct netvsc_device *nvdev);
 int rndis_filter_close(struct netvsc_device *nvdev);
 int rndis_filter_device_add(struct hv_device *dev,
-                       void *additional_info);
+                           struct netvsc_device_info *info);
 void rndis_filter_device_remove(struct hv_device *dev);
 int rndis_filter_set_rss_param(struct rndis_device *rdev,
                               const u8 *key, int num_queue);
index 80eecb4f9456c8a9853382683a67d4fdaa6ffa71..359e7ef7040be6803974ed01cb0b3dd60501cbdb 100644 (file)
@@ -1283,11 +1283,11 @@ void netvsc_channel_cb(void *context)
  * netvsc_device_add - Callback when the device belonging to this
  * driver is added
  */
-int netvsc_device_add(struct hv_device *device, void *additional_info)
+int netvsc_device_add(struct hv_device *device,
+                     const struct netvsc_device_info *device_info)
 {
        int i, ret = 0;
-       int ring_size =
-       ((struct netvsc_device_info *)additional_info)->ring_size;
+       int ring_size = device_info->ring_size;
        struct netvsc_device *net_device;
        struct net_device *ndev = hv_get_drvdata(device);
        struct net_device_context *net_device_ctx = netdev_priv(ndev);
index decce4f8fda8da06a5a8aa42d0705d61c4293f3e..e3b29f35366ce929a7fb41d1bfd15fd7b5be732d 100644 (file)
@@ -1005,13 +1005,12 @@ static void netvsc_sc_open(struct vmbus_channel *new_sc)
 }
 
 int rndis_filter_device_add(struct hv_device *dev,
-                           void *additional_info)
+                           struct netvsc_device_info *device_info)
 {
        struct net_device *net = hv_get_drvdata(dev);
        struct net_device_context *net_device_ctx = netdev_priv(net);
        struct netvsc_device *net_device;
        struct rndis_device *rndis_device;
-       struct netvsc_device_info *device_info = additional_info;
        struct ndis_offload hwcaps;
        struct ndis_offload_params offloads;
        struct nvsp_message *init_packet;
@@ -1035,7 +1034,7 @@ int rndis_filter_device_add(struct hv_device *dev,
         * NOTE! Once the channel is created, we may get a receive callback
         * (RndisFilterOnReceive()) before this call is completed
         */
-       ret = netvsc_device_add(dev, additional_info);
+       ret = netvsc_device_add(dev, device_info);
        if (ret != 0) {
                kfree(rndis_device);
                return ret;