diff options
Diffstat (limited to 'net/tipc/bcast.c')
-rw-r--r-- | net/tipc/bcast.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c index 74ee09ac430d..d8c399d31288 100644 --- a/net/tipc/bcast.c +++ b/net/tipc/bcast.c | |||
@@ -148,9 +148,9 @@ void tipc_bclink_input(struct net *net) | |||
148 | tipc_sk_mcast_rcv(net, &tn->bcbase->arrvq, &tn->bcbase->inputq); | 148 | tipc_sk_mcast_rcv(net, &tn->bcbase->arrvq, &tn->bcbase->inputq); |
149 | } | 149 | } |
150 | 150 | ||
151 | uint tipc_bcast_get_mtu(void) | 151 | int tipc_bcast_get_mtu(struct net *net) |
152 | { | 152 | { |
153 | return MAX_PKT_DEFAULT_MCAST; | 153 | return tipc_link_mtu(tipc_bc_sndlink(net)); |
154 | } | 154 | } |
155 | 155 | ||
156 | static u16 bcbuf_acks(struct sk_buff *skb) | 156 | static u16 bcbuf_acks(struct sk_buff *skb) |
@@ -175,7 +175,7 @@ static void tipc_bcbase_select_primary(struct net *net) | |||
175 | { | 175 | { |
176 | struct tipc_bc_base *bb = tipc_bc_base(net); | 176 | struct tipc_bc_base *bb = tipc_bc_base(net); |
177 | int all_dests = tipc_link_bc_peers(bb->link); | 177 | int all_dests = tipc_link_bc_peers(bb->link); |
178 | int i; | 178 | int i, mtu; |
179 | 179 | ||
180 | bb->primary_bearer = INVALID_BEARER_ID; | 180 | bb->primary_bearer = INVALID_BEARER_ID; |
181 | 181 | ||
@@ -183,6 +183,13 @@ static void tipc_bcbase_select_primary(struct net *net) | |||
183 | return; | 183 | return; |
184 | 184 | ||
185 | for (i = 0; i < MAX_BEARERS; i++) { | 185 | for (i = 0; i < MAX_BEARERS; i++) { |
186 | if (!bb->dests[i]) | ||
187 | continue; | ||
188 | |||
189 | mtu = tipc_bearer_mtu(net, i); | ||
190 | if (mtu < tipc_link_mtu(bb->link)) | ||
191 | tipc_link_set_mtu(bb->link, mtu); | ||
192 | |||
186 | if (bb->dests[i] < all_dests) | 193 | if (bb->dests[i] < all_dests) |
187 | continue; | 194 | continue; |
188 | 195 | ||
@@ -1220,7 +1227,7 @@ int tipc_bcast_init(struct net *net) | |||
1220 | bb->node.net = net; | 1227 | bb->node.net = net; |
1221 | 1228 | ||
1222 | if (!tipc_link_bc_create(&bb->node, 0, 0, | 1229 | if (!tipc_link_bc_create(&bb->node, 0, 0, |
1223 | MAX_PKT_DEFAULT_MCAST, | 1230 | U16_MAX, |
1224 | BCLINK_WIN_DEFAULT, | 1231 | BCLINK_WIN_DEFAULT, |
1225 | 0, | 1232 | 0, |
1226 | &bb->inputq, | 1233 | &bb->inputq, |