diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-06 20:30:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-06 20:30:59 -0500 |
commit | 205c911da322908abe127b96d2ef2a4a2aa5109a (patch) | |
tree | 43f6878c6a255965a4061d05da68dbc1df9e0ca4 /net | |
parent | c7276fde27bca89798f33c0be9543dc108468788 (diff) | |
parent | f3be97427172856d6865ddfedea84fa3a9f33227 (diff) |
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
sis900 warning fixes
mv643xx_eth: Place explicit port number in mv643xx_eth_platform_data
pcnet32: Fix PCnet32 performance bug on non-coherent architecutres
__devinit & __devexit cleanups for de2104x driver
3c59x: Handle pci_enable_device() failure while resuming
dmfe: Fix link detection
dmfe: fix two bugs
dmfe: trivial/spelling fixes
revert "drivers/net/tulip/dmfe: support basic carrier detection"
ucc_geth: returns NETDEV_TX_BUSY when BD ring is full
ucc_geth: Fix BD processing
natsemi: netpoll fixes
bonding: Improve IGMP join processing
bonding: only receive ARPs for us
bonding: fix double dev_add_pack
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/igmp.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index 063721302ebf..1c6a084b5fb7 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c | |||
@@ -1251,6 +1251,28 @@ out: | |||
1251 | } | 1251 | } |
1252 | 1252 | ||
1253 | /* | 1253 | /* |
1254 | * Resend IGMP JOIN report; used for bonding. | ||
1255 | */ | ||
1256 | void ip_mc_rejoin_group(struct ip_mc_list *im) | ||
1257 | { | ||
1258 | struct in_device *in_dev = im->interface; | ||
1259 | |||
1260 | #ifdef CONFIG_IP_MULTICAST | ||
1261 | if (im->multiaddr == IGMP_ALL_HOSTS) | ||
1262 | return; | ||
1263 | |||
1264 | if (IGMP_V1_SEEN(in_dev) || IGMP_V2_SEEN(in_dev)) { | ||
1265 | igmp_mod_timer(im, IGMP_Initial_Report_Delay); | ||
1266 | return; | ||
1267 | } | ||
1268 | /* else, v3 */ | ||
1269 | im->crcount = in_dev->mr_qrv ? in_dev->mr_qrv : | ||
1270 | IGMP_Unsolicited_Report_Count; | ||
1271 | igmp_ifc_event(in_dev); | ||
1272 | #endif | ||
1273 | } | ||
1274 | |||
1275 | /* | ||
1254 | * A socket has left a multicast group on device dev | 1276 | * A socket has left a multicast group on device dev |
1255 | */ | 1277 | */ |
1256 | 1278 | ||
@@ -2596,3 +2618,4 @@ int __init igmp_mc_proc_init(void) | |||
2596 | EXPORT_SYMBOL(ip_mc_dec_group); | 2618 | EXPORT_SYMBOL(ip_mc_dec_group); |
2597 | EXPORT_SYMBOL(ip_mc_inc_group); | 2619 | EXPORT_SYMBOL(ip_mc_inc_group); |
2598 | EXPORT_SYMBOL(ip_mc_join_group); | 2620 | EXPORT_SYMBOL(ip_mc_join_group); |
2621 | EXPORT_SYMBOL(ip_mc_rejoin_group); | ||