)]}'
{
  "log": [
    {
      "commit": "5770a3fb5f8544d40ae03b010318345cdd05d662",
      "tree": "53429cf5e31d10f2f604c6a338148a8ebf419741",
      "parents": [
        "b22dfb735a019a721117e713968c1ddf60ee6142"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Aug 26 15:29:22 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 26 10:37:20 2008 -0700"
      },
      "message": "Fix userspace export of \u003clinux/net.h\u003e\n\nIncluding \u003clinux/fcntl.h\u003e in the user-visible part of this header has\ncaused build regressions with headers from 2.6.27-rc. Move it down to\nthe #ifdef __KERNEL__ part, which is the only place it\u0027s needed. Move\nsome other kernel-only things down there too, while we\u0027re at it.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "717115e1a5856b57af0f71e1df7149108294fc10",
      "tree": "9528a992245c2fb993a0cf0bc8221dc7dea5d259",
      "parents": [
        "2711b793eb62a5873a0ba583a69252040aef176e"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Fri Jul 25 01:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:29 2008 -0700"
      },
      "message": "printk ratelimiting rewrite\n\nAll ratelimit user use same jiffies and burst params, so some messages\n(callbacks) will be lost.\n\nFor example:\na call printk_ratelimit(5 * HZ, 1)\nb call printk_ratelimit(5 * HZ, 1) before the 5*HZ timeout of a, then b will\nwill be supressed.\n\n- rewrite __ratelimit, and use a ratelimit_state as parameter.  Thanks for\n  hints from andrew.\n\n- Add WARN_ON_RATELIMIT, update rcupreempt.h\n\n- remove __printk_ratelimit\n\n- use __ratelimit in net_ratelimit\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77d2720059618b9b6e827a8b73831eb6c6fad63c",
      "tree": "c8a08caa9a864c546fda2e043d5232c377d210c6",
      "parents": [
        "99829b832997d907c30669bfd17da32151e18f04"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters: NONBLOCK in socket and socketpair\n\nThis patch introduces support for the SOCK_NONBLOCK flag in socket,\nsocketpair, and  paccept.  To do this the internal function sock_attach_fd\ngets an additional parameter which it uses to set the appropriate flag for\nthe file descriptor.\n\nGiven that in modern, scalable programs almost all socket connections are\nnon-blocking and the minimal additional cost for the new functionality\nI see no reason not to add this code.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cpthread.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_paccept\n# ifdef __x86_64__\n#  define __NR_paccept 288\n# elif defined __i386__\n#  define SYS_PACCEPT 18\n#  define USE_SOCKETCALL 1\n# else\n#  error \"need __NR_paccept\"\n# endif\n#endif\n\n#ifdef USE_SOCKETCALL\n# define paccept(fd, addr, addrlen, mask, flags) \\\n  ({ long args[6] \u003d { \\\n       (long) fd, (long) addr, (long) addrlen, (long) mask, 8, (long) flags }; \\\n     syscall (__NR_socketcall, SYS_PACCEPT, args); })\n#else\n# define paccept(fd, addr, addrlen, mask, flags) \\\n  syscall (__NR_paccept, fd, addr, addrlen, mask, 8, flags)\n#endif\n\n#define PORT 57392\n\n#define SOCK_NONBLOCK O_NONBLOCK\n\nstatic pthread_barrier_t b;\n\nstatic void *\ntf (void *arg)\n{\n  pthread_barrier_wait (\u0026b);\n  int s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  struct sockaddr_in sin;\n  sin.sin_family \u003d AF_INET;\n  sin.sin_addr.s_addr \u003d htonl (INADDR_LOOPBACK);\n  sin.sin_port \u003d htons (PORT);\n  connect (s, (const struct sockaddr *) \u0026sin, sizeof (sin));\n  close (s);\n  pthread_barrier_wait (\u0026b);\n\n  pthread_barrier_wait (\u0026b);\n  s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  sin.sin_port \u003d htons (PORT);\n  connect (s, (const struct sockaddr *) \u0026sin, sizeof (sin));\n  close (s);\n  pthread_barrier_wait (\u0026b);\n\n  return NULL;\n}\n\nint\nmain (void)\n{\n  int fd;\n  fd \u003d socket (PF_INET, SOCK_STREAM, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"socket(0) failed\");\n      return 1;\n    }\n  int fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"socket(0) set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d socket (PF_INET, SOCK_STREAM|SOCK_NONBLOCK, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"socket(SOCK_NONBLOCK) failed\");\n      return 1;\n    }\n  fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"socket(SOCK_NONBLOCK) does not set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  int fds[2];\n  if (socketpair (PF_UNIX, SOCK_STREAM, 0, fds) \u003d\u003d -1)\n    {\n      puts (\"socketpair(0) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      fl \u003d fcntl (fds[i], F_GETFL);\n      if (fl \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if (fl \u0026 O_NONBLOCK)\n        {\n          printf (\"socketpair(0) set non-blocking mode for fds[%d]\\n\", i);\n          return 1;\n        }\n      close (fds[i]);\n    }\n\n  if (socketpair (PF_UNIX, SOCK_STREAM|SOCK_NONBLOCK, 0, fds) \u003d\u003d -1)\n    {\n      puts (\"socketpair(SOCK_NONBLOCK) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      fl \u003d fcntl (fds[i], F_GETFL);\n      if (fl \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n        {\n          printf (\"socketpair(SOCK_NONBLOCK) does not set non-blocking mode for fds[%d]\\n\", i);\n          return 1;\n        }\n      close (fds[i]);\n    }\n\n  pthread_barrier_init (\u0026b, NULL, 2);\n\n  struct sockaddr_in sin;\n  pthread_t th;\n  if (pthread_create (\u0026th, NULL, tf, NULL) !\u003d 0)\n    {\n      puts (\"pthread_create failed\");\n      return 1;\n    }\n\n  int s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  int reuse \u003d 1;\n  setsockopt (s, SOL_SOCKET, SO_REUSEADDR, \u0026reuse, sizeof (reuse));\n  sin.sin_family \u003d AF_INET;\n  sin.sin_addr.s_addr \u003d htonl (INADDR_LOOPBACK);\n  sin.sin_port \u003d htons (PORT);\n  bind (s, (struct sockaddr *) \u0026sin, sizeof (sin));\n  listen (s, SOMAXCONN);\n\n  pthread_barrier_wait (\u0026b);\n\n  int s2 \u003d paccept (s, NULL, 0, NULL, 0);\n  if (s2 \u003c 0)\n    {\n      puts (\"paccept(0) failed\");\n      return 1;\n    }\n\n  fl \u003d fcntl (s2, F_GETFL);\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"paccept(0) set non-blocking mode\");\n      return 1;\n    }\n  close (s2);\n  close (s);\n\n  pthread_barrier_wait (\u0026b);\n\n  s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  sin.sin_port \u003d htons (PORT);\n  setsockopt (s, SOL_SOCKET, SO_REUSEADDR, \u0026reuse, sizeof (reuse));\n  bind (s, (struct sockaddr *) \u0026sin, sizeof (sin));\n  listen (s, SOMAXCONN);\n\n  pthread_barrier_wait (\u0026b);\n\n  s2 \u003d paccept (s, NULL, 0, NULL, SOCK_NONBLOCK);\n  if (s2 \u003c 0)\n    {\n      puts (\"paccept(SOCK_NONBLOCK) failed\");\n      return 1;\n    }\n\n  fl \u003d fcntl (s2, F_GETFL);\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"paccept(SOCK_NONBLOCK) does not set non-blocking mode\");\n      return 1;\n    }\n  close (s2);\n  close (s);\n\n  pthread_barrier_wait (\u0026b);\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c019bbc612f6633ede7ed67725cbf68de45ae8a4",
      "tree": "99b23660c2915e699f35f3fc5820b5cc30f890b3",
      "parents": [
        "aaca0bdca573f3f51ea03139f9c7289541e7bca3"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: paccept w/out set_restore_sigmask\n\nSome platforms do not have support to restore the signal mask in the\nreturn path from a syscall.  For those platforms syscalls like pselect are\nnot defined at all.  This is, I think, not a good choice for paccept()\nsince paccept() adds more value on top of accept() than just the signal\nmask handling.\n\nTherefore this patch defines a scaled down version of the sys_paccept\nfunction for those platforms.  It returns -EINVAL in case the signal mask\nis non-NULL but behaves the same otherwise.\n\nNote that I explicitly included \u003clinux/thread_info.h\u003e.  I saw that it is\ncurrently included but indirectly two levels down.  There is too much risk\nin relying on this.  The header might change and then suddenly the\nfunction definition would change without anyone immediately noticing.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aaca0bdca573f3f51ea03139f9c7289541e7bca3",
      "tree": "d25b0baa73b5301d91a5c848a896bad0fb719acc",
      "parents": [
        "a677a039be7243357d93502bff2b40850c942e2d"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: paccept\n\nThis patch is by far the most complex in the series.  It adds a new syscall\npaccept.  This syscall differs from accept in that it adds (at the userlevel)\ntwo additional parameters:\n\n- a signal mask\n- a flags value\n\nThe flags parameter can be used to set flag like SOCK_CLOEXEC.  This is\nimlpemented here as well.  Some people argued that this is a property which\nshould be inherited from the file desriptor for the server but this is against\nPOSIX.  Additionally, we really want the signal mask parameter as well\n(similar to pselect, ppoll, etc).  So an interface change in inevitable.\n\nThe flag value is the same as for socket and socketpair.  I think diverging\nhere will only create confusion.  Similar to the filesystem interfaces where\nthe use of the O_* constants differs, it is acceptable here.\n\nThe signal mask is handled as for pselect etc.  The mask is temporarily\ninstalled for the thread and removed before the call returns.  I modeled the\ncode after pselect.  If there is a problem it\u0027s likely also in pselect.\n\nFor architectures which use socketcall I maintained this interface instead of\nadding a system call.  The symmetry shouldn\u0027t be broken.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cerrno.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cpthread.h\u003e\n#include \u003csignal.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_paccept\n# ifdef __x86_64__\n#  define __NR_paccept 288\n# elif defined __i386__\n#  define SYS_PACCEPT 18\n#  define USE_SOCKETCALL 1\n# else\n#  error \"need __NR_paccept\"\n# endif\n#endif\n\n#ifdef USE_SOCKETCALL\n# define paccept(fd, addr, addrlen, mask, flags) \\\n  ({ long args[6] \u003d { \\\n       (long) fd, (long) addr, (long) addrlen, (long) mask, 8, (long) flags }; \\\n     syscall (__NR_socketcall, SYS_PACCEPT, args); })\n#else\n# define paccept(fd, addr, addrlen, mask, flags) \\\n  syscall (__NR_paccept, fd, addr, addrlen, mask, 8, flags)\n#endif\n\n#define PORT 57392\n\n#define SOCK_CLOEXEC O_CLOEXEC\n\nstatic pthread_barrier_t b;\n\nstatic void *\ntf (void *arg)\n{\n  pthread_barrier_wait (\u0026b);\n  int s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  struct sockaddr_in sin;\n  sin.sin_family \u003d AF_INET;\n  sin.sin_addr.s_addr \u003d htonl (INADDR_LOOPBACK);\n  sin.sin_port \u003d htons (PORT);\n  connect (s, (const struct sockaddr *) \u0026sin, sizeof (sin));\n  close (s);\n\n  pthread_barrier_wait (\u0026b);\n  s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  sin.sin_port \u003d htons (PORT);\n  connect (s, (const struct sockaddr *) \u0026sin, sizeof (sin));\n  close (s);\n  pthread_barrier_wait (\u0026b);\n\n  pthread_barrier_wait (\u0026b);\n  sleep (2);\n  pthread_kill ((pthread_t) arg, SIGUSR1);\n\n  return NULL;\n}\n\nstatic void\nhandler (int s)\n{\n}\n\nint\nmain (void)\n{\n  pthread_barrier_init (\u0026b, NULL, 2);\n\n  struct sockaddr_in sin;\n  pthread_t th;\n  if (pthread_create (\u0026th, NULL, tf, (void *) pthread_self ()) !\u003d 0)\n    {\n      puts (\"pthread_create failed\");\n      return 1;\n    }\n\n  int s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  int reuse \u003d 1;\n  setsockopt (s, SOL_SOCKET, SO_REUSEADDR, \u0026reuse, sizeof (reuse));\n  sin.sin_family \u003d AF_INET;\n  sin.sin_addr.s_addr \u003d htonl (INADDR_LOOPBACK);\n  sin.sin_port \u003d htons (PORT);\n  bind (s, (struct sockaddr *) \u0026sin, sizeof (sin));\n  listen (s, SOMAXCONN);\n\n  pthread_barrier_wait (\u0026b);\n\n  int s2 \u003d paccept (s, NULL, 0, NULL, 0);\n  if (s2 \u003c 0)\n    {\n      puts (\"paccept(0) failed\");\n      return 1;\n    }\n\n  int coe \u003d fcntl (s2, F_GETFD);\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"paccept(0) set close-on-exec-flag\");\n      return 1;\n    }\n  close (s2);\n\n  pthread_barrier_wait (\u0026b);\n\n  s2 \u003d paccept (s, NULL, 0, NULL, SOCK_CLOEXEC);\n  if (s2 \u003c 0)\n    {\n      puts (\"paccept(SOCK_CLOEXEC) failed\");\n      return 1;\n    }\n\n  coe \u003d fcntl (s2, F_GETFD);\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"paccept(SOCK_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (s2);\n\n  pthread_barrier_wait (\u0026b);\n\n  struct sigaction sa;\n  sa.sa_handler \u003d handler;\n  sa.sa_flags \u003d 0;\n  sigemptyset (\u0026sa.sa_mask);\n  sigaction (SIGUSR1, \u0026sa, NULL);\n\n  sigset_t ss;\n  pthread_sigmask (SIG_SETMASK, NULL, \u0026ss);\n  sigaddset (\u0026ss, SIGUSR1);\n  pthread_sigmask (SIG_SETMASK, \u0026ss, NULL);\n\n  sigdelset (\u0026ss, SIGUSR1);\n  alarm (4);\n  pthread_barrier_wait (\u0026b);\n\n  errno \u003d 0 ;\n  s2 \u003d paccept (s, NULL, 0, \u0026ss, 0);\n  if (s2 !\u003d -1 || errno !\u003d EINTR)\n    {\n      puts (\"paccept did not fail with EINTR\");\n      return 1;\n    }\n\n  close (s);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: make it compile]\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a677a039be7243357d93502bff2b40850c942e2d",
      "tree": "6cf1669c4752e2527e02f33baa920cd2dfd59117",
      "parents": [
        "6e2c10a12a2170856f5582d62d583cbcd1cb5eaf"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: socket and socketpair\n\nThis patch adds support for flag values which are ORed to the type passwd\nto socket and socketpair.  The additional code is minimal.  The flag\nvalues in this implementation can and must match the O_* flags.  This\navoids overhead in the conversion.\n\nThe internal functions sock_alloc_fd and sock_map_fd get a new parameters\nand all callers are changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003csys/socket.h\u003e\n\n#define PORT 57392\n\n/* For Linux these must be the same.  */\n#define SOCK_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd;\n  fd \u003d socket (PF_INET, SOCK_STREAM, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"socket(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"socket(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d socket (PF_INET, SOCK_STREAM|SOCK_CLOEXEC, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"socket(SOCK_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"socket(SOCK_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  int fds[2];\n  if (socketpair (PF_UNIX, SOCK_STREAM, 0, fds) \u003d\u003d -1)\n    {\n      puts (\"socketpair(0) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      coe \u003d fcntl (fds[i], F_GETFD);\n      if (coe \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if (coe \u0026 FD_CLOEXEC)\n        {\n          printf (\"socketpair(0) set close-on-exec flag for fds[%d]\\n\", i);\n          return 1;\n        }\n      close (fds[i]);\n    }\n\n  if (socketpair (PF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0, fds) \u003d\u003d -1)\n    {\n      puts (\"socketpair(SOCK_CLOEXEC) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      coe \u003d fcntl (fds[i], F_GETFD);\n      if (coe \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n        {\n          printf (\"socketpair(SOCK_CLOEXEC) does not set close-on-exec flag for fds[%d]\\n\", i);\n          return 1;\n        }\n      close (fds[i]);\n    }\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c693610fe923764fe41b846fb86938a2010da6e",
      "tree": "f104646dc005a69f235053a9aee844376a2e41cc",
      "parents": [
        "4ad3f26162ece5aca3045fd45e15dd99acea4a0e"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Jul 08 03:03:01 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 08 03:03:01 2008 -0700"
      },
      "message": "net: remove padding from struct socket on 64bit \u0026 increase objects/cache\n\nremove padding from struct socket reducing its size by 8 bytes.\n    \nThis allows more objects/cache in sock_inode_cache\n12 objects/cache when cacheline size is 128 (generic x86_64)\n    \nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0098b7273e968fb9989a6e1e4e4c024cd081fe0d",
      "tree": "6169be4b1e74ef7b9cc19d72bd50ec6c77064411",
      "parents": [
        "fc8717baa8f52dd8d1b90df9008300ef3ec794ed"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Mar 22 17:18:47 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 22 17:18:47 2008 -0700"
      },
      "message": "[NET]: NPROTO is redundant; it\u0027s equal to AF_MAX/PF_MAX.\n\nDaveM pointed out NPROTO exposed to userspace, so keep it around,\njust make sure it stays in sync.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "08913681e484f3f0db949dd0809012e089846216",
      "tree": "5fd37f75f1de49d21fb49bb4e51f2bd4f1dcf849",
      "parents": [
        "36f0bebd9865dc7e327777fca34b75e65cbfd1a6"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Dec 05 01:42:49 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:29 2008 -0800"
      },
      "message": "[NET]: Remove the empty net_table\n\nI have removed all the entries from this table (core_table,\nipv4_table and tr_table), so now we can safely drop it.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d8ad9d7c4bfe79bc91b7fc419ecfb9dcdfe6a51",
      "tree": "4b655c4b898e634f39fd170eeb8d06f45b240660",
      "parents": [
        "ce865a61c810c971b47f57c729ec6e9b2d522d94"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Nov 26 20:10:50 2007 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:03 2008 -0800"
      },
      "message": "[NET]: Name magic constants in sock_wake_async()\n\nThe sock_wake_async() performs a bit different actions\ndepending on \"how\" argument. Unfortunately this argument\nony has numerical magic values.\n\nI propose to give names to their constants to help people\nreading this function callers understand what\u0027s going on\nwithout looking into this function all the time.\n\nI suppose this is 2.6.25 material, but if it\u0027s not (or the\nnaming seems poor/bad/awful), I can rework it against the\ncurrent net-2.6 tree.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c55e01c0cc835818475a6ce8c4d684df9949ac8",
      "tree": "1115311436677f837a4b477e3fd23c5e0ae184ef",
      "parents": [
        "bbdfc2f70610bebb841d0874dc901c648308e43a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 06 23:30:13 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:31 2008 -0800"
      },
      "message": "[TCP]: Splice receive support.\n\nSupport for network splice receive.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "91cf45f02af5c871251165d000c3f42a2a0b0552",
      "tree": "0e4c0a9f624732d47a46301a394e799dab48afe0",
      "parents": [
        "62768e28d606c10ba54217f908123de34dad9374"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 12 18:10:39 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 12 18:10:39 2007 -0800"
      },
      "message": "[NET]: Add the helper kernel_sock_shutdown()\n\n...and fix a couple of bugs in the NBD, CIFS and OCFS2 socket handlers.\n\nLooking at the sock-\u003eop-\u003eshutdown() handlers, it looks as if all of them\ntake a SHUT_RD/SHUT_WR/SHUT_RDWR argument instead of the\nRCV_SHUTDOWN/SEND_SHUTDOWN arguments.\nAdd a helper, and then define the SHUT_* enum to ensure that kernel users\nof shutdown() don\u0027t get confused.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "305e1e96911417d8cda2699f6a20a6f434616a8c",
      "tree": "02cc300a2a32478c470d93b7a79dfd7e3b71b560",
      "parents": [
        "81429973cfff7745792c877dd083eec29724ec97"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Sun Oct 21 16:44:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:54 2007 -0700"
      },
      "message": "[INET]: Let inet_diag and friends autoload\n\nBy adding module aliases to inet_diag, tcp_diag and dccp_diag, we let\nthem load automatically as needed. This makes tools like \"ss\" run\nfaster.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b8d7ae42d02e483ad94035cca851e4f7fbecb40",
      "tree": "81f8cc0ee49ef99cc67dfed3dc7b7ecb510abf8b",
      "parents": [
        "457c4cbc5a3dde259d2a1f15d5f9785290397267"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 08 23:24:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:07 2007 -0700"
      },
      "message": "[NET]: Make socket creation namespace safe.\n\nThis patch passes in the namespace a new socket should be created in\nand has the socket code do the appropriate reference counting.  By\nvirtue of this all socket create methods are touched.  In addition\nthe socket create methods are modified so that they will fail if\nyou attempt to create a socket in a non-default network namespace.\n\nFailing if we attempt to create a socket outside of the default\nnetwork namespace ensures that as we incrementally make the network stack\nnetwork namespace aware we will not export functionality that someone\nhas not audited and made certain is network namespace safe.\nAllowing us to partially enable network namespaces before all of the\nexotic protocols are supported.\n\nAny protocol layers I have missed will fail to compile because I now\npass an extra parameter into the socket creation code.\n\n[ Integrated AF_IUCV build fixes from Andrew Morton... -DaveM ]\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17926a79320afa9b95df6b977b40cca6d8713cea",
      "tree": "5cedff43b69520ad17b86783d3752053686ec99c",
      "parents": [
        "e19dff1fdd99a25819af74cf0710e147fff4fd3a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 26 15:48:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 26 15:48:28 2007 -0700"
      },
      "message": "[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both\n\nProvide AF_RXRPC sockets that can be used to talk to AFS servers, or serve\nanswers to AFS clients.  KerberosIV security is fully supported.  The patches\nand some example test programs can be found in:\n\n\thttp://people.redhat.com/~dhowells/rxrpc/\n\nThis will eventually replace the old implementation of kernel-only RxRPC\ncurrently resident in net/rxrpc/.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eac3731bd04c7131478722a3c148b78774553116",
      "tree": "66c1ce279bbd586e3fcf417cfd6057db3df296ae",
      "parents": [
        "5da5e658debb7deddbfe5c133c76db3be0a3e12c"
      ],
      "author": {
        "name": "Jennifer Hunt",
        "email": "jenhunt@us.ibm.com",
        "time": "Thu Feb 08 13:51:54 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 08 13:51:54 2007 -0800"
      },
      "message": "[S390]: Add AF_IUCV socket support\n\nFrom: Jennifer Hunt \u003cjenhunt@us.ibm.com\u003e\n\nThis patch adds AF_IUCV socket support.\n\nSigned-off-by: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb4db4c22182163f66325053331a4e7096f663cd",
      "tree": "e365f65b1a5a9eb7b6f8f15ede0c5e027d71d43c",
      "parents": [
        "e44c39bd8478bf9e41cbc611c74b5879a7b29f58"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Dec 28 21:21:55 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Dec 31 14:06:49 2006 -0800"
      },
      "message": "[NET]: Don\u0027t export linux/random.h outside __KERNEL__.\n\nDon\u0027t add it there please; add it lower down inside the existing #ifdef\n__KERNEL__. You just made the _userspace_ net.h include random.h, which\nthen fails to compile unless \u003casm/types.h\u003e was already included.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a64b78a077a71c9b9c0c1b0be699083379783c3d",
      "tree": "c91a18fcbde001ddd1b129075446da28a90beb07",
      "parents": [
        "47c183fa5ea7feebc356da8ccbd9105a41f8e534"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:12:29 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:57 2006 -0800"
      },
      "message": "[NET]: Annotate net_srandom().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aaa248f6c9c81b2683db7dbb0689cd5ed1c86d88",
      "tree": "106d9ce5ebac4175b0fb97ff80a92e399fcf2a33",
      "parents": [
        "0187f879ee8d4b914e74ffa3cc5df268311fc2d2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Tue Oct 17 00:09:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:43 2006 -0700"
      },
      "message": "[PATCH] rename net_random to random32\n\nMake net_random() more widely available by calling it random32\n\nakpm: hopefully this will permit the removal of carta_random32.  That needs\nconfirmation from Stephane - this code looks somewhat more computationally\nexpensive, and has a different (ie: callee-stateful) interface.\n\n[akpm@osdl.org: lots of build fixes, cleanups]\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Stephane Eranian \u003ceranian@hpl.hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f0fd27d42e39b91f85e1840ec49b072fd6c545b8",
      "tree": "aa4d1cbe1671507e4d0ec6787076db92a0ee5926",
      "parents": [
        "55737fda0bc73cb20f702301d8b52938a5a43630"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed Aug 09 21:03:17 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:54:20 2006 -0700"
      },
      "message": "[NET]: sock_register interface changes\n\nThe sock_register() doesn\u0027t change the family, so the protocols can\ndefine it read-only.  No caller ever checks return value from\nsock_unregister()\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "757dbb494be3309fe41ce4c62f8057d8b41d8897",
      "tree": "f55c1a64768261d71b7845c33d1984ec78eeea77",
      "parents": [
        "89bddce58e85bb18b13f5077e8349ba9a3ee2597"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed Aug 09 20:50:00 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:54:18 2006 -0700"
      },
      "message": "[NET]: drop unused elements from net_proto_family\n\nThree values in net_proto_family are defined but never used.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac5a488ef252ed673cb067843e411f8cc43f7ab9",
      "tree": "e607478560ed050723fe5e578dc5ede37bedfa93",
      "parents": [
        "b63bbc5006a0a62fabc81c4f77e95f16ff16f340"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "sri@us.ibm.com",
        "time": "Mon Aug 07 20:57:31 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:54:05 2006 -0700"
      },
      "message": "[NET]: Round out in-kernel sockets API\n\nThis patch implements wrapper functions that provide a convenient way\nto access the sockets API for in-kernel users like sunrpc, cifs \u0026\nocfs2 etc and any future users.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "877ce7c1b3afd69a9b1caeb1b9964c992641f52a",
      "tree": "740c6c0d4a2858af53c09c4635cadf06833536c1",
      "parents": [
        "d6b4991ad5d1a9840e12db507be1a6593def01fe"
      ],
      "author": {
        "name": "Catherine Zhang",
        "email": "cxzhang@watson.ibm.com",
        "time": "Thu Jun 29 12:27:47 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:58:06 2006 -0700"
      },
      "message": "[AF_UNIX]: Datagram getpeersec\n\nThis patch implements an API whereby an application can determine the\nlabel of its peer\u0027s Unix datagram sockets via the auxiliary data mechanism of\nrecvmsg.\n\nPatch purpose:\n\nThis patch enables a security-aware application to retrieve the\nsecurity context of the peer of a Unix datagram socket.  The application\ncan then use this security context to determine the security context for\nprocessing on behalf of the peer who sent the packet.\n\nPatch design and implementation:\n\nThe design and implementation is very similar to the UDP case for INET\nsockets.  Basically we build upon the existing Unix domain socket API for\nretrieving user credentials.  Linux offers the API for obtaining user\ncredentials via ancillary messages (i.e., out of band/control messages\nthat are bundled together with a normal message).  To retrieve the security\ncontext, the application first indicates to the kernel such desire by\nsetting the SO_PASSSEC option via getsockopt.  Then the application\nretrieves the security context using the auxiliary data mechanism.\n\nAn example server application for Unix datagram socket should look like this:\n\ntoggle \u003d 1;\ntoggle_len \u003d sizeof(toggle);\n\nsetsockopt(sockfd, SOL_SOCKET, SO_PASSSEC, \u0026toggle, \u0026toggle_len);\nrecvmsg(sockfd, \u0026msg_hdr, 0);\nif (msg_hdr.msg_controllen \u003e sizeof(struct cmsghdr)) {\n    cmsg_hdr \u003d CMSG_FIRSTHDR(\u0026msg_hdr);\n    if (cmsg_hdr-\u003ecmsg_len \u003c\u003d CMSG_LEN(sizeof(scontext)) \u0026\u0026\n        cmsg_hdr-\u003ecmsg_level \u003d\u003d SOL_SOCKET \u0026\u0026\n        cmsg_hdr-\u003ecmsg_type \u003d\u003d SCM_SECURITY) {\n        memcpy(\u0026scontext, CMSG_DATA(cmsg_hdr), sizeof(scontext));\n    }\n}\n\nsock_setsockopt is enhanced with a new socket option SOCK_PASSSEC to allow\na server socket to receive security context of the peer.\n\nTesting:\n\nWe have tested the patch by setting up Unix datagram client and server\napplications.  We verified that the server can retrieve the security context\nusing the auxiliary data mechanism of recvmsg.\n\nSigned-off-by: Catherine Zhang \u003ccxzhang@watson.ibm.com\u003e\nAcked-by: Acked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "eacf17bdbc8e6f24fe46cd7e10fb9a657f060d08",
      "tree": "5452c85230cf326c313773ddfd2ee6dc306331ed",
      "parents": [
        "77597ad663f9e2d40a89c6e27824701bb5fabb83"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Apr 25 14:46:09 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Apr 25 14:46:09 2006 +0100"
      },
      "message": "Don\u0027t include \u003clinux/stringify\u003e from user-visible part of linux/net.h\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "89bbfc95d65839d6ae23ddab8a3cc5af4ae88383",
      "tree": "f2d5e55533f07109680d7ed7e56cc85222703c69",
      "parents": [
        "67b52e554ba973947704fcb4fc284d7bab9ab931"
      ],
      "author": {
        "name": "Shaun Pereira",
        "email": "spereira@tusc.com.au",
        "time": "Tue Mar 21 23:58:08 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 21 23:58:08 2006 -0800"
      },
      "message": "[NET]: allow 32 bit socket ioctl in 64 bit kernel\n\nSince the register_ioctl32_conversion() patch in the kernel is now obsolete,\nprovide another method to allow 32 bit user space ioctls to reach the kernel.\n\nSigned-off-by: Shaun Pereira \u003cspereira@tusc.com.au\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fdadf7d27e3fbcf72930941884387d1f4936f04",
      "tree": "167072cf1e60b6b307610563614b435ff0caa52d",
      "parents": [
        "c750360938b403e6cc193d293cfbcb099dd6c60e"
      ],
      "author": {
        "name": "Dmitry Mishin",
        "email": "dim@openvz.org",
        "time": "Mon Mar 20 22:45:21 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:45:21 2006 -0800"
      },
      "message": "[NET]: {get|set}sockopt compatibility layer\n\nThis patch extends {get|set}sockopt compatibility layer in order to\nmove protocol specific parts to their place and avoid huge universal\nnet/compat.c file in the future.\n\nSigned-off-by: Dmitry Mishin \u003cdim@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "90ddc4f0470427df306f308ad03db6b6b21644b8",
      "tree": "f97c1d57b25585394ebbd4b42b8d42a339f98644",
      "parents": [
        "77d76ea310b50a9c8ff15bd290fcb4ed4961adf2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Dec 22 12:49:22 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:11:15 2006 -0800"
      },
      "message": "[NET]: move struct proto_ops to const\n\nI noticed that some of \u0027struct proto_ops\u0027 used in the kernel may share\na cache line used by locks or other heavily modified data. (default\nlinker alignement is 32 bytes, and L1_CACHE_LINE is 64 or 128 at\nleast)\n\nThis patch makes sure a \u0027struct proto_ops\u0027 can be declared as const,\nso that all cpus can share all parts of it without false sharing.\n\nThis is not mandatory : a driver can still use a read/write structure\nif it needs to (and eventually a __read_mostly)\n\nI made a global stubstitute to change all existing occurences to make\nthem const.\n\nThis should reduce the possibility of false sharing on SMP, and\nspeedup some socket system calls.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f2709b542c96a2b1910ca5f2fe27dc9023b1225",
      "tree": "2c1b38ee2b0f203322f01e2816644d16b63a71f1",
      "parents": [
        "6c8bec6d5f24b01c53b792b06a645e78d482020d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:05 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] kernel-doc: fix some kernel-api warnings\n\nFix various warnings in kernel-doc:\n\nWarning(linux-2614-rc4//include/linux/net.h:89): Enum value \u0027SOCK_DCCP\u0027 not described in enum \u0027sock_type\u0027\n\nusercopy.c: should use !E instead of !I for exported symbols:\nWarning(linux-2614-rc4//arch/i386/lib/usercopy.c): no structured comments found\n\nfs.h does not need to use !E since it has no exported symbols:\nWarning(linux-2614-rc4//include/linux/fs.h:1182): No description found for parameter \u0027find_exported_dentry\u0027\nWarning(linux-2614-rc4//include/linux/fs.h): no structured comments found\n\nirq/manage.c should use !E for its exported symbols:\nWarning(linux-2614-rc4//kernel/irq/manage.c): no structured comments found\n\nmacmodes.c should use !E for its exported symbols:\nWarning(linux-2614-rc4//drivers/video/macmodes.c): no structured comments found\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20380731bc2897f2952ae055420972ded4cd786e",
      "tree": "abd31e5ebfadcf4f9024634eec8b11855029e512",
      "parents": [
        "9deff7f2365958c5c5aa8cb5a0dd651c4dd83f8f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 16 02:18:02 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:32 2005 -0700"
      },
      "message": "[NET]: Fix sparse warnings\n\nOf this type, mostly:\n\nCHECK   net/ipv6/netfilter.c\nnet/ipv6/netfilter.c:96:12: warning: symbol \u0027ipv6_netfilter_init\u0027 was not declared. Should it be static?\nnet/ipv6/netfilter.c:101:6: warning: symbol \u0027ipv6_netfilter_fini\u0027 was not declared. Should it be static?\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c657876b63cb1d8a2ec06f8fc6c37bb8412e66c",
      "tree": "3cb2732870c9cf8f976cb6fa57e0223f1c648e2a",
      "parents": [
        "c4365c9235f80128c3c3d5993074173941b1c1f0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:14:34 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:46 2005 -0700"
      },
      "message": "[DCCP]: Initial implementation\n\nDevelopment to this point was done on a subversion repository at:\n\nhttp://oops.ghostprotocols.net:81/cgi-bin/viewcvs.cgi/dccp-2.6/\n\nThis repository will be kept at this site for the foreseable future,\nso that interested parties can see the history of this code,\nattributions, etc.\n\nIf I ever decide to take this offline I\u0027ll provide the full history at\nsome other suitable place.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fdb3bb723db469717c6d38fda667d8b0fa86ebd",
      "tree": "43d82e717922e6319cf8a8f9dc5ee902c651b491",
      "parents": [
        "020b4c12dbe3868d792a01d7c1470cd837abe10f"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@netfilter.org",
        "time": "Tue Aug 09 19:40:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:35:08 2005 -0700"
      },
      "message": "[NETLINK]: Add properly module refcounting for kernel netlink sockets.\n\n- Remove bogus code for compiling netlink as module\n- Add module refcounting support for modules implementing a netlink\n  protocol\n- Add support for autoloading modules that implement a netlink protocol\n  as soon as someone opens a socket for that protocol\n\nSigned-off-by: Harald Welte \u003claforge@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "deaf2622bdc74270381873c7936c91500c683853",
      "tree": "24bb3032e728acc985c313537064c1d0b9aeee59",
      "parents": [
        "15333038d577b0c0255c0f14a38d9e6895937453"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 23 12:45:26 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 23 12:45:26 2005 -0700"
      },
      "message": "[NET]: Kill stray reference to sock-\u003epasscred.\n\nThat struct member was deleted, but a comment\nwas not updated to reflect this.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e"
    },
    {
      "commit": "02c30a84e6298b6b20a56f0896ac80b47839e134",
      "tree": "031e9d68ad83c371af7ebeb6840f3ede52698663",
      "parents": [
        "125947f2ab8c45417feaa4a8800e89529ca4612f"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu May 05 16:16:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:49 2005 -0700"
      },
      "message": "[PATCH] update Ross Biro bouncing email address\n\nRoss moved.  Remove the bad email address so people will find the correct\none in ./CREDITS.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4dc3b16ba18c0f967ad100c52fa65b01a4f76ff0",
      "tree": "fa038ad8969980eec6cef5b737872fda9feb4c6a",
      "parents": [
        "333f981720d619e2038b980a55ad01b10580eb9f"
      ],
      "author": {
        "name": "Pavel Pisa",
        "email": "pisa@cmp.felk.cvut.cz",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "message": "[PATCH] DocBook: changes and extensions to the kernel documentation\n\nI have recompiled Linux kernel 2.6.11.5 documentation for me and our\nuniversity students again.  The documentation could be extended for more\nsources which are equipped by structured comments for recent 2.6 kernels.  I\nhave tried to proceed with that task.  I have done that more times from 2.6.0\ntime and it gets boring to do same changes again and again.  Linux kernel\ncompiles after changes for i386 and ARM targets.  I have added references to\nsome more files into kernel-api book, I have added some section names as well.\n So please, check that changes do not break something and that categories are\nnot too much skewed.\n\nI have changed kernel-doc to accept \"fastcall\" and \"asmlinkage\" words reserved\nby kernel convention.  Most of the other changes are modifications in the\ncomments to make kernel-doc happy, accept some parameters description and do\nnot bail out on errors.  Changed \u003cpid\u003e to @pid in the description, moved some\n#ifdef before comments to correct function to comments bindings, etc.\n\nYou can see result of the modified documentation build at\n  http://cmp.felk.cvut.cz/~pisa/linux/lkdb-2.6.11.tar.gz\n\nSome more sources are ready to be included into kernel-doc generated\ndocumentation.  Sources has been added into kernel-api for now.  Some more\nsection names added and probably some more chaos introduced as result of quick\ncleanup work.\n\nSigned-off-by: Pavel Pisa \u003cpisa@cmp.felk.cvut.cz\u003e\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
