linux/arch/x86/include/asm
Ulrich Drepper de11defebf reintroduce accept4
Introduce a new accept4() system call.  The addition of this system call
matches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),
inotify_init1(), epoll_create1(), pipe2()) which added new system calls
that differed from analogous traditional system calls in adding a flags
argument that can be used to access additional functionality.

The accept4() system call is exactly the same as accept(), except that
it adds a flags bit-mask argument.  Two flags are initially implemented.
(Most of the new system calls in 2.6.27 also had both of these flags.)

SOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled
for the new file descriptor returned by accept4().  This is a useful
security feature to avoid leaking information in a multithreaded
program where one thread is doing an accept() at the same time as
another thread is doing a fork() plus exec().  More details here:
http://udrepper.livejournal.com/20407.html "Secure File Descriptor Handling",
Ulrich Drepper).

The other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag
to be enabled on the new open file description created by accept4().
(This flag is merely a convenience, saving the use of additional calls
fcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.

Here's a test program.  Works on x86-32.  Should work on x86-64, but
I (mtk) don't have a system to hand to test with.

It tests accept4() with each of the four possible combinations of
SOCK_CLOEXEC and SOCK_NONBLOCK set/clear in 'flags', and verifies
that the appropriate flags are set on the file descriptor/open file
description returned by accept4().

I tested Ulrich's patch in this thread by applying against 2.6.28-rc2,
and it passes according to my test program.

/* test_accept4.c

  Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk
       <mtk.manpages@gmail.com>

  Licensed under the GNU GPLv2 or later.
*/
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/syscall.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>

#define PORT_NUM 33333

#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)

/**********************************************************************/

/* The following is what we need until glibc gets a wrapper for
  accept4() */

/* Flags for socket(), socketpair(), accept4() */
#ifndef SOCK_CLOEXEC
#define SOCK_CLOEXEC    O_CLOEXEC
#endif
#ifndef SOCK_NONBLOCK
#define SOCK_NONBLOCK   O_NONBLOCK
#endif

#ifdef __x86_64__
#define SYS_accept4 288
#elif __i386__
#define USE_SOCKETCALL 1
#define SYS_ACCEPT4 18
#else
#error "Sorry -- don't know the syscall # on this architecture"
#endif

static int
accept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)
{
   printf("Calling accept4(): flags = %x", flags);
   if (flags != 0) {
       printf(" (");
       if (flags & SOCK_CLOEXEC)
           printf("SOCK_CLOEXEC");
       if ((flags & SOCK_CLOEXEC) && (flags & SOCK_NONBLOCK))
           printf(" ");
       if (flags & SOCK_NONBLOCK)
           printf("SOCK_NONBLOCK");
       printf(")");
   }
   printf("\n");

#if USE_SOCKETCALL
   long args[6];

   args[0] = fd;
   args[1] = (long) sockaddr;
   args[2] = (long) addrlen;
   args[3] = flags;

   return syscall(SYS_socketcall, SYS_ACCEPT4, args);
#else
   return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);
#endif
}

/**********************************************************************/

static int
do_test(int lfd, struct sockaddr_in *conn_addr,
       int closeonexec_flag, int nonblock_flag)
{
   int connfd, acceptfd;
   int fdf, flf, fdf_pass, flf_pass;
   struct sockaddr_in claddr;
   socklen_t addrlen;

   printf("=======================================\n");

   connfd = socket(AF_INET, SOCK_STREAM, 0);
   if (connfd == -1)
       die("socket");
   if (connect(connfd, (struct sockaddr *) conn_addr,
               sizeof(struct sockaddr_in)) == -1)
       die("connect");

   addrlen = sizeof(struct sockaddr_in);
   acceptfd = accept4(lfd, (struct sockaddr *) &claddr, &addrlen,
                      closeonexec_flag | nonblock_flag);
   if (acceptfd == -1) {
       perror("accept4()");
       close(connfd);
       return 0;
   }

   fdf = fcntl(acceptfd, F_GETFD);
   if (fdf == -1)
       die("fcntl:F_GETFD");
   fdf_pass = ((fdf & FD_CLOEXEC) != 0) ==
              ((closeonexec_flag & SOCK_CLOEXEC) != 0);
   printf("Close-on-exec flag is %sset (%s); ",
           (fdf & FD_CLOEXEC) ? "" : "not ",
           fdf_pass ? "OK" : "failed");

   flf = fcntl(acceptfd, F_GETFL);
   if (flf == -1)
       die("fcntl:F_GETFD");
   flf_pass = ((flf & O_NONBLOCK) != 0) ==
              ((nonblock_flag & SOCK_NONBLOCK) !=0);
   printf("nonblock flag is %sset (%s)\n",
           (flf & O_NONBLOCK) ? "" : "not ",
           flf_pass ? "OK" : "failed");

   close(acceptfd);
   close(connfd);

   printf("Test result: %s\n", (fdf_pass && flf_pass) ? "PASS" : "FAIL");
   return fdf_pass && flf_pass;
}

