kernel-aes67/include/linux
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
..
byteorder [PATCH] swabb.h warning fixes 2005-06-28 21:20:31 -07:00
dvb
hdlc
isdn
lockd [PATCH] NLM: fix a client-side race on blocking locks. 2005-06-22 16:07:42 -04:00
mmc
mtd
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd [PATCH] nfsd4: check lock type against openmode. 2005-07-07 18:24:11 -07:00
raid
sunrpc
tc_act
tc_ematch [NET]: Remove unused security member in sk_buff 2005-07-05 14:12:44 -07:00
8250_pci.h
a.out.h [PATCH] Use ALIGN to remove duplicate code 2005-06-25 16:25:02 -07:00
ac97_codec.h
acct.h
acpi.h [PATCH] PCI: add proper MCFG table parsing to ACPI core. 2005-06-27 21:52:47 -07:00
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
affs_fs.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio_abi.h
aio.h
amifd.h
amifdreg.h
amigaffs.h
apm_bios.h
arcdevice.h
arcfb.h
ata.h
atalk.h [ATALK]: Include asm/byteorder.h in linux/atalk.h 2005-06-26 15:28:10 -07:00
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h
auto_fs4.h
auto_fs.h
awe_voice.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
bio.h [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
bitmap.h
bitops.h
blkdev.h [PATCH] blk: light iocontext ops 2005-06-28 21:20:35 -07:00
blkpg.h
blockgroup_lock.h
bootmem.h [PATCH] kdump: Retrieve saved max pfn 2005-06-25 16:24:52 -07:00
bpqether.h
buffer_head.h [PATCH] page_uptodate locking scalability 2005-07-07 18:23:45 -07:00
cache.h [PATCH] mostly_read data section 2005-07-07 18:23:46 -07:00
capability.h
capi.h
cciss_ioctl.h [PATCH] cciss: pci domain info pass 2 2005-06-27 15:11:48 -07:00
cd1400.h
cdev.h
cdk.h
cdrom.h
chio.h
circ_buf.h
cobalt-nvram.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_proc.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat_ioctl.h [SPARC64/COMPAT]: Add some compat ioctl for ppdev 2005-07-04 13:23:45 -07:00
compat.h
compiler-gcc2.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
config.h
console_struct.h
console.h
consolemap.h
cpu.h [PATCH] make smp_prepare_cpu to a weak function 2005-06-25 16:24:30 -07:00
cpufreq.h [PATCH] pm: fix u32 vs. pm_message_t confusion in cpufreq 2005-07-07 18:23:43 -07:00
cpumask.h
cpuset.h
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h [PATCH] kdump: Access dump file in elf format (/proc/vmcore) 2005-06-25 16:24:53 -07:00
crc32.h
crc32c.h
crc-ccitt.h
crypto.h [CRYPTO] Ensure cit_iv is aligned correctly 2005-07-06 13:53:29 -07:00
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dcookies.h
debugfs.h
delay.h
devfs_fs_kernel.h
devfs_fs.h
device-mapper.h
device.h [PATCH] driver core: change bus_rescan_devices to return void 2005-06-29 22:48:04 -07:00
devpts_fs.h
dio.h
dirent.h
divert.h
dm9000.h
dm-ioctl.h
dma-mapping.h
dmapool.h
dmi.h [PATCH] I8K: use standard DMI interface 2005-06-25 16:24:24 -07:00
dn.h
dnotify.h
dqblk_v1.h [PATCH] quota: improve credits estimates 2005-06-24 00:05:19 -07:00
dqblk_v2.h [PATCH] quota: improve credits estimates 2005-06-24 00:05:19 -07:00
dqblk_xfs.h
ds1286.h
dtlk.h
edd.h
eeprom.h
efi.h
efs_dir.h
efs_fs_i.h
efs_fs_sb.h
efs_fs.h
efs_vh.h
eisa.h
elevator.h [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
elf-fdpic.h
elf.h
elfcore.h
err.h
errno.h
errqueue.h
etherdevice.h [NET]: Add missing include to linux/netdevice.h 2005-06-28 15:58:50 -07:00
ethtool.h
eventpoll.h
ext2_fs_sb.h
ext2_fs.h [PATCH] xip: ext2: execute in place 2005-06-24 00:06:41 -07:00
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h [PATCH] quota: ext3: Improve quota credit estimates 2005-06-24 00:05:20 -07:00
ext3_jbd.h [PATCH] quota: ext3: Improve quota credit estimates 2005-06-24 00:05:20 -07:00
fadvise.h
fb.h
fcdevice.h
fcntl.h [PATCH] Don't force O_LARGEFILE for 32 bit processes on ia64 2005-06-23 09:45:28 -07:00
fd1772.h
fd.h
fddidevice.h
fdreg.h
file.h
filter.h
firmware.h
flat.h
font.h
fs_struct.h
fs.h [PATCH] export generic_drop_inode() to modules 2005-07-07 18:23:35 -07:00
fsl_devices.h
ftape-header-segment.h
ftape-vendors.h
ftape.h
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_serial.h
genhd.h [PATCH] add check to /proc/devices read routines 2005-06-23 09:45:19 -07:00
gfp.h [PATCH] propagate __nocast annotations 2005-07-07 18:23:46 -07:00
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hiddev.h
highmem.h [PATCH] kdump: Routines for copying dump pages 2005-06-25 16:24:53 -07:00
highuid.h
hippidevice.h
hpet.h
hpfs_fs.h
hugetlb.h
hwmon-sysfs.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-ite.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-algo-sibyte.h
i2c-dev.h [PATCH] headers: include linux/compiler.h for __user 2005-06-28 21:20:32 -07:00
i2c-id.h
i2c-sensor.h
i2c-vid.h
i2c.h
i2o-dev.h [PATCH] I2O: second code cleanup of sparse warnings and unneeded syncronization 2005-06-24 00:05:29 -07:00
i2o.h [PATCH] I2O: Lindent run and replacement of printk through osm printing functions 2005-06-24 00:05:29 -07:00
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h [PATCH] NUMA aware block device control structure allocation 2005-06-23 09:45:09 -07:00
idr.h
if_arcnet.h
if_arp.h
if_bonding.h bonding: xor/802.3ad improved slave hash 2005-06-26 17:54:11 -04:00
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_ltalk.h
if_packet.h
if_plip.h
if_ppp.h
if_pppox.h
if_shaper.h [SHAPER]: Switch to spinlocks. 2005-07-05 15:03:46 -07:00
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_wanpipe_common.h
if_wanpipe.h
if.h
igmp.h [IPV4]: multicast API "join" issues 2005-07-08 17:38:07 -07:00
in6.h [IPV6]: remove more unused IPV6_AUTHHDR things. 2005-06-28 15:46:24 -07:00
in_route.h
in.h
inet.h
inetdevice.h
init_task.h [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
init.h [PATCH] x86_64: Change init sections for CPU hotplug support 2005-06-25 16:24:30 -07:00
initrd.h
input.h Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input.git manually 2005-06-27 14:47:31 -07:00
interrupt.h
ioc4.h
ioctl32.h
ioctl.h
ioport.h
ioprio.h [PATCH] move ioprio syscalls into syscalls.h 2005-07-07 18:23:37 -07:00
ip6_tunnel.h
ip_mp_alg.h
ip.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h [PATCH] ipmi: add power cycle capability 2005-06-24 00:05:23 -07:00
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irda.h
irq_cpustat.h
irq.h [PATCH] irqpoll 2005-06-28 21:20:35 -07:00
isapnp.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ite_gpio.h
ixjuser.h
jbd.h
jffs2_fs_i.h
jffs2_fs_sb.h
jffs2.h
jffs.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kd.h
kdev_t.h
kernel_stat.h
kernel.h [PATCH] sched: voluntary kernel preemption 2005-06-25 16:24:45 -07:00
kernelcapi.h
kexec.h [PATCH] kexec code cleanup 2005-06-25 16:24:55 -07:00
key-ui.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
key.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
keyboard.h
keyctl.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
kfifo.h
klist.h
kmalloc_sizes.h
kmod.h [PATCH] Keys: Pass session keyring to call_usermodehelper() 2005-06-24 00:05:18 -07:00
kobj_map.h
kobject_uevent.h
kobject.h
kprobes.h [PATCH] kprobes: fix namespace problem and sparc64 build 2005-07-05 19:19:00 -07:00
kref.h
kthread.h
lapb.h
lcd.h
libata.h
libps2.h
limits.h
linkage.h
linux_logo.h
list.h [PATCH] RCU: clean up a few remaining synchronize_kernel() calls 2005-06-25 16:24:38 -07:00
llc.h
loop.h [PATCH] optimise loop driver a bit 2005-06-23 09:45:18 -07:00
lp.h
major.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mempolicy.h
mempool.h [PATCH] NUMA aware block device control structure allocation 2005-06-23 09:45:09 -07:00
meye.h
mii.h
minix_fs.h
miscdevice.h
mm_inline.h
mm.h [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
mman.h
mmtimer.h
mmzone.h [PATCH] sparsemem hotplug base 2005-06-23 09:45:05 -07:00
mod_devicetable.h [PATCH] openfirmware: generate device table for userspace 2005-07-06 12:55:20 -07:00
module.h [PATCH] modules: add version and srcversion to sysfs 2005-06-24 00:06:40 -07:00
moduleloader.h
moduleparam.h
mount.h [PATCH] namespace: rename _mntput to mntput_no_expire 2005-07-07 18:23:52 -07:00
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
mtio.h
mv643xx.h
n_r3964.h
namei.h
namespace.h [PATCH] namespace.c: fix race in mark_mounts_for_expiry() 2005-07-07 18:23:51 -07:00
nbd.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
net.h
netdevice.h [NET]: Eliminate netif_rx massive packet drops. 2005-06-23 20:12:48 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_logging.h
netfilter.h
netlink.h [NETLINK]: Clear padding in netlink messages 2005-06-28 12:54:43 -07:00
netpoll.h [NETPOLL]: allow multiple netpoll_clients to register against one interface 2005-06-22 22:05:59 -07:00
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h [PATCH] nfsd4: fix fh_expire_type 2005-06-24 00:06:28 -07:00
nfs_fs_i.h [PATCH] NFSv4: Clean up nfs4 lock state accounting 2005-06-22 16:07:42 -04:00
nfs_fs_sb.h [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
nfs_fs.h [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00
nfs_idmap.h
nfs_mount.h [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
nfs_page.h [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00
nfs_xdr.h [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
nfs.h
nfsacl.h
nfsd_idmap.h [PATCH] knfsd: nfsd4: idmap initialization 2005-06-24 00:06:32 -07:00
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nubus.h
numa.h [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
nvram.h [PATCH] drivers/char/nvram.c: possible cleanups 2005-06-25 16:25:03 -07:00
openprom_fs.h
oprofile.h
page-flags.h
pagemap.h
pagevec.h
param.h
parport_pc.h
parport.h
parser.h
patchkey.h
pci_ids.h [PATCH] amd74xx: support MCP55 device IDs 2005-07-03 17:37:18 +02:00
pci-acpi.h
pci.h [PATCH] PCI: clean up dynamic pci id logic 2005-07-01 13:35:50 -07:00
pcieport_if.h
percpu_counter.h
percpu.h
personality.h
pfkeyv2.h
pg.h
phonedev.h
pid.h
pipe_fs_i.h
pkt_cls.h [NETLINK]: Missing padding fields in dumped structures 2005-06-28 12:56:45 -07:00
pkt_sched.h [NETLINK]: Missing padding fields in dumped structures 2005-06-28 12:56:45 -07:00
pktcdvd.h [PATCH] Improve CD/DVD packet driver write performance 2005-06-23 09:45:30 -07:00
platform.h
pm.h [PATCH] properly stop devices before poweroff 2005-06-25 16:24:33 -07:00
pmu.h [PATCH] ppc32: Remove CONFIG_PMAC_PBOOK 2005-06-27 15:11:43 -07:00
pnp.h
pnpbios.h
poll.h
posix_acl_xattr.h [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
posix_acl.h
posix_types.h
posix-timers.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h [PATCH] kdump: Access dump file in elf format (/proc/vmcore) 2005-06-25 16:24:53 -07:00
profile.h
ps2esdi.h
ptrace.h
qic117.h
qnx4_fs.h [PATCH] fs/qnx4/*: fix sparse warnings 2005-06-24 14:14:24 -07:00
qnxtypes.h [PATCH] fs/qnx4/*: fix sparse warnings 2005-06-24 14:14:24 -07:00
quota.h [PATCH] quota: improve credits estimates 2005-06-24 00:05:19 -07:00
quotaio_v1.h
quotaio_v2.h
quotaops.h [PATCH] quota: consolidate code surrounding vfs_quota_on_mount 2005-06-23 09:45:20 -07:00
radeonfb.h
radix-tree.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
reboot_fixups.h
reboot.h [PATCH] kdump: Use real pt_regs from exception 2005-06-25 16:24:54 -07:00
reiserfs_acl.h [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
reiserfs_fs_i.h
reiserfs_fs_sb.h [PATCH] quota: reiserfs: improve quota credit estimates 2005-06-24 00:05:20 -07:00
reiserfs_fs.h [PATCH] quota: reiserfs: improve quota credit estimates 2005-06-24 00:05:20 -07:00
reiserfs_xattr.h
resource.h
rmap.h [PATCH] xip: fs/mm: execute in place 2005-06-24 00:06:41 -07:00
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc.h
rtnetlink.h [NETLINK]: Missing padding fields in dumped structures 2005-06-28 12:56:45 -07:00
rwsem-spinlock.h
rwsem.h
sc26198.h
scatterlist.h
scc.h
sched.h [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
sctp.h
scx200_gpio.h
scx200.h
sdla_asy.h
sdla_chdlc.h
sdla_fr.h
sdla_ppp.h
sdla_x25.h
sdla.h
sdladrv.h
sdlapci.h
sdlasfm.h
seccomp.h [PATCH] seccomp: tsc disable 2005-06-27 15:11:44 -07:00
securebits.h
security.h
selection.h
selinux_netlink.h
sem.h
seq_file.h
seqlock.h
serial167.h
serial_8250.h [PATCH] Serial: Split 8250 port table 2005-06-27 11:12:54 +01:00
serial_core.h
serial_reg.h
serial.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h
skbuff.h [NET]: Fix sparse warnings 2005-07-08 14:57:47 -07:00
slab.h [PATCH] propagate __nocast annotations 2005-07-07 18:23:46 -07:00
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h
smbno.h
smp_lock.h
smp.h
snmp.h
socket.h
sockios.h
som.h
sonet.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
stallion.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h [PATCH] propagate __nocast annotations 2005-07-07 18:23:46 -07:00
stringify.h
superhyway.h
suspend.h [PATCH] suspend/resume SMP support 2005-06-25 16:24:32 -07:00
swap.h [PATCH] print order information when OOM killing 2005-07-07 18:23:35 -07:00
swapops.h
synclink.h
sys.h
syscalls.h [PATCH] move ioprio syscalls into syscalls.h 2005-07-07 18:23:37 -07:00
sysctl.h [SCTP] Make init & delayed sack timeouts configurable by user. 2005-06-28 13:24:23 -07:00
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
tcp_diag.h [TCP]: Report congestion control algorithm in tcp_diag. 2005-06-23 12:21:28 -07:00
tcp.h [TCP]: Move to new TSO segmenting scheme. 2005-07-05 15:24:38 -07:00
telephony.h
termios.h
textsearch_fsm.h [LIB]: Naive finite state machine based textsearch 2005-06-23 20:59:16 -07:00
textsearch.h [LIB]: Textsearch infrastructure. 2005-06-23 20:49:30 -07:00
thread_info.h
threads.h
ticable.h
time.h
timer.h [PATCH] timers: introduce try_to_del_timer_sync() 2005-06-23 09:45:16 -07:00
times.h
timex.h
tiocl.h
topology.h [PATCH] sched: sched tuning 2005-06-25 16:24:42 -07:00
toshiba.h
transport_class.h
trdevice.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h [PATCH] Introduce tty_unregister_ldisc() 2005-06-23 09:45:35 -07:00
types.h
udf_fs_i.h
udf_fs_sb.h
udf_fs.h
udp.h
ufs_fs_i.h
ufs_fs_sb.h
ufs_fs.h
uinput.h
uio.h
ultrasound.h
umem.h
un.h
unistd.h
usb_cdc.h
usb_ch9.h [PATCH] headers: include linux/types.h for usb_ch9.h 2005-06-28 21:20:32 -07:00
usb_gadget.h [PATCH] USB: gadget driver updates (SETUP api change) 2005-06-27 14:43:53 -07:00
usb_gadgetfs.h
usb_isp116x.h [PATCH] USB: Add isp116x-hcd USB host controller driver 2005-06-27 14:43:42 -07:00
usb_otg.h
usb_sl811.h
usb.h [PATCH] better USB_MON dependencies 2005-06-23 10:04:15 -07:00
usbdevice_fs.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
videodev2.h [PATCH] V4L: API new webcam formats included 2005-06-28 21:20:36 -07:00
videodev.h
videotext.h
vmalloc.h
vt_buffer.h
vt_kern.h
vt.h
wait.h [PATCH] aio: make wait_queue ->task ->private 2005-06-23 09:45:34 -07:00
wanpipe.h
wanrouter.h
watchdog.h
wavefront.h
wireless.h
workqueue.h
writeback.h [PATCH] rename wakeup_bdflush to wakeup_pdflush 2005-06-28 21:20:31 -07:00
x25.h [X25]: Fast select with no restriction on response 2005-06-22 22:16:17 -07:00
xattr.h
xfrm.h
yam.h
zconf.h
zftape.h
zlib.h
zorro_ids.h
zorro.h
zutil.h