)]}'
{
  "log": [
    {
      "commit": "f23513e8d96cf5e6cf8d2ff0cb5dd6bbc33995e4",
      "tree": "6efce8fb88308ae4f4a65cc35a3669f32ff55248",
      "parents": [
        "4a2d44590a603be292addce9c263982043416666"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Sun Jul 15 23:40:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "Introduce O_CLOEXEC\n\nThe problem is as follows: in multi-threaded code (or more correctly: all\ncode using clone() with CLONE_FILES) we have a race when exec\u0027ing.\n\n   thread #1                       thread #2\n\n   fd\u003dopen()\n\n                                   fork + exec\n\n  fcntl(fd,F_SETFD,FD_CLOEXEC)\n\nIn some applications this can happen frequently.  Take a web browser.  One\nthread opens a file and another thread starts, say, an external PDF viewer.\n The result can even be a security issue if that open file descriptor\nrefers to a sensitive file and the external program can somehow be tricked\ninto using that descriptor.\n\nJust adding O_CLOEXEC support to open() doesn\u0027t solve the whole set of\nproblems.  There are other ways to create file descriptors (socket,\nepoll_create, Unix domain socket transfer, etc).  These can and should be\naddressed separately though.  open() is such an easy case that it makes not\nmuch sense putting the fix off.\n\nThe test program:\n\n#include \u003cerrno.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n\n#ifndef O_CLOEXEC\n# define O_CLOEXEC 02000000\n#endif\n\nint\nmain (int argc, char *argv[])\n{\n  int fd;\n  if (argc \u003e 1)\n    {\n      fd \u003d atol (argv[1]);\n      printf (\"child: fd \u003d %d\\n\", fd);\n      if (fcntl (fd, F_GETFD) \u003d\u003d 0 || errno !\u003d EBADF)\n        {\n          puts (\"file descriptor valid in child\");\n          return 1;\n        }\n      return 0;\n    }\n\n  fd \u003d open (\"/proc/self/exe\", O_RDONLY | O_CLOEXEC);\n  printf (\"in parent: new fd \u003d %d\\n\", fd);\n  char buf[20];\n  snprintf (buf, sizeof (buf), \"%d\", fd);\n  execl (\"/proc/self/exe\", argv[0], buf, NULL);\n  puts (\"execl failed\");\n  return 1;\n}\n\n[kyle@parisc-linux.org: parisc fix]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nAcked-by: 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": "c5c061b8f9726bc2c25e19dec227933a13d1e6b7",
      "tree": "e99f68f70df1a01dd383007895befd114a1da8c4",
      "parents": [
        "e0807061908a7a9441d0f745deb444f7216904cb"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Sun Jul 15 23:40:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "Add a flag to indicate deferrable timers in /proc/timer_stats\n\nAdd a flag in /proc/timer_stats to indicate deferrable timers.  This will\nlet developers/users to differentiate between types of tiemrs in\n/proc/timer_stats.\n\nDeferrable timer and normal timer will appear in /proc/timer_stats as below.\n  10D,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)\n   10,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)\n\nAlso version of timer_stats changes from v0.1 to v0.2\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0807061908a7a9441d0f745deb444f7216904cb",
      "tree": "f07a5ec75bf4c48ed54106b7e0ee9b8bb13c9fcd",
      "parents": [
        "1b0fac45878bb88759eec347c273285195649ff7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Jul 15 23:40:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "remove odd and misleading comments from uio.h\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b0fac45878bb88759eec347c273285195649ff7",
      "tree": "a9871a47ef98c90bac3f65a7f9309e87420c694c",
      "parents": [
        "9e7bf24b1b979db256ddc84d0d4ac6040d706da6"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Sun Jul 15 23:40:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs\n\nContinuing the work started in 411f0f3edc141a582190d3605cadd1d993abb6df ...\n\nThis enables code with a dma path, that compiles away, to build without\nrequiring additional code factoring.  It also prevents code that calls\ndma_alloc_coherent and dma_free_coherent from linking whereas previously\nthe code would hit a BUG() at run time.  Finally, it allows archs that set\n!HAS_DMA to delete their asm/dma-mapping.h file.\n\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \u003cgeert@linux-m68k.org\u003e\nCc: \u003czippel@linux-m68k.org\u003e\nCc: \u003cspyro@f2s.com\u003e\nCc: \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e7bf24b1b979db256ddc84d0d4ac6040d706da6",
      "tree": "edb5aed9b2f8c2001d8dd11de1e505b87893965d",
      "parents": [
        "e84845c4bf9a00533352e5805b35f42acdb04a1e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 15 23:40:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "fs: clarify \"dummy\" member in struct inodes_stat_t\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8d6c554126b830217c5e9f549e0e21f865a0a8a",
      "tree": "c43219c6ef4e6a9b4f0ac46d6bd8b675dc249a8b",
      "parents": [
        "b0fed3140f57c435d2783b698c5090f325c22bad"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jul 15 23:40:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:43 2007 -0700"
      },
      "message": "AFS: implement file locking\n\nImplement file locking for AFS.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a3021f4e249fbdb5f30d614707b5e02022e4c9b",
      "tree": "c01b80fa03dbb4a853b46f182864384736a54088",
      "parents": [
        "9aacd599342fdfc1fb9422f37e900609b7a46249"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sun Jul 15 23:39:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:42 2007 -0700"
      },
      "message": "Remove unnecessary includes of spinlock.h under include/linux\n\nRemove the obviously unnecessary includes of \u003clinux/spinlock.h\u003e under the\ninclude/linux/ directory, and fix the couple errors that are introduced as\na result of that.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9aacd599342fdfc1fb9422f37e900609b7a46249",
      "tree": "45c835330122496dfd51b946890ce8580d854173",
      "parents": [
        "259902ea951008bcbd31a49f667062ff8012ef55"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jul 15 23:39:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:42 2007 -0700"
      },
      "message": "fat: gcc 4.3 warning fix\n\nThis patch fixes the following warnings.\n\nfs/fat/dir.c: In function \u0027fat_parse_long\u0027:\ninclude/linux/msdos_fs.h:294: warning: array subscript is above array bounds\ninclude/linux/msdos_fs.h:295: warning: array subscript is above array bounds\ninclude/linux/msdos_fs.h:295: warning: array subscript is above array bounds\n\nThe -\u003ename is defined as \"name[8], ext[3]\", but fat_checksum() uses\nthose as name[11]. There is no actual problem, but it\u0027s not a good manner.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c67ad917cbf21b2862e2cf8e8b28339872ef7927",
      "tree": "362d8cf8668998b8cd5deb611693f584b8df5ee5",
      "parents": [
        "85420ccad1610f123365eec89848ef25641bc6b7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sun Jul 15 23:39:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "percpu_counters(): use cpu notifiers\n\nper-cpu counters presently must iterate over all possible CPUs in the\nexhaustive percpu_counter_sum().\n\nBut it can be much better to only iterate over the presently-online CPUs.  To\ndo this, we must arrange for an offlined CPU\u0027s count to be spilled into the\ncounter\u0027s central count.\n\nWe can do this for all percpu_counters in the machine by linking them into a\nsingle global list and walking that list at CPU_DEAD time.\n\n(I hope.  Might have race windows in which the percpu_counter_sum() count is\ninaccurate?)\n\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21f3da95daed2d0f0c28cc4ef8b1103fbfb7bded",
      "tree": "858c61212662b1b476bbdefe0eb8de69328a47db",
      "parents": [
        "9ac162521cd9796f44d263a61090634844c719a6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sun Jul 15 23:39:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "fuse warning fix\n\ngcc-4.3:\n\nfs/fuse/dir.c: In function \u0027parse_dirfile\u0027:\nfs/fuse/dir.c:833: warning: cast from pointer to integer of different size\nfs/fuse/dir.c:835: warning: cast from pointer to integer of different size\n\n[miklos@szeredi.hu: use offsetof]\nAcked-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ac162521cd9796f44d263a61090634844c719a6",
      "tree": "5988aba4299002ea4a425f747a275d29cb9dd3c5",
      "parents": [
        "1c6b4aa94576eee6dec3b8011f60d7f666db90b0"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Sun Jul 15 23:39:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "Use mutexes instead of semaphores in I2O driver\n\nThe I2O driver uses two semaphores as mutexes.  Use the mutex API instead of\nthe (binary) semaphores.\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@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": "9c1729db3e6d738f872bcb090212af00473bf666",
      "tree": "be68b99784607953fb50d9330d34c2728215be57",
      "parents": [
        "c9c64155f5a81b4b41e98f9fb9c464a565c1bf72"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Sun Jul 15 23:39:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "Prevent an O_NDELAY writer from blocking when a tty write is blocked by the tty atomic writer mutex\n\nWithout this a tty write could block if a previous blocking tty write was\nin progress on the same tty and blocked by a line discipline or hardware\nevent.  Originally found and reported by Dave Johnson.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nAcked-by: Dave Johnson \u003cdjohnson+linux-kernel@sw.starentnetworks.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "924b42d5a2dbe508407a0a6290d3751f826bccdd",
      "tree": "c13a647ae93bcf033bddb713c1e117e84698c679",
      "parents": [
        "7c3f1a573237b90ef331267260358a0ec4ac9079"
      ],
      "author": {
        "name": "Tomas Janousek",
        "email": "tjanouse@redhat.com",
        "time": "Sun Jul 15 23:39:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "Use boot based time for process start time and boot time in /proc\n\nCommit 411187fb05cd11676b0979d9fbf3291db69dbce2 caused boot time to move and\nprocess start times to become invalid after suspend.  Using boot based time\nfor those restores the old behaviour and fixes the issue.\n\n[akpm@linux-foundation.org: little cleanup]\nSigned-off-by: Tomas Janousek \u003ctjanouse@redhat.com\u003e\nCc: Tomas Smetana \u003ctsmetana@redhat.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c3f1a573237b90ef331267260358a0ec4ac9079",
      "tree": "f308047c4f40022d4b8f7226fba73b067dcd2d70",
      "parents": [
        "35ef63f635aa0e414ad6cdb2a4092e1caf99272c"
      ],
      "author": {
        "name": "Tomas Janousek",
        "email": "tjanouse@redhat.com",
        "time": "Sun Jul 15 23:39:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "Introduce boot based time\n\nThe commits\n\n  411187fb05cd11676b0979d9fbf3291db69dbce2 (GTOD: persistent clock support)\n  c1d370e167d66b10bca3b602d3740405469383de (i386: use GTOD persistent clock\n    support)\n\nchanged the monotonic time so that it no longer jumps after resume, but it\u0027s\nnot possible to use it for boot time and process start time calculations then.\n Also, the uptime no longer increases during suspend.\n\nI add a variable to track the wall_to_monotonic changes, a function to get the\nreal boot time and a function to get the boot based time from the monotonic\none.\n\n[akpm@linux-foundation.org: remove exports, add comment]\nSigned-off-by: Tomas Janousek \u003ctjanouse@redhat.com\u003e\nCc: Tomas Smetana \u003ctsmetana@redhat.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed4aaadb1a7913f509f05d3e67840541a180713f",
      "tree": "7089fd2fe0f56d552ea153e2925363d0febaa952",
      "parents": [
        "012bfdf00ce2f36a1add75a0d18303656c6294ef"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin_zhang@linux.intel.com",
        "time": "Sun Jul 15 23:39:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:40 2007 -0700"
      },
      "message": "fix jvc cdrom drive lockup\n\nBefore calling init_hwif_default, ide_unregister gets lock ide_lock and\ndisables irq.  init_hwif_default calls ide_default_io_base which calls\npci_get_device and later pci_get_subsys tries to apply for semaphore\npci_bus_sem and goes to sleep.\n\nMostly, pci_get_device should be called when irq is turned on.\n\nide_default_io_base just needs find if list pci_devices is empty.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@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": "e1f4a88c5a15a86124a95ea712213bb7dab2ad99",
      "tree": "7ec29d5eb850629ee11c2ec8cc467877430e9039",
      "parents": [
        "b5d425c97f7d4e92151167b01ca038e7853c6b37"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Sun Jul 15 23:39:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:40 2007 -0700"
      },
      "message": "introduce write_trylock_irqsave()\n\nIntroduce a write_trylock_irqsave() implementation.  Similar in style to\nthe implementation of spin_trylock_irqsave() in mainline.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "786d7e1612f0b0adb6046f19b906609e4fe8b1ba",
      "tree": "9d5f1623c19c9d3f84606ea160d57cd3c8c97ea9",
      "parents": [
        "5568b0e8028d966ddb16f0be44a9df1fcbd1dc8d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Sun Jul 15 23:39:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:39 2007 -0700"
      },
      "message": "Fix rmmod/read/write races in /proc entries\n\nFix following races:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n1. Write via -\u003ewrite_proc sleeps in copy_from_user(). Module disappears\n   meanwhile. Or, more generically, system call done on /proc file, method\n   supplied by module is called, module dissapeares meanwhile.\n\n   pde \u003d create_proc_entry()\n   if (!pde)\n\treturn -ENOMEM;\n   pde-\u003ewrite_proc \u003d ...\n\t\t\t\topen\n\t\t\t\twrite\n\t\t\t\tcopy_from_user\n   pde \u003d create_proc_entry();\n   if (!pde) {\n\tremove_proc_entry();\n\treturn -ENOMEM;\n\t/* module unloaded */\n   }\n\t\t\t\t*boom*\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2. bogo-revoke aka proc_kill_inodes()\n\n  remove_proc_entry\t\tvfs_read\n  proc_kill_inodes\t\t[check -\u003ef_op validness]\n\t\t\t\t[check -\u003ef_op-\u003eread validness]\n\t\t\t\t[verify_area, security permissions checks]\n\t-\u003ef_op \u003d NULL;\n\t\t\t\tif (file-\u003ef_op-\u003eread)\n\t\t\t\t\t/* -\u003ef_op dereference, boom */\n\nNOTE, NOTE, NOTE: file_operations are proxied for regular files only. Let\u0027s\nsee how this scheme behaves, then extend if needed for directories.\nDirectories creators in /proc only set -\u003eowner for them, so proxying for\ndirectories may be unneeded.\n\nNOTE, NOTE, NOTE: methods being proxied are -\u003ellseek, -\u003eread, -\u003ewrite,\n-\u003epoll, -\u003eunlocked_ioctl, -\u003eioctl, -\u003ecompat_ioctl, -\u003eopen, -\u003erelease.\nIf your in-tree module uses something else, yell on me. Full audit pending.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5568b0e8028d966ddb16f0be44a9df1fcbd1dc8d",
      "tree": "0fcc6aa4f0f3c5cc13aa7431b1349c0b885e842d",
      "parents": [
        "23f465b72872a99ffa60e13f5876fcf2ee139f26"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Jul 15 23:38:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:39 2007 -0700"
      },
      "message": "v850: enable arbitary speed tty ioctls\n\nAdding the defines/macros activates the existing code in the tty layer\nand allows this platform to use the arbitary speed ioctl setting layer\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18eecb8b35703a5eea73ee2b45324262029e62c",
      "tree": "8c276ae6633b8116ca366274091b00491fd50bbe",
      "parents": [
        "84812217e395f5272eac36856c0a2415d61fe139"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "Add generic exit-time stack-depth checking to CONFIG_DEBUG_STACK_USAGE\n\nAdd generic exit-time stack-depth checking to CONFIG_DEBUG_STACK_USAGE.\n\nThis also adds UML support.\n\nTested on UML and i386.\n\n[akpm@linux-foundation.org: cleanups, speedups, tweaks]\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84812217e395f5272eac36856c0a2415d61fe139",
      "tree": "703a67a6f81c51bc7455fe36565a34722e2f9e26",
      "parents": [
        "0a6d3a2a3813e7b25267366cfbf9a4a4698dd1c2"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: use get_free_pages to allocate kernel stacks\n\nFor some reason, I was using kmalloc instead of get_free_pages for kernel\nstacks.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e30afd5119f5a3684e4e5e66bbaeb9c8d2c814be",
      "tree": "76a61242f4674a2810f299b7f3c51ac801e18b32",
      "parents": [
        "c12a54b3af795dccb39c303e23073c931fe6f1b6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Jul 15 23:38:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "etrax: enable arbitary speed setting on tty ports\n\nAdd the needed constants and bits. The actual code is already in the tty\nlayer and turned on by the definitions\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86245b8507ce901c0152ec98a26832434c93262b",
      "tree": "440a9463bdb9a338b9b96fd07c42e7e819d3f9b3",
      "parents": [
        "f47807f359974a8fbb13d850da403be9af885f6e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Jul 15 23:38:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "m32r: enable arbitary speed tty rate setting\n\nAdd the defines and constants needed for the M32R platform to support the\narbitary speed tty ioctls.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "787ea0ef70d65f71a667ed686f2f28d63ef9a217",
      "tree": "087eb3d105b399ec8154461a6c852b2e10aebb42",
      "parents": [
        "5c6af69abe9436c33b82a13623b38a4cc51e6464"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Jul 15 23:38:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "ARM26: enable arbitary speed tty ioctls and split input/output speed\n\nAdd the ioctls and values needed for this to the ARM26/ARM32 ports.  The\nactual code has been in the base kernel for a while and automatically turns\non when a port sets the required defines.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c6af69abe9436c33b82a13623b38a4cc51e6464",
      "tree": "1104c8392b17bd3132ada20ced79efff593261a2",
      "parents": [
        "ebaf4fc13e293dcafbb13c91aae2a45722652740"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Sun Jul 15 23:38:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:37 2007 -0700"
      },
      "message": "fix alpha ISA support\n\nisa_bus_to_virt() is still needed in a few places (lance.c, at least).  When\nwe switch the kernel to using -Werror-implicit-function-declaration, the lack\nof isa_bus_to_virt() breaks alpha allmodconfig builds.\n\nAdd isa_bus_to_virt() and deprecate the ezisting ISA APIs, though it might be\nbetter to define these functions as BUG(), since virt_to_bus/bus_to_virt just\ndo wrong things on a number of machines.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2fea299f74c846157b068be8ae15b406db0719d9",
      "tree": "649ee49eb7568927f2379f9ea2d213f2ec40e873",
      "parents": [
        "542f739d12159e3198611aa471359cc63600be1a"
      ],
      "author": {
        "name": "Yoshinori Sato",
        "email": "ysato@users.sourceforge.jp",
        "time": "Sun Jul 15 23:38:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:37 2007 -0700"
      },
      "message": "h8300 entry.S update\n\nSigned-off-by: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f79224ca2754e903b695bd91176a9bedbb306324",
      "tree": "e011c679e4a0e9b1f6e19c894a859a0ed0beae59",
      "parents": [
        "17d8725d36c1f3d6a21a2d3f96875bda8ddfa92c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Jul 15 23:38:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:37 2007 -0700"
      },
      "message": "h8300: enable arbitary speed tty port setup\n\nAdd the needed constants and defines to activate the new tty code on this\nplatform\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1a39e050548d23b28f7e62f47e08b46afff29e2",
      "tree": "ea642b5684559d865c16304c3dbf60069f90fcd1",
      "parents": [
        "0165ab443556bdfad388da6c33d74a71b77d72b2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jul 15 23:38:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:37 2007 -0700"
      },
      "message": "FRV: Connect up new syscalls\n\nConnect up new system calls.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0165ab443556bdfad388da6c33d74a71b77d72b2",
      "tree": "c2449128f60ebed846b7d63633ccee3f88949a1c",
      "parents": [
        "c44939ecb6e05aeaaf12d4e1bb046719c97e457e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Sun Jul 15 23:38:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:37 2007 -0700"
      },
      "message": "split mmap\n\nThis is a straightforward split of do_mmap_pgoff() into two functions:\n\n - do_mmap_pgoff() checks the parameters, and calculates the vma\n   flags.  Then it calls\n\n - mmap_region(), which does the actual mapping\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6193a2ff180920f84ee06977165ebf32431fc2d2",
      "tree": "d3c6423c50463ea741080a58a2e654cf103431f3",
      "parents": [
        "f7977793240d836e60ff413e94e6914f08e10941"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sun Jul 15 23:38:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "slob: initial NUMA support\n\nThis adds preliminary NUMA support to SLOB, primarily aimed at systems with\nsmall nodes (tested all the way down to a 128kB SRAM block), whether\nasymmetric or otherwise.\n\nWe follow the same conventions as SLAB/SLUB, preferring current node\nplacement for new pages, or with explicit placement, if a node has been\nspecified.  Presently on UP NUMA this has the side-effect of preferring\nnode#0 allocations (since numa_node_id() \u003d\u003d 0, though this could be\nreworked if we could hand off a pfn to determine node placement), so\nsingle-CPU NUMA systems will want to place smaller nodes further out in\nterms of node id.  Once a page has been bound to a node (via explicit node\nid typing), we only do block allocations from partial free pages that have\na matching node id in the page flags.\n\nThe current implementation does have some scalability problems, in that all\npartial free pages are tracked in the global freelist (with contention due\nto the single spinlock).  However, these are things that are being reworked\nfor SMP scalability first, while things like per-node freelists can easily\nbe built on top of this sort of functionality once it\u0027s been added.\n\nMore background can be found in:\n\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d118117916022379\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d118170446306199\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d118187859420048\u0026w\u003d2\n\nand subsequent threads.\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f0accc8627043702e6ea2bb8b9aa3a171ef8393",
      "tree": "94aaf1cdf099c7e875231b1d9575727b8e14f7f2",
      "parents": [
        "45e98cdb6d365b34b7a2d849e4d8bdc264d8e6e4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sun Jul 15 23:38:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "kill vmalloc_earlyreserve\n\nThis symbol got orphaned quite a while ago.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45e98cdb6d365b34b7a2d849e4d8bdc264d8e6e4",
      "tree": "172a959293a2c31691a162eca6af131e3ac89da2",
      "parents": [
        "98011f569e2ae1e4ae394f6e23faa16676d50de4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sun Jul 15 23:38:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "page table handling cleanup\n\nKill pte_rdprotect(), pte_exprotect(), pte_mkread(), pte_mkexec(), pte_read(),\npte_exec(), and pte_user() except where arch-specific code is making use of\nthem.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc9a07e7bf1a76e710f5df017abb07628db1781d",
      "tree": "bf2a288f97cbf9cfd82a4306a7d9c615abc7c887",
      "parents": [
        "45426812d6b601430d560cb6049757b5b0bc71c4"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sun Jul 15 23:38:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "invalidate_mapping_pages(): add cond_resched\n\ninvalidate_mapping_pages() can sometimes take a long time (millions of pages\nto free).  Long enough for the softlockup detector to trigger.\n\nWe used to have a cond_resched() in there but I took it out because the\ndrop_caches code calls invalidate_mapping_pages() under inode_lock.\n\nThe patch adds a nasty flag and puts the cond_resched() back.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "698827fa9f45019df1609bb686bc51c94e127fbc",
      "tree": "a9442084870358b53d27213483679dc90fa74a2a",
      "parents": [
        "1037b83bd04e31449dc9323f1e8ddada4264ef66"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sun Jul 15 23:38:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "Remove the deprecated \"kmem_cache_t\" typedef from slab.h.\n\nGiven that there is no remaining usage of the deprecated kmem_cache_t\ntypedef anywhere in the tree, remove that typedef.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0c0b2b808f232741eadac272bd4bc51f18df0f4",
      "tree": "c2568efdc496cc165a4e72d8aa2542b22035e342",
      "parents": [
        "18a8bd949d6adb311ea816125ff65050df1f3f6e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sun Jul 15 23:38:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "change zonelist order: zonelist order selection logic\n\nMake zonelist creation policy selectable from sysctl/boot option v6.\n\nThis patch makes NUMA\u0027s zonelist (of pgdat) order selectable.\nAvailable order are Default(automatic)/ Node-based / Zone-based.\n\n[Default Order]\nThe kernel selects Node-based or Zone-based order automatically.\n\n[Node-based Order]\nThis policy treats the locality of memory as the most important parameter.\nZonelist order is created by each zone\u0027s locality. This means lower zones\n(ex. ZONE_DMA) can be used before higher zone (ex. ZONE_NORMAL) exhausion.\nIOW. ZONE_DMA will be in the middle of zonelist.\ncurrent 2.6.21 kernel uses this.\n\nPros.\n * A user can expect local memory as much as possible.\nCons.\n * lower zone will be exhansted before higher zone. This may cause OOM_KILL.\n\nMaybe suitable if ZONE_DMA is relatively big and you never see OOM_KILL\nbecause of ZONE_DMA exhaution and you need the best locality.\n\n(example)\nassume 2 node NUMA. node(0) has ZONE_DMA/ZONE_NORMAL, node(1) has ZONE_NORMAL.\n\n*node(0)\u0027s memory allocation order:\n\n node(0)\u0027s NORMAL -\u003e node(0)\u0027s DMA -\u003e node(1)\u0027s NORMAL.\n\n*node(1)\u0027s memory allocation order:\n\n node(1)\u0027s NORMAL -\u003e node(0)\u0027s NORMAL -\u003e node(0)\u0027s DMA.\n\n[Zone-based order]\nThis policy treats the zone type as the most important parameter.\nZonelist order is created by zone-type order. This means lower zone\nnever be used bofere higher zone exhaustion.\nIOW. ZONE_DMA will be always at the tail of zonelist.\n\nPros.\n * OOM_KILL(bacause of lower zone) occurs only if the whole zones are exhausted.\nCons.\n * memory locality may not be best.\n\n(example)\nassume 2 node NUMA. node(0) has ZONE_DMA/ZONE_NORMAL, node(1) has ZONE_NORMAL.\n\n*node(0)\u0027s memory allocation order:\n\n node(0)\u0027s NORMAL -\u003e node(1)\u0027s NORMAL -\u003e node(0)\u0027s DMA.\n\n*node(1)\u0027s memory allocation order:\n\n node(1)\u0027s NORMAL -\u003e node(0)\u0027s NORMAL -\u003e node(0)\u0027s DMA.\n\nbootoption \"numa_zonelist_order\u003d\" and proc/sysctl is supporetd.\n\ncommand:\n%echo N \u003e /proc/sys/vm/numa_zonelist_order\n\nWill rebuild zonelist in Node-based order.\n\ncommand:\n%echo Z \u003e /proc/sys/vm/numa_zonelist_order\n\nWill rebuild zonelist in Zone-based order.\n\nThanks to Lee Schermerhorn, he gives me much help and codes.\n\n[Lee.Schermerhorn@hp.com: add check_highest_zone to build_zonelists_in_zone_order]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"jesse.barnes@intel.com\" \u003cjesse.barnes@intel.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18a8bd949d6adb311ea816125ff65050df1f3f6e",
      "tree": "4365db908430747a5c08cacdb4354577b7bfead7",
      "parents": [
        "b1c931e39327ef121797927d4b3198d370e75b9b"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "Yinghai.Lu@Sun.COM",
        "time": "Sun Jul 15 23:37:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "serial: convert early_uart to earlycon for 8250\n\nBeacuse SERIAL_PORT_DFNS is removed from include/asm-i386/serial.h and\ninclude/asm-x86_64/serial.h.  the serial8250_ports need to be probed late in\nserial initializing stage.  the console_init\u003d\u003eserial8250_console_init\u003d\u003e\nregister_console\u003d\u003eserial8250_console_setup will return -ENDEV, and console\nttyS0 can not be enabled at that time.  need to wait till uart_add_one_port in\ndrivers/serial/serial_core.c to call register_console to get console ttyS0.\nthat is too late.\n\nMake early_uart to use early_param, so uart console can be used earlier.  Make\nit to be bootconsole with CON_BOOT flag, so can use console handover feature.\nand it will switch to corresponding normal serial console automatically.\n\nnew command line will be:\n\tconsole\u003duart8250,io,0x3f8,9600n8\n\tconsole\u003duart8250,mmio,0xff5e0000,115200n8\nor\n\tearlycon\u003duart8250,io,0x3f8,9600n8\n\tearlycon\u003duart8250,mmio,0xff5e0000,115200n8\n\nit will print in very early stage:\n\tEarly serial console at I/O port 0x3f8 (options \u00279600n8\u0027)\n\tconsole [uart0] enabled\nlater for console it will print:\n\tconsole handover: boot [uart0] -\u003e real [ttyS0]\n\nSigned-off-by: \u003cyinghai.lu@sun.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23936cc0b5d89619c34c2dab11d8cf3d6f7ca028",
      "tree": "506ec36cc37d3bc7dbf0ca68d1b271f9247fa458",
      "parents": [
        "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8"
      ],
      "author": {
        "name": "Kristian Hoegsberg",
        "email": "krh@redhat.com",
        "time": "Sun Jul 15 23:37:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "lib: add idr_remove_all\n\nRemove all ids from the given idr tree.  idr_destroy() only frees up\nunused, cached idp_layers, but this function will remove all id mappings\nand leave all idp_layers unused.\n\nA typical clean-up sequence for objects stored in an idr tree, will use\nidr_for_each() to free all objects, if necessay, then idr_remove_all() to\nremove all ids, and idr_destroy() to free up the cached idr_layers.\n\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8",
      "tree": "ba8a8200bda4576e1e4dcce2ff27a7a7a94723a2",
      "parents": [
        "de7d4f0e1172a72277d660fa0be59654ea02bed0"
      ],
      "author": {
        "name": "Kristian Hoegsberg",
        "email": "krh@redhat.com",
        "time": "Sun Jul 15 23:37:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "lib: add idr_for_each()\n\nThis patch adds an iterator function for the idr data structure.  Compared\nto just iterating through the idr with an integer and idr_find, this\niterator is (almost, but not quite) linear in the number of elements, as\nopposed to the number of integers in the range covered by the idr.  This\nmakes a difference for sparse idrs, but more importantly, it\u0027s a nicer way\nto iterate through the elements.\n\nThe drm subsystem is moving to idr for tracking contexts and drawables, and\nwith this change, we can use the idr exclusively for tracking these\nresources.\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2a11b158a24301e9158e9c873fa88e5eb775486",
      "tree": "b8abed0086ad13c2b3b8f5760dd86670defa97ac",
      "parents": [
        "248a9dc32a24a80cd13a1be66dae099d97381155"
      ],
      "author": {
        "name": "Nitin Gupta",
        "email": "nitingupta910@gmail.com",
        "time": "Sun Jul 15 23:37:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "LZO1X: fix lzo1x_worst_compress\n\nThis is a correction for a macro which gives worst case compressed data\nsize by LZO1X.\n\nThis patch was provided by the LZO author (Markus Oberhumer).\n\nSigned-off-by: Nitin Gupta \u003cnitingupta910@gmail.com\u003e\nCc: \"Markus F.X.J. Oberhumer\" \u003cmarkus@oberhumer.com\u003e\nCc: \"Richard Purdie\" \u003crpurdie@openedhand.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc06cffdec85d487c77109dffcd2f285bdc502d3",
      "tree": "adc6e6398243da87e66c56102840597a329183a0",
      "parents": [
        "d3502d7f25b22cfc9762bf1781faa9db1bb3be2e",
        "9413d7b8aa777dd1fc7db9563ce5e80d769fe7b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:51:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:51:54 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (166 commits)\n  [SCSI] ibmvscsi: convert to use the data buffer accessors\n  [SCSI] dc395x: convert to use the data buffer accessors\n  [SCSI] ncr53c8xx: convert to use the data buffer accessors\n  [SCSI] sym53c8xx: convert to use the data buffer accessors\n  [SCSI] ppa: coding police and printk levels\n  [SCSI] aic7xxx_old: remove redundant GFP_ATOMIC from kmalloc\n  [SCSI] i2o: remove redundant GFP_ATOMIC from kmalloc from device.c\n  [SCSI] remove the dead CYBERSTORMIII_SCSI option\n  [SCSI] don\u0027t build scsi_dma_{map,unmap} for !HAS_DMA\n  [SCSI] Clean up scsi_add_lun a bit\n  [SCSI] 53c700: Remove printk, which triggers because of low scsi clock on SNI RMs\n  [SCSI] sni_53c710: Cleanup\n  [SCSI] qla4xxx: Fix underrun/overrun conditions\n  [SCSI] megaraid_mbox: use mutex instead of semaphore\n  [SCSI] aacraid: add 51245, 51645 and 52245 adapters to documentation.\n  [SCSI] qla2xxx: update version to 8.02.00-k1.\n  [SCSI] qla2xxx: add support for NPIV\n  [SCSI] stex: use resid for xfer len information\n  [SCSI] Add Brownie 1200U3P to blacklist\n  [SCSI] scsi.c: convert to use the data buffer accessors\n  ...\n"
    },
    {
      "commit": "d3502d7f25b22cfc9762bf1781faa9db1bb3be2e",
      "tree": "e1d0195704efaafa14caf6965c8f2b6b00cbcb83",
      "parents": [
        "d2a9a8ded48bec153f08ee87a40626c8d0737f79",
        "0a9f2a467d8dacaf7e97469dba99ed2d07287d80"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:50:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:50:46 2007 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (53 commits)\n  [TCP]: Verify the presence of RETRANS bit when leaving FRTO\n  [IPV6]: Call inet6addr_chain notifiers on link down\n  [NET_SCHED]: Kill CONFIG_NET_CLS_POLICE\n  [NET_SCHED]: act_api: qdisc internal reclassify support\n  [NET_SCHED]: sch_dsmark: act_api support\n  [NET_SCHED]: sch_atm: act_api support\n  [NET_SCHED]: sch_atm: Lindent\n  [IPV6]: MSG_ERRQUEUE messages do not pass to connected raw sockets\n  [IPV4]: Cleanup call to __neigh_lookup()\n  [NET_SCHED]: Revert \"avoid transmit softirq on watchdog wakeup\" optimization\n  [NETFILTER]: nf_conntrack: UDPLITE support\n  [NETFILTER]: nf_conntrack: mark protocols __read_mostly\n  [NETFILTER]: x_tables: add connlimit match\n  [NETFILTER]: Lower *tables printk severity\n  [NETFILTER]: nf_conntrack: Don\u0027t track locally generated special ICMP error\n  [NETFILTER]: nf_conntrack: Introduces nf_ct_get_tuplepr and uses it\n  [NETFILTER]: nf_conntrack: make l3proto-\u003eprepare() generic and renames it\n  [NETFILTER]: nf_conntrack: Increment error count on parsing IPv4 header\n  [NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices.\n  [AF_IUCV]: Add lock when updating accept_q\n  ...\n"
    },
    {
      "commit": "d2a9a8ded48bec153f08ee87a40626c8d0737f79",
      "tree": "e4a90a4f2f65632506e3e04613891cb602843523",
      "parents": [
        "2d896c780db9cda5dc102bf7a0a2cd4394c1342e",
        "0af8887ebf4556a76680a61b0bb156d934702c63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:44:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:44:53 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: fix a race condition bug in umount which caused a segfault\n  9p: re-enable mount time debug option\n  9p: cache meta-data when cache\u003dloose\n  net/9p: set error to EREMOTEIO if trans-\u003ewrite returns zero\n  net/9p: change net/9p module name to 9pnet\n  9p: Reorganization of 9p file system code\n"
    },
    {
      "commit": "b4a06918c2534fc9655424e75c879bf523aa5b06",
      "tree": "f05021871e087481d94ac80b9a19c9778ec8d5e7",
      "parents": [
        "c248725b616179c43d944ee9f31d507fa483e6c8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Jul 15 21:00:31 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:40:52 2007 -0700"
      },
      "message": "frv: missing __clear_user()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4381ca3c23b07ba5b567f72325003020ddca0341",
      "tree": "8364a54bbb58cd8cabbaed0d9d5a84968e56591e",
      "parents": [
        "5f17c70fe6d0b8562bf396f7e5638f243ebe4da8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Jul 15 21:00:11 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 15 16:40:51 2007 -0700"
      },
      "message": "fix return type of skb_checksum_complete()\n\nIt returns __sum16, not unsigned int\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3bc7cff8fddb6ff9715be8bfc3d911378c4d69d",
      "tree": "e23946fb3583ee17e95c07f6e04b5dcc498fa581",
      "parents": [
        "73ca4918fbb98311421259d82ef4ab44feeace43"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Jul 15 00:03:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 15 00:03:05 2007 -0700"
      },
      "message": "[NET_SCHED]: Kill CONFIG_NET_CLS_POLICE\n\nThe NET_CLS_ACT option is now a full replacement for NET_CLS_POLICE,\nremove the old code. The config option will be kept around to select\nthe equivalent NET_CLS_ACT options for a short time to allow easier\nupgrades.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73ca4918fbb98311421259d82ef4ab44feeace43",
      "tree": "a5ae62e5474b3d28d7205ab3170aa73ff6d5f8ac",
      "parents": [
        "f6853e2df3de82c1dac8f62ddcf3a8dfa302419e"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Jul 15 00:02:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 15 00:02:31 2007 -0700"
      },
      "message": "[NET_SCHED]: act_api: qdisc internal reclassify support\n\nThe behaviour of NET_CLS_POLICE for TC_POLICE_RECLASSIFY was to return\nit to the qdisc, which could handle it internally or ignore it. With\nNET_CLS_ACT however, tc_classify starts over at the first classifier\nand never returns it to the qdisc. This makes it impossible to support\nqdisc-internal reclassification, which in turn makes it impossible to\nremove the old NET_CLS_POLICE code without breaking compatibility since\nwe have two qdiscs (CBQ and ATM) that support this.\n\nThis patch adds a tc_classify_compat function that handles\nreclassification the old way and changes CBQ and ATM to use it.\n\nThis again is of course not fully backwards compatible with the previous\nNET_CLS_ACT behaviour. Unfortunately there is no way to fully maintain\ncompatibility *and* support qdisc internal reclassification with\nNET_CLS_ACT, but this seems like the better choice over keeping the two\nincompatible options around forever.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d09f51b6997f3f443c5741bc696651e479576715",
      "tree": "6d5eefcbaa9f46d44e8cad626011e886b5d1840c",
      "parents": [
        "1b1ac759d7c6bba6e5f4731ef6ea720b6636e27c",
        "e559e91cce3af215d78b7262360f19b95978aab3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 23:47:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 23:47:04 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nConflicts:\n\n\tcrypto/Kconfig\n"
    },
    {
      "commit": "61075af51f252913401c41fbe94075b46c94e9f1",
      "tree": "bf97f2a5ed93ed1767953b0ae8678d921ebc0473",
      "parents": [
        "370786f9cfd430cb424f00ce4110e75bb1b95a19"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 20:48:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:48:19 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: mark protocols __read_mostly\n\nAlso remove two unnecessary EXPORT_SYMBOLs and move the\nnf_conntrack_l3proto_ipv4 declaration to the correct file.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "370786f9cfd430cb424f00ce4110e75bb1b95a19",
      "tree": "df0e51882850f8db8da8f6e4ab746179b1993b9c",
      "parents": [
        "a887c1c148ffb3eb1c193e9869ca5297c6e22078"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@gmx.de",
        "time": "Sat Jul 14 20:47:26 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:47:26 2007 -0700"
      },
      "message": "[NETFILTER]: x_tables: add connlimit match\n\nipt_connlimit has been sitting in POM-NG for a long time.\nHere is a new shiny xt_connlimit with:\n\n * xtables\u0027ified\n * will request the layer3 module\n   (previously it hotdropped every packet when it was not loaded)\n * fixed: there was a deadlock in case of an OOM condition\n * support for any layer4 protocol (e.g. UDP/SCTP)\n * using jhash, as suggested by Eric Dumazet\n * ipv6 support\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2a3123fbe58da9fd3f35cd242087896ace6049f",
      "tree": "f17f8b6f505bb50be97e204c382a92288f75c986",
      "parents": [
        "ffc30690480bdd337e4914302b926d24870b56b2"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Sat Jul 14 20:45:14 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:45:14 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: Introduces nf_ct_get_tuplepr and uses it\n\nnf_ct_get_tuple() requires the offset to transport header and that bothers\ncallers such as icmp[v6] l4proto modules. This introduces new function\nto simplify them.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ffc30690480bdd337e4914302b926d24870b56b2",
      "tree": "805dfdda135a6f91648aded75b1cfb754705a4b4",
      "parents": [
        "d87d8469e2dd19a3a134b99f78288d41854c614b"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Sat Jul 14 20:44:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 20:44:50 2007 -0700"
      },
      "message": "[NETFILTER]: nf_conntrack: make l3proto-\u003eprepare() generic and renames it\n\nThe icmp[v6] l4proto modules parse headers in ICMP[v6] error to get tuple.\nBut they have to find the offset to transport protocol header before that.\nTheir processings are almost same as prepare() of l3proto modules.\nThis makes prepare() more generic to simplify icmp[v6] l4proto module\nlater.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6460d948f3ebf7d5040328a60a0ab7221f69945b",
      "tree": "d7c2a7eda9f20a03698df32bdc4677ca0c2479d5",
      "parents": [
        "febca281f677a775c61cd0572c2f35e4ead9e7d5"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Sat Jul 14 19:07:52 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 19:07:52 2007 -0700"
      },
      "message": "[NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices.\n\nAdd ethtool utility function to set or clear IPV6_CSUM feature flag.\nModify tg3.c and bnx2.c to use this function when doing ethtool -K\nto change tx checksum.\n\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "febca281f677a775c61cd0572c2f35e4ead9e7d5",
      "tree": "64a58deba476ff3dbc7468d6d2e8e33e1351bf68",
      "parents": [
        "13fdc9a74df0fec70f421c6891e184ed8c3b9088"
      ],
      "author": {
        "name": "Ursula Braun",
        "email": "braunu@de.ibm.com",
        "time": "Sat Jul 14 19:04:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 19:04:25 2007 -0700"
      },
      "message": "[AF_IUCV]: Add lock when updating accept_q\n\nThe accept_queue of an af_iucv socket will be corrupted, if\nadding and deleting of entries in this queue occurs at the\nsame time (connect request from one client, while accept call\nis processed for another client).\nSolution: add locking when updating accept_q\n\nSigned-off-by: Ursula Braun \u003cbraunu@de.ibm.com\u003e\nAcked-by: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acd159b6b5828175be6b9ccccd9b054239ec63e9",
      "tree": "bf0af1a1700a114f489bce36a85f8b0947287268",
      "parents": [
        "cf3842ec5015c862f4869e3641a8549393bb958e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Jul 14 19:00:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 19:00:59 2007 -0700"
      },
      "message": "[INET_SOCK]: make net/ipv4/inet_timewait_sock.c:__inet_twsk_kill() static\n\nThis patch makes the needlessly global __inet_twsk_kill() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf3842ec5015c862f4869e3641a8549393bb958e",
      "tree": "6c2f0158504f3463fcca1359de90b699cb636e97",
      "parents": [
        "b3b0b681b12478a7afa7d1f3d58be96830e16c7d",
        "63fc33ceb0ccc08b3f62d7bfe56a33eb33ca9427"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 18:58:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jul 14 18:58:49 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-davem\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "b863ceb7ddcea8c55fcf1d7b2ac591d50aa7ed53",
      "tree": "a65d5e4be77666600c0005c5f4c9091df63a3a1b",
      "parents": [
        "56addd6eeeb4e11f5a0af7093ca078e0f29140e0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:55:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:55:06 2007 -0700"
      },
      "message": "[NET]: Add macvlan driver\n\nAdd macvlan driver, which allows to create virtual ethernet devices\nbased on MAC address.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56addd6eeeb4e11f5a0af7093ca078e0f29140e0",
      "tree": "814e84aa686d9fec602f977901634ebf576d039d",
      "parents": [
        "6c78dcbd47a68a7d25d2bee7a6c74b9136cb5fde"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:53:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:53:28 2007 -0700"
      },
      "message": "[VLAN]: Use multicast list synchronization helpers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c78dcbd47a68a7d25d2bee7a6c74b9136cb5fde",
      "tree": "21e4a2ea3eb7ed87ce525c59bb8c4d23d8c84589",
      "parents": [
        "a0a400d79e3dd7843e7e81baa3ef2957bdc292d0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:52:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:52:56 2007 -0700"
      },
      "message": "[VLAN]: Fix promiscous/allmulti synchronization races\n\nThe set_multicast_list function may be called without holding the rtnl\nmutex, resulting in races when changing the underlying device\u0027s promiscous\nand allmulti state. Use the change_rx_mode hook, which is always invoked\nunder the rtnl.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a0a400d79e3dd7843e7e81baa3ef2957bdc292d0",
      "tree": "1391190938fb43587967f44f0ab139a2522b4a65",
      "parents": [
        "24023451c8df726692e2f52288a20870d13b501f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:52:02 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:52:02 2007 -0700"
      },
      "message": "[NET]: dev_mcast: add multicast list synchronization helpers\n\nThe method drivers currently use to synchronize multicast lists is not\nvery pretty:\n\n- walk the multicast list\n- search each entry on a copy of the previous list\n- if new add to lower device\n- walk the copy of the previous list\n- search each entry on the current list\n- if removed delete from lower device\n- copy entire list\n\nThis patch adds a new field to struct dev_addr_list to store the\nsynchronization state and adds two helper functions for synchronization\nand cleanup.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24023451c8df726692e2f52288a20870d13b501f",
      "tree": "b80c48dfe817a1a18484dadbc110ca07353c86c8",
      "parents": [
        "e6c9116d1dc984cb7ecf1b0fe26ca4a8ab36bb57"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jul 14 18:51:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 14 18:51:31 2007 -0700"
      },
      "message": "[NET]: Add net_device change_rx_mode callback\n\nCurrently the set_multicast_list (and set_rx_mode) callbacks are\nresponsible for configuring the device according to the IFF_PROMISC,\nIFF_MULTICAST and IFF_ALLMULTI flags and the mc_list (and uc_list in\ncase of set_rx_mode).\n\nThese callbacks can be invoked from BH context without the rtnl_mutex\nby dev_mc_add/dev_mc_delete, which makes reading the device flags and\npromiscous/allmulti count racy. For real hardware drivers that just\ncommit all changes to the hardware this is not a real problem since\nthe stack guarantees to call them for every change, so at least the\nfinal call will not race and commit the correct configuration to the\nhardware.\n\nFor software devices that want to synchronize promiscous and multicast\nstate to an underlying device however this can cause corruption of the\nunderlying device\u0027s flags or promisc/allmulti counts.\n\nWhen the software device is concurrently put in promiscous or allmulti\nmode while set_multicast_list is invoked from bottem half context, the\ndevice might synchronize the change to the underlying device without\nholding the rtnl_mutex, which races with concurrent changes to the\nunderlying device.\n\nAdd a dev-\u003echange_rx_flags hook that is invoked when any of the flags\nthat affect rx filtering change (under the rtnl_mutex), which allows\ndrivers to perform synchronization immediately and only synchronize\nthe address lists in set_multicast_list/set_rx_mode.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d0f656cad313bb04a151273bb57e108b2cc9876f",
      "tree": "d3070feea2eb74c1e62cc6908b6712af5cc656ea",
      "parents": [
        "33874a002d4fdd34e35e8265f9b2e0582385f744"
      ],
      "author": {
        "name": "Priyanka Gupta",
        "email": "priyankag@google.com",
        "time": "Tue Jun 19 14:02:10 2007 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.localdomain",
        "time": "Sat Jul 14 16:01:16 2007 -0500"
      },
      "message": "[SCSI] Remove unused method scsi_device_cancel\n\nRemoves an obsolete method scsi_device_cancel which isn\u0027t being used\nanywhere in the kernel.\n\nSigned-off-by: Priyanka Gupta \u003cpriyankag@google.com\u003e\nAcked-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "bd238fb431f31989898423c8b6496bc8c4204a86",
      "tree": "f85a536383cbf360125ecb0592f6c515e0ecf0ff",
      "parents": [
        "8d9107e8c50e1c4ff43c91c8841805833f3ecfb9"
      ],
      "author": {
        "name": "Latchesar Ionkov",
        "email": "lucho@ionkov.net",
        "time": "Tue Jul 10 17:57:28 2007 -0500"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@ericvh-desktop.austin.ibm.com",
        "time": "Sat Jul 14 15:13:40 2007 -0500"
      },
      "message": "9p: Reorganization of 9p file system code\n\nThis patchset moves non-filesystem interfaces of v9fs from fs/9p to net/9p.\nIt moves the transport, packet marshalling and connection layers to net/9p\nleaving only the VFS related files in fs/9p.  This work is being done in\npreparation for in-kernel 9p servers as well as alternate 9p clients (other\nthan VFS).\n\nSigned-off-by: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "16cefa8c3863721fd40445a1b34dea18cd16ccfe",
      "tree": "c8e58ca06e2edfd667d3e6062a642b80cc58e5e7",
      "parents": [
        "4fbef206daead133085fe33905f5e842d38fb8da",
        "d8558f99fbc5ef5d4ae76b893784005056450f82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 16:46:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 16:46:18 2007 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (122 commits)\n  sunrpc: drop BKL around wrap and unwrap\n  NFSv4: Make sure unlock is really an unlock when cancelling a lock\n  NLM: fix source address of callback to client\n  SUNRPC client: add interface for binding to a local address\n  SUNRPC server: record the destination address of a request\n  SUNRPC: cleanup transport creation argument passing\n  NFSv4: Make the NFS state model work with the nosharedcache mount option\n  NFS: Error when mounting the same filesystem with different options\n  NFS: Add the mount option \"nosharecache\"\n  NFS: Add support for mounting NFSv4 file systems with string options\n  NFS: Add final pieces to support in-kernel mount option parsing\n  NFS: Introduce generic mount client API\n  NFS: Add enums and match tables for mount option parsing\n  NFS: Improve debugging output in NFS in-kernel mount client\n  NFS: Clean up in-kernel NFS mount\n  NFS: Remake nfsroot_mount as a permanent part of NFS client\n  SUNRPC: Add a convenient default for the hostname when calling rpc_create()\n  SUNRPC: Rename rpcb_getport to be consistent with new rpcb_getport_sync name\n  SUNRPC: Rename rpcb_getport_external routine\n  SUNRPC: Allow rpcbind requests to be interrupted by a signal.\n  ...\n"
    },
    {
      "commit": "e030dbf91a87da7e8be3be3ca781558695bea683",
      "tree": "4ff2e01621a888be4098ca48c404775e56a55a0d",
      "parents": [
        "12a22960549979c10a95cc97f8ec63b461c55692",
        "3039f0735a280b54c7364fbfe6a9287f7f0b510a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:52:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:52:27 2007 -0700"
      },
      "message": "Merge branch \u0027ioat-md-accel-for-linus\u0027 of git://lost.foo-projects.org/~dwillia2/git/iop\n\n* \u0027ioat-md-accel-for-linus\u0027 of git://lost.foo-projects.org/~dwillia2/git/iop: (28 commits)\n  ioatdma: add the unisys \"i/oat\" pci vendor/device id\n  ARM: Add drivers/dma to arch/arm/Kconfig\n  iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver\n  iop13xx: surface the iop13xx adma units to the iop-adma driver\n  dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines\n  md: remove raid5 compute_block and compute_parity5\n  md: handle_stripe5 - request io processing in raid5_run_ops\n  md: handle_stripe5 - add request/completion logic for async expand ops\n  md: handle_stripe5 - add request/completion logic for async read ops\n  md: handle_stripe5 - add request/completion logic for async check ops\n  md: handle_stripe5 - add request/completion logic for async compute ops\n  md: handle_stripe5 - add request/completion logic for async write ops\n  md: common infrastructure for running operations with raid5_run_ops\n  md: raid5_run_ops - run stripe operations outside sh-\u003elock\n  raid5: replace custom debug PRINTKs with standard pr_debug\n  raid5: refactor handle_stripe5 and handle_stripe6 (v3)\n  async_tx: add the async_tx api\n  xor: make \u0027xor_blocks\u0027 a library routine for use with async_tx\n  dmaengine: make clients responsible for managing channels\n  dmaengine: refactor dmaengine around dma_async_tx_descriptor\n  ...\n"
    },
    {
      "commit": "31c4ab430a448cfb13fc88779d8a870c7af9f72b",
      "tree": "aec64a8204ea8f89e9743cb16253de9deea4200d",
      "parents": [
        "8b69ad0e690eb5f38c23087247a12e5fde1baeff",
        "f24ae12b3eeb1b956b752d4d5907e311cfa95a1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:44:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:44:45 2007 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus:\n  [MIPS] Workaround for a sparse warning in include/asm-mips/mach-tx4927/ioremap.h\n  [MIPS] Make show_code static and add __user tag\n  [MIPS] Workaround for a sparse warning in include/asm-mips/compat.h\n  [MIPS] Add some __user tags\n  [MIPS] math-emu minor cleanup\n  [MIPS] Kill CONFIG_TX4927BUG_WORKAROUND\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_FB_XPERT98\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_AU1000_SRC_CLK\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_AU1000_USE32K\n  [MIPS] Alchemy: Remove code wrapped by dead symbol CONFIG_AU1XXX_PSC_SPI\n  [CHAR] Delete leftovers of old Alchemy UART driver\n"
    },
    {
      "commit": "aba2da66cfbf7790ad79d4dee95871127d5ddf5e",
      "tree": "974585e8419f63ebc2fa1e244c494b6b53f5842d",
      "parents": [
        "773208946a132fb733ba273ee8562814f828cc28",
        "f787a50306680c187cf2896a8017937c1bf6dc7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:12:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:13:37 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  [PATCH] sched: small topology.h cleanup\n  [PATCH] sched: fix show_task()/show_tasks() output\n  [PATCH] sched: remove stale version info from kernel/sched_debug.c\n  [PATCH] sched: allow larger granularity\n  [PATCH] sched: fix prio_to_wmult[] for nice 1\n\n[ I re-did the commits to get rid of some bogus merge commit that\n  Ingo had. - Linus ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f787a50306680c187cf2896a8017937c1bf6dc7e",
      "tree": "1dbc2b37c53759bde6e227e6502ad5555388f305",
      "parents": [
        "4bd77321a833077c5c9ac7b9d284e261e4a8906e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 11 21:21:47 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:11:52 2007 -0700"
      },
      "message": "[PATCH] sched: small topology.h cleanup\n\ntrivial cleanup: LOCAL_DISTANCE and REMOTE_DISTANCE are only used in\ntopology.h and inside an #ifndef section - limit their existence to\nthat #ifndef.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f24ae12b3eeb1b956b752d4d5907e311cfa95a1a",
      "tree": "863e5b10054b4f4fb163229ccdbde208fec246ba",
      "parents": [
        "e1bb828906e54ffb7e8b358516158ffdcf9581b8"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Sat Jul 14 00:06:44 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Jul 13 17:40:01 2007 +0100"
      },
      "message": "[MIPS] Workaround for a sparse warning in include/asm-mips/mach-tx4927/ioremap.h\n\ninclude2/asm/mach-tx49xx/ioremap.h:39:52: warning: cast truncates bits from constant value (fff000000 becomes ff000000)\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "01bebc66793f2cc65104452dc319a8a99f005934",
      "tree": "b559bf839d1b8bcf88686e5a917a94caf286adae",
      "parents": [
        "5e0373b8e449b0c72495a6d8401c53f678b71988"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Fri Jul 13 23:51:38 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Jul 13 17:40:01 2007 +0100"
      },
      "message": "[MIPS] Workaround for a sparse warning in include/asm-mips/compat.h\n\nCast to a __user pointer via \"unsigned long\" to get rid of this warning:\n\ninclude2/asm/compat.h:135:10: warning: cast adds address space to expression (\u003casn:1\u003e)\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "3039f0735a280b54c7364fbfe6a9287f7f0b510a",
      "tree": "1d64cdab174e681660d689d367f0bde4e2884fdd",
      "parents": [
        "5816815f7850509ed51ab94eb4f644e405ccb865"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "message": "ioatdma: add the unisys \"i/oat\" pci vendor/device id\n\nCc: John Magolan \u003cjohn.magolan@unisys.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "2492c845189a961a92d8537a44d233e8e1e45c6d",
      "tree": "2c13ce489dc271d0391c468beb75e081b899f35c",
      "parents": [
        "39a8d7d13c113e4a98bfdfc45c7233188e4d715f"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "message": "iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver\n\nAdds the platform device definitions and the architecture specific support\nroutines (i.e. register initialization and descriptor formats) for the\niop-adma driver.\n\nChangelog:\n* add support for \u003e 1k zero sum buffer sizes\n* added dma/aau platform devices to iq80321 and iq80332 setup\n* fixed the calculation in iop_desc_is_aligned\n* support xor buffer sizes larger than 16MB\n* fix places where software descriptors are assumed to be contiguous, only\n  hardware descriptors are contiguous for up to a PAGE_SIZE buffer size\n* convert to async_tx\n* add interrupt support\n* add platform devices for 80219 boards\n* do not call platform register macros in driver code\n* remove switch() statements for compatible register offsets/layouts\n* change over to bitmap based capabilities\n* remove unnecessary ARM assembly statement\n* checkpatch.pl fixes\n* gpl v2 only correction\n* phys move to dma_async_tx_descriptor\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "39a8d7d13c113e4a98bfdfc45c7233188e4d715f",
      "tree": "7595e6b48de6a11d98ad206f4aaa1d976c349e4f",
      "parents": [
        "c211092313b90f898dec61f35207fc282d1eadc3"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:18 2007 -0700"
      },
      "message": "iop13xx: surface the iop13xx adma units to the iop-adma driver\n\nAdds the platform device definitions and the architecture specific\nsupport routines (i.e. register initialization and descriptor formats) for the\niop-adma driver.\n\nChangelog:\n* added \u0027descriptor pool size\u0027 to the platform data\n* add base support for buffer sizes larger than 16MB (hw max)\n* build error fix from Kirill A. Shutemov\n* rebase for async_tx changes\n* add interrupt support\n* do not call platform register macros in driver code\n* remove unnecessary ARM assembly statement\n* checkpatch.pl fixes\n* gpl v2 only correction\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "c211092313b90f898dec61f35207fc282d1eadc3",
      "tree": "30df0c81f207d0babb3fe56a17419f37e71e973a",
      "parents": [
        "f6dff381af01006ffae3c23cd2e07e30584de0ec"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:26 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:18 2007 -0700"
      },
      "message": "dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines\n\nThe Intel(R) IOP series of i/o processors integrate an Xscale core with\nraid acceleration engines.  The capabilities per platform are:\n\niop219:\n (2) copy engines\niop321:\n (2) copy engines\n (1) xor and block fill engine\niop33x:\n (2) copy and crc32c engines\n (1) xor, xor zero sum, pq, pq zero sum, and block fill engine\niop34x (iop13xx):\n (2) copy, crc32c, xor, xor zero sum, and block fill engines\n (1) copy, crc32c, xor, xor zero sum, pq, pq zero sum, and block fill engine\n\nThe driver supports the features of the async_tx api:\n* asynchronous notification of operation completion\n* implicit (interupt triggered) handling of inter-channel transaction\n  dependencies\n\nThe driver adapts to the platform it is running by two methods.\n1/ #include \u003casm/arch/adma.h\u003e which defines the hardware specific\n   iop_chan_* and iop_desc_* routines as a series of static inline\n   functions\n2/ The private platform data attached to the platform_device defines the\n   capabilities of the channels\n\n20070626: Callbacks are run in a tasklet.  Given the recent discussion on\nLKML about killing tasklets in favor of workqueues I did a quick conversion\nof the driver.  Raid5 resync performance dropped from 50MB/s to 30MB/s, so\nthe tasklet implementation remains until a generic softirq interface is\navailable.\n\nChangelog:\n* fixed a slot allocation bug in do_iop13xx_adma_xor that caused too few\nslots to be requested eventually leading to data corruption\n* enabled the slot allocation routine to attempt to free slots before\nreturning -ENOMEM\n* switched the cleanup routine to solely use the software chain and the\nstatus register to determine if a descriptor is complete.  This is\nnecessary to support other IOP engines that do not have status writeback\ncapability\n* make the driver iop generic\n* modified the allocation routines to understand allocating a group of\nslots for a single operation\n* added a null xor initialization operation for the xor only channel on\niop3xx\n* support xor operations on buffers larger than the hardware maximum\n* split the do_* routines into separate prep, src/dest set, submit stages\n* added async_tx support (dependent operations initiation at cleanup time)\n* simplified group handling\n* added interrupt support (callbacks via tasklets)\n* brought the pending depth inline with ioat (i.e. 4 descriptors)\n* drop dma mapping methods, suggested by Chris Leech\n* don\u0027t use inline in C files, Adrian Bunk\n* remove static tasklet declarations\n* make iop_adma_alloc_slots easier to read and remove chances for a\n  corrupted descriptor chain\n* fix locking bug in iop_adma_alloc_chan_resources, Benjamin Herrenschmidt\n* convert capabilities over to dma_cap_mask_t\n* fixup sparse warnings\n* add descriptor flush before iop_chan_enable\n* checkpatch.pl fixes\n* gpl v2 only correction\n* move set_src, set_dest, submit to async_tx methods\n* move group_list and phys to async_tx\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "b5e98d65d34a1c11a2135ea8a9b2619dbc7216c8",
      "tree": "bf88aad375bb0cbf6c346ec912c06c2607850b21",
      "parents": [
        "e89f89629b5de76e504d1be75c82c4a6b2419583"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:17 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async read ops\n\nWhen a read bio is attached to the stripe and the corresponding block is\nmarked R5_UPTODATE, then a read (biofill) operation is scheduled to copy\nthe data from the stripe cache to the bio buffer.  handle_stripe flags the\nblocks to be operated on with the R5_Wantfill flag.  If new read requests\narrive while raid5_run_ops is running they will not be handled until\nhandle_stripe is scheduled to run again.\n\nChangelog:\n* cleanup to_read and to_fill accounting\n* do not fail reads that have reached the cache\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f38e12199a94ca458e4f03c5a2c984fb80adadc5",
      "tree": "706f54c46d4a4c839dd43c1403854dde860c6be5",
      "parents": [
        "e33129d84130459dbb764a1a52a4bfceab3da978"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:30 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:17 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async compute ops\n\nhandle_stripe will compute a block when a backing disk has failed, or when\nit determines it can save a disk read by computing the block from all the\nother up-to-date blocks.\n\nPreviously a block would be computed under the lock and subsequent logic in\nhandle_stripe could use the newly up-to-date block.  With the raid5_run_ops\nimplementation the compute operation is carried out a later time outside\nthe lock.  To preserve the old functionality we take advantage of the\ndependency chain feature of async_tx to flag the block as R5_Wantcompute\nand then let other parts of handle_stripe operate on the block as if it\nwere up-to-date.  raid5_run_ops guarantees that the block will be ready\nbefore it is used in another operation.\n\nHowever, this only works in cases where the compute and the dependent\noperation are scheduled at the same time.  If a previous call to\nhandle_stripe sets the R5_Wantcompute flag there is no facility to pass the\nasync_tx dependency chain across successive calls to raid5_run_ops.  The\nreq_compute variable protects against this case.\n\nChangelog:\n* remove the req_compute BUG_ON\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "91c00924846a0034020451c280c76baa4299f9dc",
      "tree": "7124ed6706937b793a10c37a861c5fc0f2e5b348",
      "parents": [
        "45b4233caac05da0118b608a9fc2a40a9fc580cd"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:30 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:15 2007 -0700"
      },
      "message": "md: raid5_run_ops - run stripe operations outside sh-\u003elock\n\nWhen the raid acceleration work was proposed, Neil laid out the following\nattack plan:\n\n1/ move the xor and copy operations outside spin_lock(\u0026sh-\u003elock)\n2/ find/implement an asynchronous offload api\n\nThe raid5_run_ops routine uses the asynchronous offload api (async_tx) and\nthe stripe_operations member of a stripe_head to carry out xor+copy\noperations asynchronously, outside the lock.\n\nTo perform operations outside the lock a new set of state flags is needed\nto track new requests, in-flight requests, and completed requests.  In this\nnew model handle_stripe is tasked with scanning the stripe_head for work,\nupdating the stripe_operations structure, and finally dropping the lock and\ncalling raid5_run_ops for processing.  The following flags outline the\nrequests that handle_stripe can make of raid5_run_ops:\n\nSTRIPE_OP_BIOFILL\n - copy data into request buffers to satisfy a read request\nSTRIPE_OP_COMPUTE_BLK\n - generate a missing block in the cache from the other blocks\nSTRIPE_OP_PREXOR\n - subtract existing data as part of the read-modify-write process\nSTRIPE_OP_BIODRAIN\n - copy data out of request buffers to satisfy a write request\nSTRIPE_OP_POSTXOR\n - recalculate parity for new data that has entered the cache\nSTRIPE_OP_CHECK\n - verify that the parity is correct\nSTRIPE_OP_IO\n - submit i/o to the member disks (note this was already performed outside\n   the stripe lock, but it made sense to add it as an operation type\n\nThe flow is:\n1/ handle_stripe sets STRIPE_OP_* in sh-\u003eops.pending\n2/ raid5_run_ops reads sh-\u003eops.pending, sets sh-\u003eops.ack, and submits the\n   operation to the async_tx api\n3/ async_tx triggers the completion callback routine to set\n   sh-\u003eops.complete and release the stripe\n4/ handle_stripe runs again to finish the operation and optionally submit\n   new operations that were previously blocked\n\nNote this patch just defines raid5_run_ops, subsequent commits (one per\nmajor operation type) modify handle_stripe to take advantage of this\nroutine.\n\nChangelog:\n* removed ops_complete_biodrain in favor of ops_complete_postxor and\n  ops_complete_write.\n* removed the raid5_run_ops workqueue\n* call bi_end_io for reads in ops_complete_biofill, saves a call to\n  handle_stripe\n* explicitly handle the 2-disk raid5 case (xor becomes memcpy), Neil Brown\n* fix race between async engines and bi_end_io call for reads, Neil Brown\n* remove unnecessary spin_lock from ops_complete_biofill\n* remove test_and_set/test_and_clear BUG_ONs, Neil Brown\n* remove explicit interrupt handling for channel switching, this feature\n  was absorbed (i.e. it is now implicit) by the async_tx api\n* use return_io in ops_complete_biofill\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a445685647e825c713175d180ffc8dd54d90589b",
      "tree": "d2db5674e51d33162e1e5993b6e6680ec534e2df",
      "parents": [
        "9bc89cd82d6f88fb0ca39b30445c329a430fd66b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:43 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:15 2007 -0700"
      },
      "message": "raid5: refactor handle_stripe5 and handle_stripe6 (v3)\n\nhandle_stripe5 and handle_stripe6 have very deep logic paths handling the\nvarious states of a stripe_head.  By introducing the \u0027stripe_head_state\u0027\nand \u0027r6_state\u0027 objects, large portions of the logic can be moved to\nsub-routines.\n\n\u0027struct stripe_head_state\u0027 consumes all of the automatic variables that previously\nstood alone in handle_stripe5,6.  \u0027struct r6_state\u0027 contains the handle_stripe6\nspecific variables like p_failed and q_failed.\n\nOne of the nice side effects of the \u0027stripe_head_state\u0027 change is that it\nallows for further reductions in code duplication between raid5 and raid6.\nThe following new routines are shared between raid5 and raid6:\n\n\thandle_completed_write_requests\n\thandle_requests_to_failed_array\n\thandle_stripe_expansion\n\nChanges:\n* v2: fixed \u0027conf-\u003eraid_disk-1\u0027 for the raid6 \u0027handle_stripe_expansion\u0027 path\n* v3: removed the unused \u0027dirty\u0027 field from struct stripe_head_state\n* v3: coalesced open coded bi_end_io routines into return_io()\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9bc89cd82d6f88fb0ca39b30445c329a430fd66b",
      "tree": "7bd0e856abd359f84edea1bacfd1dd32edd93fbb",
      "parents": [
        "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:44 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "async_tx: add the async_tx api\n\nThe async_tx api provides methods for describing a chain of asynchronous\nbulk memory transfers/transforms with support for inter-transactional\ndependencies.  It is implemented as a dmaengine client that smooths over\nthe details of different hardware offload engine implementations.  Code\nthat is written to the api can optimize for asynchronous operation and the\napi will fit the chain of operations to the available offload resources. \n \n\tI imagine that any piece of ADMA hardware would register with the\n\t\u0027async_*\u0027 subsystem, and a call to async_X would be routed as\n\tappropriate, or be run in-line. - Neil Brown\n\nasync_tx exploits the capabilities of struct dma_async_tx_descriptor to\nprovide an api of the following general format:\n\nstruct dma_async_tx_descriptor *\nasync_\u003coperation\u003e(..., struct dma_async_tx_descriptor *depend_tx,\n\t\t\tdma_async_tx_callback cb_fn, void *cb_param)\n{\n\tstruct dma_chan *chan \u003d async_tx_find_channel(depend_tx, \u003coperation\u003e);\n\tstruct dma_device *device \u003d chan ? chan-\u003edevice : NULL;\n\tint int_en \u003d cb_fn ? 1 : 0;\n\tstruct dma_async_tx_descriptor *tx \u003d device ?\n\t\tdevice-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_en) : NULL;\n\n\tif (tx) { /* run \u003coperation\u003e asynchronously */\n\t\t...\n\t\ttx-\u003etx_set_dest(addr, tx, index);\n\t\t...\n\t\ttx-\u003etx_set_src(addr, tx, index);\n\t\t...\n\t\tasync_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);\n\t} else { /* run \u003coperation\u003e synchronously */\n\t\t...\n\t\t\u003coperation\u003e\n\t\t...\n\t\tasync_tx_sync_epilog(flags, depend_tx, cb_fn, cb_param);\n\t}\n\n\treturn tx;\n}\n\nasync_tx_find_channel() returns a capable channel from its pool.  The\nchannel pool is organized as a per-cpu array of channel pointers.  The\nasync_tx_rebalance() routine is tasked with managing these arrays.  In the\nuniprocessor case async_tx_rebalance() tries to spread responsibility\nevenly over channels of similar capabilities.  For example if there are two\ncopy+xor channels, one will handle copy operations and the other will\nhandle xor.  In the SMP case async_tx_rebalance() attempts to spread the\noperations evenly over the cpus, e.g. cpu0 gets copy channel0 and xor\nchannel0 while cpu1 gets copy channel 1 and xor channel 1.  When a\ndependency is specified async_tx_find_channel defaults to keeping the\noperation on the same channel.  A xor-\u003ecopy-\u003exor chain will stay on one\nchannel if it supports both operation types, otherwise the transaction will\ntransition between a copy and a xor resource.\n\nCurrently the raid5 implementation in the MD raid456 driver has been\nconverted to the async_tx api.  A driver for the offload engines on the\nIntel Xscale series of I/O processors, iop-adma, is provided in a later\ncommit.  With the iop-adma driver and async_tx, raid456 is able to offload\ncopy, xor, and xor-zero-sum operations to hardware engines.\n \nOn iop342 tiobench showed higher throughput for sequential writes (20 - 30%\nimprovement) and sequential reads to a degraded array (40 - 55%\nimprovement).  For the other cases performance was roughly equal, +/- a few\npercentage points.  On a x86-smp platform the performance of the async_tx\nimplementation (in synchronous mode) was also +/- a few percentage points\nof the original implementation.  According to \u0027top\u0027 on iop342 CPU\nutilization drops from ~50% to ~15% during a \u0027resync\u0027 while the speed\naccording to /proc/mdstat doubles from ~25 MB/s to ~50 MB/s.\n \nThe tiobench command line used for testing was: tiobench --size 2048\n--block 4096 --block 131072 --dir /mnt/raid --numruns 5\n* iop342 had 1GB of memory available\n\nDetails:\n* if CONFIG_DMA_ENGINE\u003dn the asynchronous path is compiled away by making\n  async_tx_find_channel a static inline routine that always returns NULL\n* when a callback is specified for a given transaction an interrupt will\n  fire at operation completion time and the callback will occur in a\n  tasklet.  if the the channel does not support interrupts then a live\n  polling wait will be performed\n* the api is written as a dmaengine client that requests all available\n  channels\n* In support of dependencies the api implicitly schedules channel-switch\n  interrupts.  The interrupt triggers the cleanup tasklet which causes\n  pending operations to be scheduled on the next channel\n* Xor engines treat an xor destination address differently than a software\n  xor routine.  To the software routine the destination address is an implied\n  source, whereas engines treat it as a write-only destination.  This patch\n  modifies the xor_blocks routine to take a an explicit destination address\n  to mirror the hardware.\n\nChangelog:\n* fixed a leftover debug print\n* don\u0027t allow callbacks in async_interrupt_cond\n* fixed xor_block changes\n* fixed usage of ASYNC_TX_XOR_DROP_DEST\n* drop dma mapping methods, suggested by Chris Leech\n* printk warning fixups from Andrew Morton\n* don\u0027t use inline in C files, Adrian Bunk\n* select the API when MD is enabled\n* BUG_ON xor source counts \u003c\u003d 1\n* implicitly handle hardware concerns like channel switching and\n  interrupts, Neil Brown\n* remove the per operation type list, and distribute operation capabilities\n  evenly amongst the available channels\n* simplify async_tx_find_channel to optimize the fast path\n* introduce the channel_table_initialized flag to prevent early calls to\n  the api\n* reorganize the code to mimic crypto\n* include mm.h as not all archs include it in dma-mapping.h\n* make the Kconfig options non-user visible, Adrian Bunk\n* move async_tx under crypto since it is meant as \u0027core\u0027 functionality, and\n  the two may share algorithms in the future\n* move large inline functions into c files\n* checkpatch.pl fixes\n* gpl v2 only correction\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73",
      "tree": "10f99829f7d877b87614fe69be77e363c026a8d7",
      "parents": [
        "d379b01e9087a582d58f4b678208a4f8d8376fe7"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:42 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "xor: make \u0027xor_blocks\u0027 a library routine for use with async_tx\n\nThe async_tx api tries to use a dma engine for an operation, but will fall\nback to an optimized software routine otherwise.  Xor support is\nimplemented using the raid5 xor routines.  For organizational purposes this\nroutine is moved to a common area.\n\nThe following fixes are also made:\n* rename xor_block \u003d\u003e xor_blocks, suggested by Adrian Bunk\n* ensure that xor.o initializes before md.o in the built-in case\n* checkpatch.pl fixes\n* mark calibrate_xor_blocks __init, Adrian Bunk\n\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: NeilBrown \u003cneilb@suse.de\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "d379b01e9087a582d58f4b678208a4f8d8376fe7",
      "tree": "155920bca93c18afba66b9d5acfecd359d5bec65",
      "parents": [
        "7405f74badf46b5d023c5d2b670b4471525f6c91"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:42 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:13 2007 -0700"
      },
      "message": "dmaengine: make clients responsible for managing channels\n\nThe current implementation assumes that a channel will only be used by one\nclient at a time.  In order to enable channel sharing the dmaengine core is\nchanged to a model where clients subscribe to channel-available-events.\nInstead of tracking how many channels a client wants and how many it has\nreceived the core just broadcasts the available channels and lets the\nclients optionally take a reference.  The core learns about the clients\u0027\nneeds at dma_event_callback time.\n\nIn support of multiple operation types, clients can specify a capability\nmask to only be notified of channels that satisfy a certain set of\ncapabilities.\n\nChangelog:\n* removed DMA_TX_ARRAY_INIT, no longer needed\n* dma_client_chan_free -\u003e dma_chan_release: switch to global reference\n  counting only at device unregistration time, before it was also happening\n  at client unregistration time\n* clients now return dma_state_client to dmaengine (ack, dup, nak)\n* checkpatch.pl fixes\n* fixup merge with git-ioat\n\nCc: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7405f74badf46b5d023c5d2b670b4471525f6c91",
      "tree": "20dd20571637dba1c2b04c7b13ac208c33b5706b",
      "parents": [
        "428ed6024fa74a271142f3257966e9b5e1cb37a1"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:43 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:11 2007 -0700"
      },
      "message": "dmaengine: refactor dmaengine around dma_async_tx_descriptor\n\nThe current dmaengine interface defines mutliple routines per operation,\ni.e. dma_async_memcpy_buf_to_buf, dma_async_memcpy_buf_to_page etc.  Adding\nmore operation types (xor, crc, etc) to this model would result in an\nunmanageable number of method permutations.\n\n\tAre we really going to add a set of hooks for each DMA engine\n\twhizbang feature?\n\t\t- Jeff Garzik\n\nThe descriptor creation process is refactored using the new common\ndma_async_tx_descriptor structure.  Instead of per driver\ndo_\u003coperation\u003e_\u003cdest\u003e_to_\u003csrc\u003e methods, drivers integrate\ndma_async_tx_descriptor into their private software descriptor and then\ndefine a \u0027prep\u0027 routine per operation.  The prep routine allocates a\ndescriptor and ensures that the tx_set_src, tx_set_dest, tx_submit routines\nare valid.  Descriptor creation and submission becomes:\n\nstruct dma_device *dev;\nstruct dma_chan *chan;\nstruct dma_async_tx_descriptor *tx;\n\ntx \u003d dev-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_flag)\ntx-\u003etx_set_src(dma_addr_t, tx, index /* for multi-source ops */)\ntx-\u003etx_set_dest(dma_addr_t, tx, index)\ntx-\u003etx_submit(tx)\n\nIn addition to the refactoring, dma_async_tx_descriptor also lays the\ngroundwork for definining cross-channel-operation dependencies, and a\ncallback facility for asynchronous notification of operation completion.\n\nChangelog:\n* drop dma mapping methods, suggested by Chris Leech\n* fix ioat_dma_dependency_added, also caught by Andrew Morton\n* fix dma_sync_wait, change from Andrew Morton\n* uninline large functions, change from Andrew Morton\n* add tx-\u003ecallback \u003d NULL to dmaengine calls to interoperate with async_tx\n  calls\n* hookup ioat_tx_submit\n* convert channel capabilities to a \u0027cpumask_t like\u0027 bitmap\n* removed DMA_TX_ARRAY_INIT, no longer needed\n* checkpatch.pl fixes\n* make set_src, set_dest, and tx_submit descriptor specific methods\n* fixup git-ioat merge\n* move group_list and phys to dma_async_tx_descriptor\n\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9374430a52dfae5c013b88f7f030c04a6774d410",
      "tree": "ce1ee8eee4e79fbb9486e810278d1092afc74a44",
      "parents": [
        "66f49739fe1591197364f2dad1b67b975e8f5e85",
        "13f9966b3ba5b45f47f2ea0eb0a90afceedfbb1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:58 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (149 commits)\n  USB: ohci-pnx4008: Remove unnecessary cast of return value of kzalloc\n  USB: additions to the quirk list\n  usb-storage: implement autosuspend\n  USB: cdc-acm: add new device id to option driver\n  USB: goku_udc trivial cleanups\n  USB: usb gadget stack can now -DDEBUG with Kconfig\n  usb gadget stack: remove usb_ep_*_buffer(), part 2\n  usb gadget stack: remove usb_ep_*_buffer(), part 1\n  USB: pxa2xx_udc -- cleanups, mostly removing dma hooks\n  USB: pxa2xx_udc: use generic gpio layer\n  USB: quirk for samsung printer\n  USB: usb/dma doc updates\n  USB: drivers/usb/storage/unusual_devs.h whitespace cleanup\n  USB: remove Makefile reference to obsolete OHCI_AT91\n  USB: io_*: remove bogus termios no change checks\n  USB: mos7720: remove bogus no termios change check\n  USB: visor and whiteheat: remove bogus termios change checks\n  USB: pl2303: remove bogus checks and fix speed support to use tty_get_baud_rate()\n  USB: mos7840.c: turn this into a serial driver\n  USB: make the usb_device numa_node get assigned from controller\n  ...\n"
    },
    {
      "commit": "66f49739fe1591197364f2dad1b67b975e8f5e85",
      "tree": "5c804af8a3789c0cdf319e27bad3005d6a471cdf",
      "parents": [
        "0cdf6990e992902ae59cbc625d28cb41390f378e",
        "57e4acb3f63e1d3d74a75613eefde8b2d68164e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:46:01 2007 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] Un-break ia64 build\n"
    },
    {
      "commit": "0cdf6990e992902ae59cbc625d28cb41390f378e",
      "tree": "0c01cf792be5f36ea34064036005f424ab95a571",
      "parents": [
        "de081fa517fed81b0369f2e90ca87c30182879c8",
        "cec7c893d8654723028f09d33341e42673558057"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:45:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 16:45:40 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (76 commits)\n  IB: Update MAINTAINERS with Hal\u0027s new email address\n  IB/mlx4: Implement query SRQ\n  IB/mlx4: Implement query QP\n  IB/cm: Send no match if a SIDR REQ does not match a listen\n  IB/cm: Fix handling of duplicate SIDR REQs\n  IB/cm: cm_msgs.h should include ib_cm.h\n  IB/cm: Include HCA ACK delay in local ACK timeout\n  IB/cm: Use spin_lock_irq() instead of spin_lock_irqsave() when possible\n  IB/sa: Make sure SA queries use default P_Key\n  IPoIB: Recycle loopback skbs instead of freeing and reallocating\n  IB/mthca: Replace memset(\u003caddr\u003e, 0, PAGE_SIZE) with clear_page(\u003caddr\u003e)\n  IPoIB/cm: Fix warning if IPV6 is not enabled\n  IB/core: Take sizeof the correct pointer when calling kmalloc()\n  IB/ehca: Improve latency by unlocking after triggering the hardware\n  IB/ehca: Notify consumers of LID/PKEY/SM changes after nondisruptive events\n  IB/ehca: Return QP pointer in poll_cq()\n  IB/ehca: Change idr spinlocks into rwlocks\n  IB/ehca: Refactor sync between completions and destroy_cq using atomic_t\n  IB/ehca: Lock renaming, static initializers\n  IB/ehca: Report RDMA atomic attributes in query_qp()\n  ...\n"
    },
    {
      "commit": "c67ab134ba9f83f9de86e58adfeaa14a9efa6e00",
      "tree": "df9022b4a38e955abbf254d71e00ac1fecce6420",
      "parents": [
        "9d8bab58b758cd5a96d368a8cc64111c9ab50407"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Sun Jul 01 12:21:00 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:42 2007 -0700"
      },
      "message": "usb gadget stack: remove usb_ep_*_buffer(), part 2\n\nThis patch removes controller driver infrastructure which supported\nthe now-removed usb_ep_{alloc,free}_buffer() calls.\n\nAs can be seen, many of the implementations of this were broken to\nvarious degrees.  Many didn\u0027t properly return dma-coherent mappings;\nthose which did so were necessarily ugly because of bogosity in the\nunderlying dma_free_coherent() calls ... which on many platforms\ncan\u0027t be called from the same contexts (notably in_irq) from which\ntheir dma_alloc_coherent() sibling can be called.\n\nThe main potential downside of removing this is that gadget drivers\nwouldn\u0027t have specific knowledge that the controller drivers have:\nendpoints that aren\u0027t dma-capable don\u0027t need any dma mappings at all.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9d8bab58b758cd5a96d368a8cc64111c9ab50407",
      "tree": "710695adf1e50f2e4680c130d548ccd3e6251630",
      "parents": [
        "ad8c623f4f48085edd51c7f4cdfd10295547bf45"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Sun Jul 01 11:04:54 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:42 2007 -0700"
      },
      "message": "usb gadget stack: remove usb_ep_*_buffer(), part 1\n\nRemove usb_ep_{alloc,free}_buffer() calls, for small dma-coherent buffers.\nThis patch just removes the interface and its users; later patches will\nremove controller driver support.\n\n  - This interface is invariably not implemented correctly in the\n    controller drivers (e.g. using dma pools, a mechanism which\n    post-dates the interface by several years).\n\n  - At this point no gadget driver really *needs* to use it.  In\n    current kernels, any driver that needs such a mechanism could\n    allocate a dma pool themselves.\n\nRemoving this interface is thus a simplification and improvement.\n\nNote that the gmidi.c driver had a bug in this area; fixed.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9068a4c6467986e8fda5bdb29bd5f10c6788e2ff",
      "tree": "dcb2889be80b750da2454c60a1d567e391ee560b",
      "parents": [
        "e4f747373cd96c86db3c64c21710748c6889c03c"
      ],
      "author": {
        "name": "Milan Svoboda",
        "email": "msvoboda@ra.rockwell.com",
        "time": "Sat Jun 30 06:25:35 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:42 2007 -0700"
      },
      "message": "USB: pxa2xx_udc: use generic gpio layer\n\nThis patch lets the pxa2xx_udc use the generic gpio layer,\non the relevant PXA and IXP systems.\n\nSigned-off-by: Milan Svoboda \u003cmsvoboda@ra.rockwell.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "165fe97ed6107d3cde63592d5ac36400a5eb9f6f",
      "tree": "824bb475b4f36af465989c5dac62f4097a1bd01c",
      "parents": [
        "50d2dc7266573dfbdc84fc207494dd21315782ef"
      ],
      "author": {
        "name": "Craig W. Nadler",
        "email": "craig@nadler.us",
        "time": "Fri Jun 15 23:14:35 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:40 2007 -0700"
      },
      "message": "USB: add IAD support to usbfs and sysfs\n\nUSB_IAD: Adds support for USB Interface Association Descriptors.\n\nThis patch adds support to the USB host stack for parsing, storing, and\ndisplaying Interface Association Descriptors. In /proc/bus/usb/devices\nlines starting with A: show the fields in an IAD. In sysfs if an\ninterface on a USB device is referenced by an IAD the following files\nwill be added to the sysfs directory for that interface:\niad_bFirstInterface, iad_bInterfaceCount, iad_bFunctionClass, and\niad_bFunctionSubClass, iad_bFunctionProtocol\n\nSigned-off-by: Craig W. Nadler \u003ccraig@nadler.us\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8b3b01c898a44c2fc7217eb579982b9d132113f5",
      "tree": "4d7da145c0fa47243b0f67b62fcdfaa4f53d184e",
      "parents": [
        "300871cd963e24a68aaa9b762f4a10403697d9be"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jun 13 08:02:11 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:38 2007 -0700"
      },
      "message": "USB: Add URB_FREE_BUFFER flag and the logic behind it\n\nUSB: Add URB_FREE_BUFFER flag for freeing the transfer buffer\n\nIn some cases it is not needed that the driver keeps track of the\ntransfer buffer of an URB. It can be simply freed along with the\nURB itself when the reference count goes down to zero. The new\nflag URB_FREE_BUFFER enables this behavior.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "b41a60eca833d76593d4dac8a59f5c38714194ee",
      "tree": "a7c5cf721d9978503c3c8c88183747cf954b8733",
      "parents": [
        "54515fe528d8c6f9bfaf7d0b9fffb908deecad78"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed May 30 15:39:33 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:30 2007 -0700"
      },
      "message": "USB: add power/persist device attribute\n\nThis patch (as920) adds an extra level of protection to the\nUSB-Persist facility.  Now it will apply by default only to hubs; for\nall other devices the user must enable it explicitly by setting the\npower/persist device attribute.\n\nThe disconnect_all_children() routine in hub.c has been removed and\nits code placed inline.  This is the way it was originally as part of\nhub_pre_reset(); the revised usage in hub_reset_resume() is\nsufficiently different that the code can no longer be shared.\nLikewise, mark_children_for_reset() is now inline as part of\nhub_reset_resume().  The end result looks much cleaner than before.\n\nThe sysfs interface is updated to add the new attribute file, and\nthere are corresponding documentation updates.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f07600cf9eb3ee92777b2001e564faa413144a99",
      "tree": "e48f2e3051fde642e80269bf9c54b289d4abdb44",
      "parents": [
        "624d6c0732d2c4ac00945ad79dbb6ff39ba90ee3"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed May 30 15:38:16 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:34:30 2007 -0700"
      },
      "message": "USB: add reset_resume method\n\nThis patch (as918) introduces a new USB driver method: reset_resume.\nIt is called when a device needs to be reset as part of a resume\nprocedure (whether because of a device quirk or because of the\nUSB-Persist facility), thereby taking over a role formerly assigned to\nthe post_reset method.  As a consequence, post_reset no longer needs\nan argument indicating whether it is being called as part of a\nreset-resume.  This separation of functions makes the code clearer.\n\nIn addition, the pre_reset and post_reset method return types are\nchanged; they now must return an error code.  The return value is\nunused at present, but at some later time we may unbind drivers and\nre-probe if they encounter an error during reset handling.\n\nThe existing pre_reset and post_reset methods in the usbhid,\nusb-storage, and hub drivers are updated to match the new\nrequirements.  For usbhid the post_reset routine is also used for\nreset_resume (duplicate method pointers); for the other drivers a new\nreset_resume routine is added.  The change to hub.c looks bigger than\nit really is, because mark_children_for_reset_resume() gets moved down\nnext to the new hub_reset_resume() routine.\n\nA minor change to usb-storage makes the usb_stor_report_bus_reset()\nroutine acquire the host lock instead of requiring the caller to hold\nit already.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCC: Matthew Dharm \u003cmdharm-usb@one-eyed-alien.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "51a2f077c44e559841b09de6da605b4d3ae40dad",
      "tree": "2d4d0064994de2223abac57f7242579649717ae6",
      "parents": [
        "ffcdc18d64d73ecce49c182f969977ae88ff4384"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.de",
        "time": "Fri May 25 13:40:56 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:51 2007 -0700"
      },
      "message": "USB: introduce usb_anchor\n\n- introduction of usb_anchor and its methods\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a5262dcfda9163ca1f8a64349a6f7ba640ac1dc2",
      "tree": "268090b3a52fb2a3e3e08b91a934e76558d187f8",
      "parents": [
        "8234509c3968a87faa301a8a9d7f8b987cd9181c"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Mon May 14 19:36:41 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:50 2007 -0700"
      },
      "message": "USB: export \u003clinux/usb_gadgetfs\u003e as \u003clinux/usb/gadgetfs.h\u003e\n\nMake sure gadgetfs userspace interface is properly exported:\n\n - Move \u003clinux/usb_gadgetfs.h\u003e to \u003clinux/usb/gadgetfs.h\u003e;\n - Export it using Kbuild;\n - Add an #include guard;\n - Correct some internal documentation;\n - Update struct layout so it\u0027s the same on 32/64 bit kernels.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "8538f96ae5aada1c04d69a993b20ad160b191d47",
      "tree": "53545dc889b838ad9807acff4d2b4409f0661b72",
      "parents": [
        "7f9985c2e4e5555b750d6f891b4923e63cc834c1"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Thu May 10 00:32:24 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:48 2007 -0700"
      },
      "message": "USB: add USB_DEVICE_AND_INTERFACE_INFO for device matching\n\nRecently, the USB device matching code stopped matching generic interface\nmatches against devices with vendor-specific device class values.\n\nSome drivers now need to explicitly match USB device ID\u0027s (in addition to\ngeneric interface info) to retain the same behaviour as before. This new macro,\nsuggested by Alan Stern, makes the explicit device/interface matching a little\nsimpler for those users.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6bc6cff52e0c4c4c876b1b8a5750041da61ad42b",
      "tree": "98b6815b071be2b0dc8e10b661a7fb1e3cdd9e82",
      "parents": [
        "383975d765523a56dc43a6cd6d52e9b376800cf2"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri May 04 11:53:03 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:47 2007 -0700"
      },
      "message": "USB: add RESET_RESUME device quirk\n\nThis patch (as888) adds a new USB device quirk for devices which are\nunable to resume correctly.  By using the new code added for the\nUSB-persist facility, it is a simple matter to reset these devices\ninstead of resuming them.  To get things kicked off, a quirk entry is\nadded for the Philips PSC805.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0458d5b4c9cc4ca0f62625d0144ddc4b4bc97a3c",
      "tree": "8b1fcb4f063ef4aa6f2e3cd41a60d986a1e432d4",
      "parents": [
        "ce7cd137fced114d49178b73d468b82096a107fb"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri May 04 11:52:20 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:47 2007 -0700"
      },
      "message": "USB: add USB-Persist facility\n\nThis patch (as886) adds the controversial USB-persist facility,\nallowing USB devices to persist across a power loss during system\nsuspend.\n\nThe facility is controlled by a new Kconfig option (with appropriate\nwarnings about the potential dangers); when the option is off the\nbehavior will remain the same as it is now.  But when the option is\non, people will be able to use suspend-to-disk and keep their USB\nfilesystems intact -- something particularly valuable for small\nmachines where the root filesystem is on a USB device!\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ec22559e0b7a05283a3413bda5d177e42c950e23",
      "tree": "5f7a9ae8907cdf910532381111ce4b8aae877e05",
      "parents": [
        "dd172d72addefd89795e819cc2cc3eb1b9d12a7f"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.de",
        "time": "Fri Apr 27 20:54:57 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jul 12 16:29:44 2007 -0700"
      },
      "message": "USB: suspend support for usb serial\n\nthis implements generic support for suspend/resume for usb serial.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "57e4acb3f63e1d3d74a75613eefde8b2d68164e3",
      "tree": "f92c4c52f002a3b31b75b6336c80fe050df06c73",
      "parents": [
        "dd172d72addefd89795e819cc2cc3eb1b9d12a7f"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jul 12 16:04:39 2007 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jul 12 16:04:39 2007 -0700"
      },
      "message": "[IA64] Un-break ia64 build\n\nCommit 91a6902958f052358899f58683d44e36228d85c2 added an extra\nargument to pci_read_legacy_io() and pci_write_legacy_io().  But\nthe prototypes in include/asm-ia64/pci.h were not updated.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "65541cb7cf353946ecd78016a453b453b8830656",
      "tree": "0a93ed27fdb6caf3f90250eaaf179b560e6742f3",
      "parents": [
        "6a775e2ba4f7635849ade628e64723ab2beef0bc"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Thu Jun 21 13:03:11 2007 +0300"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Thu Jul 12 15:41:24 2007 -0700"
      },
      "message": "IB/mlx4: Implement query SRQ\n\nSigned-off-by: Dotan Barak \u003cdotanb@mellanox.co.il\u003e\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "6a775e2ba4f7635849ade628e64723ab2beef0bc",
      "tree": "3c80d06d5f2f7135c81dddc2dcd6e536f9ecf22d",
      "parents": [
        "6164c8cd1333403a28202f7c7e64ff9086d8f1aa"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Thu Jun 21 12:27:47 2007 +0300"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Thu Jul 12 15:41:00 2007 -0700"
      },
      "message": "IB/mlx4: Implement query QP\n\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "4aabab2181f20560948c2045ce1faaa9ac1507a8",
      "tree": "6556e126687c9cbb4b4a35a8ad8c327df30ac256",
      "parents": [
        "bb50cbbd4beacd5ceda76c32fcb116c67fe8c66c",
        "ca9ced7f6798868f9d2c81a59b49f8c2136685d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 14:17:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 14:17:12 2007 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (50 commits)\n  [ARM] sa1100: remove boot time RTC initialisation\n  [ARM] sa1100: stop doing our own rtc management over suspend\n  [ARM] 4474/1: Do not check the PSR_F_BIT in valid_user_regs\n  [ARM] 4473/2:  Take the HWCAP definitions out of the elf.h file\n  [ARM] pxa: move platform devices to separate header file\n  [ARM] pxa: move device registration into CPU-specific file\n  [ARM] pxa: remove boot time RTC initialisation\n  [ARM] pxa: stop doing our own rtc management over suspend\n  [ARM] 4451/1: pxa: make dma.c generic and remove cpu specific dma code\n  [ARM] 4450/1: pxa: add pxa25x_init_irq() and pxa27x_init_irq()\n  [ARM] 4440/1: PXA: enable the checking of ICIP2 for IRQs\n  [ARM] 4438/1: PXA: remove #ifdef .. #endif from pxa_gpio_demux_handler()\n  [ARM] 4437/1: PXA: move the GPIO IRQ initialization code to pxa_init_irq_gpio()\n  [ARM] 4436/1: PXA: move low IRQ initialization code to pxa_init_irq_low()\n  [ARM] 4435/1: PXA: remove PXA_INTERNAL_IRQS\n  [ARM] 4434/1: PXA: remove PXA_IRQ_SKIP\n  [ARM] pxa: Fix PXA27x suspend type validation, remove pxa_pm_prepare()\n  [ARM] pxa: move pm_ops structure into CPU specific files\n  [ARM] pxa: introduce cpu_is_pxaXXX macros\n  [ARM] pxa: remove MMC register defines from pxa-regs.h\n  ...\n"
    }
  ],
  "next": "bb50cbbd4beacd5ceda76c32fcb116c67fe8c66c"
}