static int
create_listening_socket(int port_num)
{
   struct sockaddr_in svaddr;
   int lfd;
   int optval;

   memset(&svaddr, 0, sizeof(struct sockaddr_in));
   svaddr.sin_family = AF_INET;
   svaddr.sin_addr.s_addr = htonl(INADDR_ANY);
   svaddr.sin_port = htons(port_num);

   lfd = socket(AF_INET, SOCK_STREAM, 0);
   if (lfd == -1)
       die("socket");

   optval = 1;
   if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &optval,
                  sizeof(optval)) == -1)
       die("setsockopt");

   if (bind(lfd, (struct sockaddr *) &svaddr,
            sizeof(struct sockaddr_in)) == -1)
       die("bind");

   if (listen(lfd, 5) == -1)
       die("listen");

   return lfd;
}

int
main(int argc, char *argv[])
{
   struct sockaddr_in conn_addr;
   int lfd;
   int port_num;
   int passed;

   passed = 1;

   port_num = (argc > 1) ? atoi(argv[1]) : PORT_NUM;

   memset(&conn_addr, 0, sizeof(struct sockaddr_in));
   conn_addr.sin_family = AF_INET;
   conn_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
   conn_addr.sin_port = htons(port_num);

   lfd = create_listening_socket(port_num);

   if (!do_test(lfd, &conn_addr, 0, 0))
       passed = 0;
   if (!do_test(lfd, &conn_addr, SOCK_CLOEXEC, 0))
       passed = 0;
   if (!do_test(lfd, &conn_addr, 0, SOCK_NONBLOCK))
       passed = 0;
   if (!do_test(lfd, &conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))
       passed = 0;

   close(lfd);

   exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);
}

[mtk.manpages@gmail.com: rewrote changelog, updated test program]
Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Tested-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: <linux-api@vger.kernel.org>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19 18:49:57 -08:00
..
bigsmp
es7000 x86: fix APIC_DEBUG with inquire_remote_apic 2008-10-28 16:43:48 +01:00
mach-default x86: fix APIC_DEBUG with inquire_remote_apic 2008-10-28 16:43:48 +01:00
mach-generic x86: drop double underscores from header guards 2008-10-23 00:01:39 -07:00
mach-rdc321x x86: drop double underscores from header guards 2008-10-23 00:01:39 -07:00
mach-voyager
numaq
summit
uv x86, uv: fix compile error in uv_hub.h 2008-10-30 19:38:46 +01:00
visws x86: drop double underscores from header guards 2008-10-23 00:01:39 -07:00
xen x86: drop double underscores from header guards 2008-10-23 00:01:39 -07:00
a.out-core.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
a.out.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
acpi.h ACPI: pci_link: remove acpi_irq_balance_set() interface 2008-11-11 21:12:05 -05:00
agp.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
alternative-asm.h
alternative.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
amd_iommu_types.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
amd_iommu.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
apic.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
apicdef.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
arch_hooks.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
asm.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
atomic_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
atomic_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
atomic.h
auxvec.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
bios_ebda.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
bitops.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
boot.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
bootparam.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
bug.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
bugs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
byteorder.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
cache.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
cacheflush.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
calgary.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
calling.h
checksum_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
checksum_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
checksum.h
cmpxchg_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
cmpxchg_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
cmpxchg.h
compat.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
cpu.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
cpufeature.h x86: fix AMDC1E and XTOPOLOGY conflict in cpufeature 2008-10-31 11:01:40 +01:00
cputime.h
current.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
debugreg.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
delay.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
desc_defs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
desc.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
device.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
div64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
dma-mapping.h x86: use GFP_DMA for 24bit coherent_dma_mask 2008-10-23 21:54:39 +02:00
dma.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
dmi.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ds.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
dwarf2.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
e820.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
edac.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
efi.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
elf.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
emergency-restart.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
errno.h
fb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
fcntl.h
fixmap_32.h x86: add iomap_atomic*()/iounmap_atomic() on 32-bit using fixmaps 2008-10-31 10:12:38 +01:00
fixmap_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
fixmap.h x86: add iomap_atomic*()/iounmap_atomic() on 32-bit using fixmaps 2008-10-31 10:12:38 +01:00
floppy.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
frame.h
ftrace.h Merge commit 'v2.6.28-rc2' into tracing/urgent 2008-10-27 10:50:54 +01:00
futex.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
gart.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
genapic_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
genapic_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
genapic.h
geode.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
gpio.h x86: canonicalize remaining header guards 2008-10-23 00:20:33 -07:00
hardirq_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hardirq_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hardirq.h
highmem.h x86: add iomap_atomic*()/iounmap_atomic() on 32-bit using fixmaps 2008-10-31 10:12:38 +01:00
hpet.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hugetlb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hw_irq.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hypertransport.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
i387.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
i8253.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
i8259.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ia32_unistd.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ia32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
idle.h Merge branch 'x86/um-header' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-23 10:22:01 -07:00
intel_arch_perfmon.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
io_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
io_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
io_apic.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
io.h x86: start annotating early ioremap pointers with __iomem 2008-10-29 08:05:14 +01:00
ioctl.h
ioctls.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
iommu.h Revert "x86: blacklist DMAR on Intel G31/G33 chipsets" 2008-11-15 11:37:16 -08:00
ipcbuf.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ipi.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
irq_regs_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
irq_regs_64.h
irq_regs.h
irq_remapping.h x86: canonicalize remaining header guards 2008-10-23 00:20:33 -07:00
irq_vectors.h x86: remove VISWS and PARAVIRT around NR_IRQS puzzle 2008-11-06 09:35:34 +01:00
irq.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
irqflags.h
ist.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
k8.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
Kbuild
kdebug.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kexec.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kgdb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kmap_types.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kprobes.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kvm_host.h KVM: Fix guest shared interrupt with in-kernel irqchip 2008-10-28 14:21:34 +02:00
kvm_para.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kvm_x86_emulate.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
kvm.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ldt.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
lguest_hcall.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
lguest.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
linkage.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
local.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
math_emu.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mc146818rtc.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mca_dma.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mca.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mce.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
microcode.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mman.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmconfig.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmu_context_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmu_context_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmu_context.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmu.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmx.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmzone_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmzone_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmzone.h
module.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mpspec_def.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mpspec.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
msgbuf.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
msidef.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
msr-index.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
msr.h sched: improve sched_clock() performance 2008-11-08 16:48:19 +01:00
mtrr.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mutex_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mutex_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mutex.h
nmi.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
nops.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
numa_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
numa_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
numa.h
numaq.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
olpc.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
page_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
page_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
page.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
param.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
paravirt.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
parport.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pat.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pci_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pci_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pci-direct.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pci.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pda.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
percpu.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgalloc.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgtable_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgtable_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgtable-2level-defs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgtable-2level.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgtable-3level-defs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pgtable-3level.h i386/PAE: fix pud_page() 2008-10-30 11:47:50 +01:00
pgtable.h Merge branch 'proc' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc 2008-10-23 12:04:37 -07:00
poll.h
posix_types_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
posix_types_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
posix_types.h
prctl.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
processor-cyrix.h
processor-flags.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
processor.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
proto.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ptrace-abi.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ptrace.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pvclock-abi.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pvclock.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
reboot_fixups.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
reboot.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
required-features.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
resource.h
resume-trace.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
rio.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
rtc.h
rwlock.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
rwsem.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
scatterlist.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
seccomp_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
seccomp_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
seccomp.h
sections.h
segment.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sembuf.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
serial.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
setup.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
shmbuf.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
shmparam.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sigcontext32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sigcontext.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
siginfo.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
signal.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
smp.h x86/voyager: fix compile breakage caused by dc1e35c6e9 2008-10-31 00:19:33 +01:00
socket.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sockios.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sparsemem.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
spinlock_types.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
spinlock.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
srat.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
stacktrace.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
stat.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
statfs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
string_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
string_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
string.h
suspend_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
suspend_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
suspend.h
swiotlb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sync_bitops.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
syscall.h Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-23 12:38:39 -07:00
syscalls.h
system_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
system.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
tce.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
termbits.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
termios.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
therm_throt.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
thread_info.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
time.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
timer.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
timex.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
tlb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
tlbflush.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
topology.h sched: re-tune balancing 2008-11-05 18:04:38 +01:00
trampoline.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
traps.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
tsc.h sched: improve sched_clock() performance 2008-11-08 16:48:19 +01:00
types.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
uaccess_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
uaccess_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
uaccess.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
ucontext.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
unaligned.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
unistd_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
unistd_64.h reintroduce accept4 2008-11-19 18:49:57 -08:00
unistd.h
unwind.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user.h
vdso.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vga.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vgtod.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vic.h
vm86.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vmi_time.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vmi.h
voyager.h x86, voyager: fix smp_intr_init() compile breakage 2008-11-03 10:52:21 +01:00
vsyscall.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
xcr.h
xor_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
xor_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
xor.h
xsave.h