linux/Documentation
David Howells 04c567d931 [PATCH] Keys: Fix race between two instantiators of a key
Add a revocation notification method to the key type and calls it whilst
the key's semaphore is still write-locked after setting the revocation
flag.

The patch then uses this to maintain a reference on the task_struct of the
process that calls request_key() for as long as the authorisation key
remains unrevoked.

This fixes a potential race between two processes both of which have
assumed the authority to instantiate a key (one may have forked the other
for example).  The problem is that there's no locking around the check for
revocation of the auth key and the use of the task_struct it points to, nor
does the auth key keep a reference on the task_struct.

Access to the "context" pointer in the auth key must thenceforth be done
with the auth key semaphore held.  The revocation method is called with the
target key semaphore held write-locked and the search of the context
process's keyrings is done with the auth key semaphore read-locked.

The check for the revocation state of the auth key just prior to searching
it is done after the auth key is read-locked for the search.  This ensures
that the auth key can't be revoked between the check and the search.

The revocation notification method is added so that the context task_struct
can be released as soon as instantiation happens rather than waiting for
the auth key to be destroyed, thus avoiding the unnecessary pinning of the
requesting process.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-22 15:05:56 -07:00
..
ABI [PATCH] Add kernel<->userspace ABI stability documentation 2006-06-21 12:40:47 -07:00
DocBook [PATCH] move ->eh_strategy_handler to the transport class 2006-04-10 14:15:47 -04:00
RCU [PATCH] for_each_possible_cpu: documentaion 2006-03-28 09:16:05 -08:00
aoe [PATCH] aoe [2/8]: support dynamic resizing of AoE devices 2006-03-23 22:01:55 -08:00
arm [ARM] 3407/1: lpd7x: documetation update 2006-06-18 16:16:51 +01:00
block [PATCH] Document online io scheduler switching 2006-04-20 13:04:36 +02:00
cdrom
connector [CONNECTOR]: Use netlink_has_listeners() to avoind unnecessary allocations. 2006-03-20 22:21:40 -08:00
cpu-freq [CPUFREQ] Update LART site URL 2006-04-03 07:25:54 -05:00
cris
crypto
device-mapper
driver-model [PATCH] Clean up Documentation/driver-model/overview.txt 2006-02-03 08:31:59 -08:00
drivers/edac [PATCH] EDAC: documentation spelling fixes 2006-03-26 08:57:08 -08:00
dvb V4L/DVB (3832): Get_dvb_firmware: download nxt2002 firmware from new driver location 2006-05-12 19:55:17 -03:00
early-userspace
fb [PATCH] Update cyblafb driver 2006-01-09 10:00:36 -08:00
filesystems [PATCH] inotify (5/5): update kernel documentation 2006-06-20 05:25:19 -04:00
firmware_class [PATCH] drivers/base/firmware_class.c: cleanups 2006-05-21 12:59:19 -07:00
fujitsu/frv Documentation: Make fujitsu/frv/kernel-ABI.txt 80 columns wide 2006-04-01 01:38:15 +02:00
hwmon [PATCH] w83781d: Don't reset the chip by default 2006-03-23 14:21:53 -08:00
i2c [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2o spelling: s/retreive/retrieve/ 2006-01-10 00:10:13 +01:00
i386
ia64
infiniband IPoIB: Mention RFC numbers in documentation 2006-06-17 20:37:32 -07:00
input Input: gamecon - add SNES mouse support 2006-04-02 00:10:05 -05:00
ioctl spelling: s/appropiate/appropriate/ 2006-01-15 02:00:17 +01:00
isdn [PATCH] i4l gigaset: move sysfs entry to tty class device 2006-06-21 12:40:47 -07:00
kbuild kbuild: fix garbled text in modules.txt 2006-04-04 15:28:21 +02:00
kdump [PATCH] kdump: add dmesg gdbmacro into document 2006-01-11 18:42:10 -08:00
m68k [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
mips [MIPS] Update docs to reflect the latest status of the Alchemy IDE driver. 2006-02-14 19:13:23 +00:00
networking Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-06-19 18:55:56 -07:00
parisc
pcmcia [PATCH] pcmcia: convert remaining users of pcmcia_release_io and _irq 2006-03-31 17:15:51 +02:00
power [PATCH] USB: correct the USB info in Documentation/power/swsusp.txt 2006-06-21 15:04:11 -07:00
powerpc [PATCH] powerpc: Kill _machine and hard-coded platform numbers 2006-03-28 23:15:54 +11:00
s390 [PATCH] s390: cio documentation update 2006-03-24 07:33:15 -08:00
scsi [SCSI] aacraid: Update supported product information 2006-06-19 19:23:07 -05:00
serial [SERIAL] Update parity handling documentation 2006-06-02 17:47:26 +01:00
sh
sound [ALSA] Change an arugment of snd_mpu401_uart_new() to bit flags 2006-06-22 21:33:56 +02:00
sparc
spi [PATCH] SPI: busnum == 0 needs to work 2006-05-16 14:33:57 -07:00
sysctl [PATCH] suspend-to-ram: allow video options to be set at runtime 2006-02-20 20:00:10 -08:00
telephony
uml
usb [PATCH] USB: update usbmon.txt 2006-06-21 15:04:17 -07:00
video4linux V4L/DVB (3653h): Move usb v4l docs into Documentation/video4linux 2006-04-02 04:55:56 -03:00
vm [PATCH] Doc: vm/hugetlbpage update-2 2006-04-19 09:13:52 -07:00
w1 [PATCH] W1: Add the DS2482 I2C-to-w1 bridge driver. 2006-03-23 17:28:12 -08:00
watchdog [WATCHDOG] Documentation/watchdog/watchdog-api.txt - fix watchdog daemon 2006-05-15 21:37:46 +02:00
x86_64 [PATCH] x86_64: Reserve SRAT hotadd memory on x86-64 2006-04-09 11:53:16 -07:00
00-INDEX
BUG-HUNTING Documentation: Update to BUG-HUNTING 2006-03-22 00:37:42 +01:00
Changes Documentation/Changes: remove outdated translation references 2006-03-20 20:28:13 +01:00
CodingStyle [PATCH] CodingStyle correction 2006-01-10 08:01:52 -08:00
DMA-API.txt [PATCH] dma doc updates 2006-04-14 12:25:26 -07:00
DMA-ISA-LPC.txt
DMA-mapping.txt [PATCH] dma doc updates 2006-04-14 12:25:26 -07:00
HOWTO [PATCH] Added URI of "linux kernel development process" 2006-04-27 13:08:57 -07:00
IO-mapping.txt
IPMI.txt
IRQ-affinity.txt
MSI-HOWTO.txt
ManagementStyle
PCIEBUS-HOWTO.txt
README.DAC960
README.cycladesZ
SAK.txt
SecurityBugs
SubmittingDrivers [PATCH] docs: update some updated code docs 2006-01-14 10:39:53 -08:00
SubmittingPatches [PATCH] docs: update some updated code docs 2006-01-14 10:39:53 -08:00
VGA-softcursor.txt
acpi-hotkey.txt Fix minor documentation typo 2006-04-01 01:49:22 +02:00
applying-patches.txt [PATCH] Docs update: typos, corrections and additions to applying-patches.txt 2006-01-10 08:01:54 -08:00
atomic_ops.txt
basic_profiling.txt
binfmt_misc.txt
cachetlb.txt [PATCH] Add flush_kernel_dcache_page() API 2006-03-26 08:56:53 -08:00
cciss.txt
cli-sti-removal.txt
computone.txt
cpqarray.txt
cpu-hotplug.txt [PATCH] for_each_possible_cpu: documentaion 2006-03-28 09:16:05 -08:00
cpusets.txt [PATCH] cpuset memory spread basic implementation 2006-03-24 07:33:22 -08:00
cputopology.txt [PATCH] trivial typos in Documentation/cputopology.txt 2006-03-28 09:16:08 -08:00
dcdbas.txt
debugging-modules.txt
dell_rbu.txt
devices.txt [PATCH] devices.txt: remove pktcdvd entry 2006-05-15 11:20:58 -07:00
digiepca.txt
dnotify.txt
dontdiff
eisa.txt
exception.txt
feature-removal-schedule.txt Merge git://git.kernel.org/pub/scm/linux/kernel/git/bcollins/linux1394-2.6 2006-06-20 20:01:16 -07:00
floppy.txt
ftape.txt
hayes-esp.txt
highuid.txt
hpet.txt Documentation/hpet.txt typo 2006-01-15 02:09:54 +01:00
hrtimers.txt [PATCH] hrtimer: hrtimer documentation 2006-01-10 08:01:37 -08:00
hw_random.txt
ibm-acpi.txt
ide.txt
initrd.txt
io_ordering.txt
ioctl-number.txt [PATCH] arch/i386/kernel/microcode.c: remove the obsolete microcode_ioctl 2006-03-28 09:16:06 -08:00
iostats.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt [PATCH] Doc/kernel-doc: add more usage info 2006-02-01 08:53:27 -08:00
kernel-docs.txt
kernel-parameters.txt [SECMARK]: Add new packet controls to SELinux 2006-06-17 21:30:05 -07:00
keys-request-key.txt [PATCH] keys: Permit running process to instantiate keys 2006-01-08 20:13:53 -08:00
keys.txt [PATCH] Keys: Fix race between two instantiators of a key 2006-06-22 15:05:56 -07:00
kobject.txt
kprobes.txt [PATCH] kprobes: Update Documentation/kprobes.txt 2006-02-14 16:09:34 -08:00
kref.txt
laptop-mode.txt [PATCH] docs: laptop-mode.txt source file build 2006-04-11 06:18:44 -07:00
ldm.txt
leds-class.txt [PATCH] LED: class documentation 2006-03-31 12:18:56 -08:00
locks.txt [PATCH] Docs update: remove obsolete patch from locks.txt 2006-01-10 08:01:54 -08:00
logo.gif
logo.txt
magic-number.txt
mandatory.txt
mca.txt
md.txt [PATCH] md: allow sync-speed to be controlled per-device 2006-01-06 08:34:10 -08:00
memory-barriers.txt [PATCH] Further alterations for memory barrier document 2006-06-10 11:02:05 -07:00
memory.txt
mono.txt
moxa-smartio
mtrr.txt [PATCH] Doc: fix mtrr userspace programs to build cleanly 2006-04-11 06:18:44 -07:00
mutex-design.txt [PATCH] mutex subsystem, documentation 2006-01-09 15:59:20 -08:00
nbd.txt
nfsroot.txt [PATCH] Updated Documentation/nfsroot.txt 2006-03-24 07:33:27 -08:00
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt [PATCH] doc: refer to kdump in oops-tracing.txt 2006-01-11 18:42:10 -08:00
paride.txt
parport-lowlevel.txt [PATCH] parport: fix documentation 2006-02-03 08:32:06 -08:00
parport.txt
pci-error-recovery.txt [PATCH] Documentation: Updated PCI Error Recovery 2006-02-03 08:32:00 -08:00
pci.txt [PATCH] PCI: Documentation: no more device ids 2006-04-27 13:00:51 -07:00
pm.txt [ACPI] linux-acpi@vger.kernel.org replaces acpi-devel@lists.sourceforge.net 2006-01-06 16:19:26 -05:00
pnp.txt [PATCH] pnp: PNP: adjust pnp_register_driver signature 2006-03-27 08:44:53 -08:00
preempt-locking.txt
prio_tree.txt
ramdisk.txt
riscom8.txt
robust-futex-ABI.txt [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
robust-futexes.txt [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
rocket.txt
rpc-cache.txt [PATCH] knfsd: Update rpc-cache.txt to match recent changes 2006-03-27 08:44:43 -08:00
rtc.txt
sched-arch.txt
sched-coding.txt
sched-design.txt
sched-domains.txt
sched-stats.txt
seclvl.txt
serial-console.txt [PATCH] doc: more serial-console info 2006-03-25 08:23:00 -08:00
sgi-ioc4.txt
sgi-visws.txt
sharedsubtree.txt
smart-config.txt kbuild: remove checkconfig.pl 2006-02-19 09:51:22 +01:00
smp.txt
sonypi.txt
sparse.txt
specialix.txt
spinlocks.txt fix rwlock usage example 2006-03-22 00:19:39 +01:00
stable_api_nonsense.txt
stable_kernel_rules.txt [PATCH] Docs update: small fixes to stable_kernel_rules.txt 2006-01-10 08:01:55 -08:00
stallion.txt
svga.txt
sx.txt
sysrq.txt
time_interpolators.txt
tipar.txt
tty.txt
unicode.txt
unshare.txt [PATCH] unshare system call -v5: Documentation file 2006-02-07 16:12:34 -08:00
voyager.txt
xterm-linux.xpm
zorro.txt

README.cycladesZ

The Cyclades-Z must have firmware loaded onto the card before it will
operate.  This operation should be performed during system startup,

The firmware, loader program and the latest device driver code are
available from Cyclades at
    ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/