+ if (!br_port_group_equal(p, port, src))
continue;
- rcu_assign_pointer(*pp, p->next);
-@@ -1517,7 +1555,7 @@ br_multicast_leave_group(struct net_brid
+ if (p->flags & MDB_PG_FLAGS_PERMANENT)
+@@ -1520,7 +1558,7 @@ br_multicast_leave_group(struct net_brid
for (p = mlock_dereference(mp->ports, br);
p != NULL;
p = mlock_dereference(p->next, br)) {
continue;
if (!hlist_unhashed(&p->mglist) &&
-@@ -1568,7 +1606,8 @@ out:
+@@ -1571,7 +1609,8 @@ out:
static void br_ip4_multicast_leave_group(struct net_bridge *br,
struct net_bridge_port *port,
__be32 group,
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
-@@ -1583,14 +1622,15 @@ static void br_ip4_multicast_leave_group
+@@ -1586,14 +1625,15 @@ static void br_ip4_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
-@@ -1605,7 +1645,7 @@ static void br_ip6_multicast_leave_group
+@@ -1608,7 +1648,7 @@ static void br_ip6_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
}
#endif
-@@ -1648,6 +1688,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1651,6 +1691,7 @@ static int br_multicast_ipv4_rcv(struct
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
struct igmphdr *ih;
int err;
-@@ -1663,13 +1704,14 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1666,13 +1707,14 @@ static int br_multicast_ipv4_rcv(struct
}
ih = igmp_hdr(skb);
break;
case IGMPV3_HOST_MEMBERSHIP_REPORT:
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
-@@ -1678,7 +1720,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1681,7 +1723,7 @@ static int br_multicast_ipv4_rcv(struct
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
break;
case IGMP_HOST_LEAVE_MESSAGE:
break;
}
-@@ -1698,6 +1740,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1701,6 +1743,7 @@ static int br_multicast_ipv6_rcv(struct
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
struct mld_msg *mld;
int err;
-@@ -1717,8 +1760,10 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1720,8 +1763,10 @@ static int br_multicast_ipv6_rcv(struct
switch (mld->mld_type) {
case ICMPV6_MGM_REPORT:
break;
case ICMPV6_MLD2_REPORT:
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
-@@ -1727,7 +1772,8 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1730,7 +1775,8 @@ static int br_multicast_ipv6_rcv(struct
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
break;
case ICMPV6_MGM_REDUCTION:
if (nval != oval)
continue;
-@@ -2140,7 +2140,7 @@ static bool tcp_small_queue_check(struct
+@@ -2149,7 +2149,7 @@ static bool tcp_small_queue_check(struct
skb->prev == sk->sk_write_queue.next)
return false;
/* It is possible TX completion already happened
* before we set TSQ_THROTTLED, so we must
* test again the condition.
-@@ -2238,8 +2238,8 @@ static bool tcp_write_xmit(struct sock *
+@@ -2247,8 +2247,8 @@ static bool tcp_write_xmit(struct sock *
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
break;
if (tcp_small_queue_check(sk, skb, 0))
break;
-@@ -3550,8 +3550,6 @@ void __tcp_send_ack(struct sock *sk, u32
+@@ -3559,8 +3559,6 @@ void __tcp_send_ack(struct sock *sk, u32
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
* too much.
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784