Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

hv_netvsc: move subchannel existence check to netvsc_select_queue()

parent c0eb4540
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -1272,19 +1272,4 @@ struct rndis_message {
#define TRANSPORT_INFO_IPV6_TCP ((INFO_IPV6 << 16) | INFO_TCP)
#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 */
+2 −3
Original line number Diff line number Diff line
@@ -749,8 +749,8 @@ static inline int netvsc_send_pkt(
	struct netvsc_device *net_device)
{
	struct nvsp_message nvmsg;
	struct vmbus_channel *out_channel = get_channel(packet, net_device);
	u16 q_idx = packet->q_idx;
	struct vmbus_channel *out_channel = net_device->chn_table[q_idx];
	struct net_device *ndev = net_device->ndev;
	u64 req_id;
	int ret;
@@ -859,8 +859,7 @@ int netvsc_send(struct hv_device *device,
	if (!net_device)
		return -ENODEV;

	out_channel = get_channel(packet, net_device);
	q_idx = packet->q_idx;
	out_channel = net_device->chn_table[q_idx];

	packet->send_buf_index = NETVSC_INVALID_INDEX;
	packet->cp_partial = false;
+3 −0
Original line number Diff line number Diff line
@@ -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);
	}

	if (!nvsc_dev->chn_table[q_idx])
		q_idx = 0;

	return q_idx;
}