android_kernel_xiaomi_sm8350/include
David L Stevens ca9b907d14 [IPV4]: multicast API "join" issues
This patch corrects a few problems with the IP_ADD_MEMBERSHIP
socket option:

1) The existing code makes an attempt at reference counting joins when
   using the ip_mreqn/imr_ifindex interface. Joining the same group
   on the same socket is an error, whatever the API. This leads to
   unexpected results when mixing ip_mreqn by index with ip_mreqn by
   address, ip_mreq, or other API's. For example, ip_mreq followed by
   ip_mreqn of the same group will "work" while the same two reversed
   will not.
           Fixed to always return EADDRINUSE on a duplicate join and
   removed the (now unused) reference count in ip_mc_socklist.

2) The group-search list in ip_mc_join_group() is comparing a full 
   ip_mreqn structure and all of it must match for it to find the
   group. This doesn't correctly match a group that was joined with
   ip_mreq or ip_mreqn with an address (with or without an index). It
   also doesn't match groups that are joined by different addresses on
   the same interface. All of these are the same multicast group,
   which is identified by group address and interface index.
           Fixed the check to correctly match groups so we don't get
   duplicate group entries on the ip_mc_socklist.

3) The old code allocates a multicast address before searching for
   duplicates requiring it to free in various error cases. This
   patch moves the allocate until after the search and
   igmp_max_memberships check, so never a need to allocate, then free
   an entry.

Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-07-08 17:38:07 -07:00
..
acpi [PATCH] acpi bridge hotadd: Export the interface to get PCI id for an ACPI handle 2005-06-27 21:52:42 -07:00
asm-alpha [PATCH] alpha(): pgprot_noncached 2005-07-07 18:23:47 -07:00
asm-arm [PATCH] ARM: 2792/1: IXP4xx iomap API implementation 2005-07-06 23:06:05 +01:00
asm-arm26 [PATCH] Serial: Split 8250 port table (part 2) 2005-06-29 18:45:19 +01:00
asm-cris
asm-frv [PATCH] PCI: fix up errors after dma bursting patch and CONFIG_PCI=n 2005-06-27 21:52:46 -07:00
asm-generic [PATCH] kexec: vmlinux: fix physical addresses 2005-06-25 16:24:47 -07:00
asm-h8300
asm-i386 [PATCH] Fix up non-NUMA breakage in mmzone.h 2005-07-07 18:23:42 -07:00
asm-ia64 [IA64] fix generic/up builds 2005-07-06 18:18:10 -07:00
asm-m32r [PATCH] m32r: framebuffer device support 2005-07-07 18:24:11 -07:00
asm-m68k [PATCH] Serial: Split 8250 port table (part 2) 2005-06-29 18:45:19 +01:00
asm-m68knommu
asm-mips [PATCH] Serial: Split 8250 port table (part 2) 2005-06-29 18:45:19 +01:00
asm-parisc [PATCH] Serial: Split 8250 port table (part 2) 2005-06-29 18:45:19 +01:00
asm-ppc [PATCH] ppc64: remove duplicate syscall reservation 2005-07-07 18:23:37 -07:00
asm-ppc64 [PATCH] ppc64: Make idle_loop a ppc_md function 2005-07-07 18:23:40 -07:00
asm-s390 [PATCH] s390: fix finish_arch_switch 2005-06-30 08:45:08 -07:00
asm-sh [PATCH] Serial: Split 8250 port table (part 2) 2005-06-29 18:45:19 +01:00
asm-sh64 [PATCH] Serial: Split 8250 port table (part 2) 2005-06-29 18:45:19 +01:00
asm-sparc [PATCH] PCI: fix up errors after dma bursting patch and CONFIG_PCI=n 2005-06-27 21:52:46 -07:00
asm-sparc64 [SPARC64]: Fix enable_dma() in asm-sparc64/parport.h 2005-07-06 15:41:54 -07:00
asm-um [PATCH] uml: skas0 - separate kernel address space on stock hosts 2005-07-07 18:23:44 -07:00
asm-v850 [PATCH] PCI: fix up errors after dma bursting patch and CONFIG_PCI=n 2005-06-27 21:52:46 -07:00
asm-x86_64 [PATCH] MTRR suspend/resume cleanup 2005-07-07 18:23:42 -07:00
asm-xtensa [PATCH] xtensa: remove old syscalls 2005-07-07 18:23:44 -07:00
linux [IPV4]: multicast API "join" issues 2005-07-08 17:38:07 -07:00
math-emu
media [PATCH] v4l: tuner improvements 2005-06-28 21:20:36 -07:00
mtd
net [NET]: Fix sparse warnings 2005-07-08 14:57:47 -07:00
pcmcia [PATCH] pcmcia: remove client services version 2005-07-07 18:24:06 -07:00
rxrpc
scsi
sound
video