diff options
Diffstat (limited to 'net/openvswitch/datapath.c')
| -rw-r--r-- | net/openvswitch/datapath.c | 35 | 
1 files changed, 11 insertions, 24 deletions
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index 4d67ea856067..2d4c4d3911c0 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c @@ -58,8 +58,7 @@  #include "vport-internal_dev.h"  #include "vport-netdev.h" -int ovs_net_id __read_mostly; -EXPORT_SYMBOL_GPL(ovs_net_id); +unsigned int ovs_net_id __read_mostly;  static struct genl_family dp_packet_genl_family;  static struct genl_family dp_flow_genl_family; @@ -131,7 +130,6 @@ int lockdep_ovsl_is_held(void)  	else  		return 1;  } -EXPORT_SYMBOL_GPL(lockdep_ovsl_is_held);  #endif  static struct vport *new_vport(const struct vport_parms *); @@ -562,7 +560,6 @@ static int ovs_packet_cmd_execute(struct sk_buff *skb, struct genl_info *info)  	struct sw_flow *flow;  	struct sw_flow_actions *sf_acts;  	struct datapath *dp; -	struct ethhdr *eth;  	struct vport *input_vport;  	u16 mru = 0;  	int len; @@ -583,17 +580,6 @@ static int ovs_packet_cmd_execute(struct sk_buff *skb, struct genl_info *info)  	nla_memcpy(__skb_put(packet, len), a[OVS_PACKET_ATTR_PACKET], len); -	skb_reset_mac_header(packet); -	eth = eth_hdr(packet); - -	/* Normally, setting the skb 'protocol' field would be handled by a -	 * call to eth_type_trans(), but it assumes there's a sending -	 * device, which we may not have. */ -	if (eth_proto_is_802_3(eth->h_proto)) -		packet->protocol = eth->h_proto; -	else -		packet->protocol = htons(ETH_P_802_2); -  	/* Set packet's mru */  	if (a[OVS_PACKET_ATTR_MRU]) {  		mru = nla_get_u16(a[OVS_PACKET_ATTR_MRU]); @@ -620,6 +606,7 @@ static int ovs_packet_cmd_execute(struct sk_buff *skb, struct genl_info *info)  	rcu_assign_pointer(flow->sf_acts, acts);  	packet->priority = flow->key.phy.priority;  	packet->mark = flow->key.phy.skb_mark; +	packet->protocol = flow->key.eth.type;  	rcu_read_lock();  	dp = get_dp_rcu(net, ovs_header->dp_ifindex); @@ -672,8 +659,7 @@ static const struct genl_ops dp_packet_genl_ops[] = {  	}  }; -static struct genl_family dp_packet_genl_family = { -	.id = GENL_ID_GENERATE, +static struct genl_family dp_packet_genl_family __ro_after_init = {  	.hdrsize = sizeof(struct ovs_header),  	.name = OVS_PACKET_FAMILY,  	.version = OVS_PACKET_VERSION, @@ -682,6 +668,7 @@ static struct genl_family dp_packet_genl_family = {  	.parallel_ops = true,  	.ops = dp_packet_genl_ops,  	.n_ops = ARRAY_SIZE(dp_packet_genl_ops), +	.module = THIS_MODULE,  };  static void get_dp_stats(const struct datapath *dp, struct ovs_dp_stats *stats, @@ -1437,8 +1424,7 @@ static const struct genl_ops dp_flow_genl_ops[] = {  	},  }; -static struct genl_family dp_flow_genl_family = { -	.id = GENL_ID_GENERATE, +static struct genl_family dp_flow_genl_family __ro_after_init = {  	.hdrsize = sizeof(struct ovs_header),  	.name = OVS_FLOW_FAMILY,  	.version = OVS_FLOW_VERSION, @@ -1449,6 +1435,7 @@ static struct genl_family dp_flow_genl_family = {  	.n_ops = ARRAY_SIZE(dp_flow_genl_ops),  	.mcgrps = &ovs_dp_flow_multicast_group,  	.n_mcgrps = 1, +	.module = THIS_MODULE,  };  static size_t ovs_dp_cmd_msg_size(void) @@ -1823,8 +1810,7 @@ static const struct genl_ops dp_datapath_genl_ops[] = {  	},  }; -static struct genl_family dp_datapath_genl_family = { -	.id = GENL_ID_GENERATE, +static struct genl_family dp_datapath_genl_family __ro_after_init = {  	.hdrsize = sizeof(struct ovs_header),  	.name = OVS_DATAPATH_FAMILY,  	.version = OVS_DATAPATH_VERSION, @@ -1835,6 +1821,7 @@ static struct genl_family dp_datapath_genl_family = {  	.n_ops = ARRAY_SIZE(dp_datapath_genl_ops),  	.mcgrps = &ovs_dp_datapath_multicast_group,  	.n_mcgrps = 1, +	.module = THIS_MODULE,  };  /* Called with ovs_mutex or RCU read lock. */ @@ -2245,8 +2232,7 @@ static const struct genl_ops dp_vport_genl_ops[] = {  	},  }; -struct genl_family dp_vport_genl_family = { -	.id = GENL_ID_GENERATE, +struct genl_family dp_vport_genl_family __ro_after_init = {  	.hdrsize = sizeof(struct ovs_header),  	.name = OVS_VPORT_FAMILY,  	.version = OVS_VPORT_VERSION, @@ -2257,6 +2243,7 @@ struct genl_family dp_vport_genl_family = {  	.n_ops = ARRAY_SIZE(dp_vport_genl_ops),  	.mcgrps = &ovs_dp_vport_multicast_group,  	.n_mcgrps = 1, +	.module = THIS_MODULE,  };  static struct genl_family * const dp_genl_families[] = { @@ -2274,7 +2261,7 @@ static void dp_unregister_genl(int n_families)  		genl_unregister_family(dp_genl_families[i]);  } -static int dp_register_genl(void) +static int __init dp_register_genl(void)  {  	int err;  	int i;  |