+ loop_count = &get_cpu_var(vport_loop_counter).count[!!in_interrupt()];
+ (*loop_count)++;
+
+ if (unlikely(*loop_count > VPORT_MAX_LOOPS)) {
+ if (net_ratelimit())
+ printk(KERN_WARNING "%s: dropping packet that has looped more than %d times\n",
+ dp_name(vport_get_dp_port(vport)->dp), VPORT_MAX_LOOPS);
+ goto error;
+ }
+
+ mtu = vport_get_mtu(vport);
+ if (unlikely(packet_length(skb) > mtu && !skb_is_gso(skb))) {
+ if (net_ratelimit())
+ printk(KERN_WARNING "%s: dropped over-mtu packet: %d > %d\n",
+ dp_name(vport_get_dp_port(vport)->dp), packet_length(skb), mtu);
+ goto error;
+ }
+