Commit 8b9fbe1a authored by Vitaly Kuznetsov's avatar Vitaly Kuznetsov Committed by David S. Miller

hv_netvsc: move subchannel existence check to netvsc_select_queue()

Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c0eb4540
...@@ -1272,19 +1272,4 @@ struct rndis_message { ...@@ -1272,19 +1272,4 @@ struct rndis_message {
#define TRANSPORT_INFO_IPV6_TCP ((INFO_IPV6 << 16) | INFO_TCP) #define TRANSPORT_INFO_IPV6_TCP ((INFO_IPV6 << 16) | INFO_TCP)
#define TRANSPORT_INFO_IPV6_UDP ((INFO_IPV6 << 16) | INFO_UDP) #define TRANSPORT_INFO_IPV6_UDP ((INFO_IPV6 << 16) | INFO_UDP)
static inline struct vmbus_channel *get_channel(struct hv_netvsc_packet *packet,
struct netvsc_device *net_device)
{
struct vmbus_channel *out_channel;
out_channel = net_device->chn_table[packet->q_idx];
if (!out_channel) {
out_channel = net_device->dev->channel;
packet->q_idx = 0;
}
return out_channel;
}
#endif /* _HYPERV_NET_H */ #endif /* _HYPERV_NET_H */
...@@ -749,8 +749,8 @@ static inline int netvsc_send_pkt( ...@@ -749,8 +749,8 @@ static inline int netvsc_send_pkt(
struct netvsc_device *net_device) struct netvsc_device *net_device)
{ {
struct nvsp_message nvmsg; struct nvsp_message nvmsg;
struct vmbus_channel *out_channel = get_channel(packet, net_device);
u16 q_idx = packet->q_idx; u16 q_idx = packet->q_idx;
struct vmbus_channel *out_channel = net_device->chn_table[q_idx];
struct net_device *ndev = net_device->ndev; struct net_device *ndev = net_device->ndev;
u64 req_id; u64 req_id;
int ret; int ret;
...@@ -859,8 +859,7 @@ int netvsc_send(struct hv_device *device, ...@@ -859,8 +859,7 @@ int netvsc_send(struct hv_device *device,
if (!net_device) if (!net_device)
return -ENODEV; return -ENODEV;
out_channel = get_channel(packet, net_device); out_channel = net_device->chn_table[q_idx];
q_idx = packet->q_idx;
packet->send_buf_index = NETVSC_INVALID_INDEX; packet->send_buf_index = NETVSC_INVALID_INDEX;
packet->cp_partial = false; packet->cp_partial = false;
......
...@@ -273,6 +273,9 @@ static u16 netvsc_select_queue(struct net_device *ndev, struct sk_buff *skb, ...@@ -273,6 +273,9 @@ static u16 netvsc_select_queue(struct net_device *ndev, struct sk_buff *skb,
skb_set_hash(skb, hash, PKT_HASH_TYPE_L3); skb_set_hash(skb, hash, PKT_HASH_TYPE_L3);
} }
if (!nvsc_dev->chn_table[q_idx])
q_idx = 0;
return q_idx; return q_idx;
} }
......
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