Commit 2625466d authored by Vitaly Kuznetsov's avatar Vitaly Kuznetsov Committed by David S. Miller

hv_netvsc: introduce {net, hv}_device_to_netvsc_device() helpers

Make it easier to get 'struct netvsc_device' from 'struct net_device' and
'struct hv_device' by introducing inline helpers.
Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4baa994d
...@@ -743,6 +743,18 @@ struct netvsc_device { ...@@ -743,6 +743,18 @@ struct netvsc_device {
atomic_t vf_use_cnt; atomic_t vf_use_cnt;
}; };
static inline struct netvsc_device *
net_device_to_netvsc_device(struct net_device *ndev)
{
return ((struct net_device_context *)netdev_priv(ndev))->nvdev;
}
static inline struct netvsc_device *
hv_device_to_netvsc_device(struct hv_device *device)
{
return net_device_to_netvsc_device(hv_get_drvdata(device));
}
/* NdisInitialize message */ /* NdisInitialize message */
struct rndis_initialize_request { struct rndis_initialize_request {
u32 req_id; u32 req_id;
......
...@@ -95,9 +95,7 @@ static void free_netvsc_device(struct netvsc_device *nvdev) ...@@ -95,9 +95,7 @@ static void free_netvsc_device(struct netvsc_device *nvdev)
static struct netvsc_device *get_outbound_net_device(struct hv_device *device) static struct netvsc_device *get_outbound_net_device(struct hv_device *device)
{ {
struct net_device *ndev = hv_get_drvdata(device); struct netvsc_device *net_device = hv_device_to_netvsc_device(device);
struct net_device_context *net_device_ctx = netdev_priv(ndev);
struct netvsc_device *net_device = net_device_ctx->nvdev;
if (net_device && net_device->destroy) if (net_device && net_device->destroy)
net_device = NULL; net_device = NULL;
...@@ -107,9 +105,7 @@ static struct netvsc_device *get_outbound_net_device(struct hv_device *device) ...@@ -107,9 +105,7 @@ static struct netvsc_device *get_outbound_net_device(struct hv_device *device)
static struct netvsc_device *get_inbound_net_device(struct hv_device *device) static struct netvsc_device *get_inbound_net_device(struct hv_device *device)
{ {
struct net_device *ndev = hv_get_drvdata(device); struct netvsc_device *net_device = hv_device_to_netvsc_device(device);
struct net_device_context *net_device_ctx = netdev_priv(ndev);
struct netvsc_device *net_device = net_device_ctx->nvdev;
if (!net_device) if (!net_device)
goto get_in_err; goto get_in_err;
...@@ -128,8 +124,7 @@ static int netvsc_destroy_buf(struct hv_device *device) ...@@ -128,8 +124,7 @@ static int netvsc_destroy_buf(struct hv_device *device)
struct nvsp_message *revoke_packet; struct nvsp_message *revoke_packet;
int ret = 0; int ret = 0;
struct net_device *ndev = hv_get_drvdata(device); struct net_device *ndev = hv_get_drvdata(device);
struct net_device_context *net_device_ctx = netdev_priv(ndev); struct netvsc_device *net_device = net_device_to_netvsc_device(ndev);
struct netvsc_device *net_device = net_device_ctx->nvdev;
/* /*
* If we got a section count, it means we received a * If we got a section count, it means we received a
......
...@@ -546,8 +546,7 @@ static int rndis_filter_query_device_mac(struct rndis_device *dev) ...@@ -546,8 +546,7 @@ static int rndis_filter_query_device_mac(struct rndis_device *dev)
int rndis_filter_set_device_mac(struct hv_device *hdev, char *mac) int rndis_filter_set_device_mac(struct hv_device *hdev, char *mac)
{ {
struct net_device *ndev = hv_get_drvdata(hdev); struct net_device *ndev = hv_get_drvdata(hdev);
struct net_device_context *net_device_ctx = netdev_priv(ndev); struct netvsc_device *nvdev = net_device_to_netvsc_device(ndev);
struct netvsc_device *nvdev = net_device_ctx->nvdev;
struct rndis_device *rdev = nvdev->extension; struct rndis_device *rdev = nvdev->extension;
struct rndis_request *request; struct rndis_request *request;
struct rndis_set_request *set; struct rndis_set_request *set;
...@@ -626,8 +625,7 @@ rndis_filter_set_offload_params(struct hv_device *hdev, ...@@ -626,8 +625,7 @@ rndis_filter_set_offload_params(struct hv_device *hdev,
struct ndis_offload_params *req_offloads) struct ndis_offload_params *req_offloads)
{ {
struct net_device *ndev = hv_get_drvdata(hdev); struct net_device *ndev = hv_get_drvdata(hdev);
struct net_device_context *net_device_ctx = netdev_priv(ndev); struct netvsc_device *nvdev = net_device_to_netvsc_device(ndev);
struct netvsc_device *nvdev = net_device_ctx->nvdev;
struct rndis_device *rdev = nvdev->extension; struct rndis_device *rdev = nvdev->extension;
struct rndis_request *request; struct rndis_request *request;
struct rndis_set_request *set; struct rndis_set_request *set;
...@@ -851,8 +849,7 @@ static int rndis_filter_init_device(struct rndis_device *dev) ...@@ -851,8 +849,7 @@ static int rndis_filter_init_device(struct rndis_device *dev)
u32 status; u32 status;
int ret; int ret;
unsigned long t; unsigned long t;
struct net_device_context *net_device_ctx = netdev_priv(dev->ndev); struct netvsc_device *nvdev = net_device_to_netvsc_device(dev->ndev);
struct netvsc_device *nvdev = net_device_ctx->nvdev;
request = get_rndis_request(dev, RNDIS_MSG_INIT, request = get_rndis_request(dev, RNDIS_MSG_INIT,
RNDIS_MESSAGE_SIZE(struct rndis_initialize_request)); RNDIS_MESSAGE_SIZE(struct rndis_initialize_request));
...@@ -977,8 +974,7 @@ static void netvsc_sc_open(struct vmbus_channel *new_sc) ...@@ -977,8 +974,7 @@ static void netvsc_sc_open(struct vmbus_channel *new_sc)
{ {
struct net_device *ndev = struct net_device *ndev =
hv_get_drvdata(new_sc->primary_channel->device_obj); hv_get_drvdata(new_sc->primary_channel->device_obj);
struct net_device_context *net_device_ctx = netdev_priv(ndev); struct netvsc_device *nvscdev = net_device_to_netvsc_device(ndev);
struct netvsc_device *nvscdev = net_device_ctx->nvdev;
u16 chn_index = new_sc->offermsg.offer.sub_channel_index; u16 chn_index = new_sc->offermsg.offer.sub_channel_index;
int ret; int ret;
unsigned long flags; unsigned long flags;
...@@ -1196,9 +1192,7 @@ int rndis_filter_device_add(struct hv_device *dev, ...@@ -1196,9 +1192,7 @@ int rndis_filter_device_add(struct hv_device *dev,
void rndis_filter_device_remove(struct hv_device *dev) void rndis_filter_device_remove(struct hv_device *dev)
{ {
struct net_device *ndev = hv_get_drvdata(dev); struct netvsc_device *net_dev = hv_device_to_netvsc_device(dev);
struct net_device_context *net_device_ctx = netdev_priv(ndev);
struct netvsc_device *net_dev = net_device_ctx->nvdev;
struct rndis_device *rndis_dev = net_dev->extension; struct rndis_device *rndis_dev = net_dev->extension;
unsigned long t; unsigned long t;
...@@ -1224,9 +1218,7 @@ void rndis_filter_device_remove(struct hv_device *dev) ...@@ -1224,9 +1218,7 @@ void rndis_filter_device_remove(struct hv_device *dev)
int rndis_filter_open(struct hv_device *dev) int rndis_filter_open(struct hv_device *dev)
{ {
struct net_device *ndev = hv_get_drvdata(dev); struct netvsc_device *net_device = hv_device_to_netvsc_device(dev);
struct net_device_context *net_device_ctx = netdev_priv(ndev);
struct netvsc_device *net_device = net_device_ctx->nvdev;
if (!net_device) if (!net_device)
return -EINVAL; return -EINVAL;
...@@ -1239,9 +1231,7 @@ int rndis_filter_open(struct hv_device *dev) ...@@ -1239,9 +1231,7 @@ int rndis_filter_open(struct hv_device *dev)
int rndis_filter_close(struct hv_device *dev) int rndis_filter_close(struct hv_device *dev)
{ {
struct net_device *ndev = hv_get_drvdata(dev); struct netvsc_device *nvdev = hv_device_to_netvsc_device(dev);
struct net_device_context *net_device_ctx = netdev_priv(ndev);
struct netvsc_device *nvdev = net_device_ctx->nvdev;
if (!nvdev) if (!nvdev)
return -EINVAL; return -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment