)]}'
{
  "log": [
    {
      "commit": "e02a4cabfcb9a999b74a2e2e6f13ffcb7ff2d606",
      "tree": "2f3db60be4c57eca2a4c3ab3f3122dcf1ec0c624",
      "parents": [
        "600511e86babe3727264a0883a3a264f6fb6caf5",
        "f3cab8a0b1a772dc8b055b7affa567a366627c9e"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 29 17:18:49 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 29 17:18:49 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "f3cab8a0b1a772dc8b055b7affa567a366627c9e",
      "tree": "39c4736047e7f1f6617a4703b3ebf62df1d68d34",
      "parents": [
        "76babde121d2ffef04ca692ce64ef9f8a9866086",
        "65b4b4e81a5094d52cbe372b887b1779abe53f9b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 29 11:29:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 29 11:29:33 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [NETFILTER]: Rename init functions.\n  [TCP]: Fix RFC2465 typo.\n  [INET]: Introduce tunnel4/tunnel6\n  [NET]: deinline 200+ byte inlines in sock.h\n  [ECONET]: Convert away from SOCKOPS_WRAPPED\n  [NET]: Fix ipx/econet/appletalk/irda ioctl crashes\n  [NET]: Kill Documentation/networking/TODO\n  [TG3]: Update version and reldate\n  [TG3]: Skip timer code during full lock\n  [TG3]: Speed up SRAM access\n  [TG3]: Fix PHY loopback on 5700\n  [TG3]: Fix bug in 40-bit DMA workaround code\n  [TG3]: Fix probe failure due to invalid MAC address\n"
    },
    {
      "commit": "76babde121d2ffef04ca692ce64ef9f8a9866086",
      "tree": "294923bbb4974258d86d223e35eee691abacdfb1",
      "parents": [
        "e71ac6032edf77a1e4a81f3e3b260807e94b37a5",
        "15e812ad849e142e3dfc984d33c4d8042389f148"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 29 11:28:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 29 11:28:30 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (67 commits)\n  [PATCH] powerpc: Remove oprofile spinlock backtrace code\n  [PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus\n  [PATCH] powerpc: Add oprofile calltrace support\n  [PATCH] for_each_possible_cpu: ppc\n  [PATCH] for_each_possible_cpu: powerpc\n  [PATCH] lock PTE before updating it in 440/BookE page fault handler\n  [PATCH] powerpc: Kill _machine and hard-coded platform numbers\n  ppc: Fix compile error in arch/ppc/lib/strcase.c\n  [PATCH] git-powerpc: WARN was a dumb idea\n  [PATCH] powerpc: a couple of trivial compile warning fixes\n  powerpc: remove OCP references\n  powerpc: Make uImage default build output for MPC8540 ADS\n  powerpc: move math-emu over to arch/powerpc\n  powerpc: use memparse() for mem\u003d command line parsing\n  ppc: fix strncasecmp prototype\n  [PATCH] powerpc: make ISA floppies work again\n  [PATCH] powerpc: Fix some initcall return values\n  [PATCH] powerpc: Workaround for pSeries RTAS bug\n  [PATCH] spufs: fix __init/__exit annotations\n  [PATCH] powerpc: add hvc backend for rtas\n  ...\n"
    },
    {
      "commit": "15e812ad849e142e3dfc984d33c4d8042389f148",
      "tree": "e2d50c583457e8c4b2d06eea9846c04d0f5629d7",
      "parents": [
        "fa465f8c7008c6cab32b05f3f1af57f7c86e8873"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Mar 27 12:00:45 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Mar 29 13:44:16 2006 +1100"
      },
      "message": "[PATCH] powerpc: Remove oprofile spinlock backtrace code\n\nRemove oprofile spinlock backtrace code now we have proper calltrace\nsupport. Also make MMCRA sihv and sipr bits a variable since they may\nchange in future cpus. Finally, MMCRA should be a 64bit quantity.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "6c6bd754bf43d59756f094de144ecac239629dda",
      "tree": "b6cf2a7a3f133d24d22c63ba7bb8f9ebb02a8bab",
      "parents": [
        "b848e0a07dd5a874821bb587bb724fac4aa45bad"
      ],
      "author": {
        "name": "Brian Rogan",
        "email": "bcr6@cornell.edu",
        "time": "Mon Mar 27 11:57:01 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Mar 29 13:44:16 2006 +1100"
      },
      "message": "[PATCH] powerpc: Add oprofile calltrace support\n\nAdd oprofile calltrace support to powerpc. Disable spinlock backtracing\nnow we can use calltrace info.\n\n(Updated to work on both 32bit and 64bit by me).\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "0e5519548fdc8eadc3eacb49b1908d44d347fb2b",
      "tree": "176d01babed4ece005f6c4715c464411c4262e9b",
      "parents": [
        "bab70a4af737f623de5b034976a311055308ab86"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 14:50:51 2006 -0800"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Mar 29 13:44:15 2006 +1100"
      },
      "message": "[PATCH] for_each_possible_cpu: powerpc\n\nfor_each_cpu() actually iterates across all possible CPUs.  We\u0027ve had mistakes\nin the past where people were using for_each_cpu() where they should have been\niterating across only online or present CPUs.  This is inefficient and\npossibly buggy.\n\nWe\u0027re renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the\nfuture.\n\nThis patch replaces for_each_cpu with for_each_possible_cpu.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "bab70a4af737f623de5b034976a311055308ab86",
      "tree": "f8c0e9463de01323db2cb1a62f4eb83adb5ce7ca",
      "parents": [
        "bac30d1a78d0f11c613968fc8b351a91ed465386"
      ],
      "author": {
        "name": "Eugene Surovegin",
        "email": "ebs@ebshome.net",
        "time": "Tue Mar 28 10:13:12 2006 -0800"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Mar 29 13:44:15 2006 +1100"
      },
      "message": "[PATCH] lock PTE before updating it in 440/BookE page fault handler\n\nFix 44x and BookE page fault handler to correctly lock PTE before\ntrying to pte_update() it, otherwise this PTE might be swapped out\nafter pte_present() check but before pte_uptdate() call, resulting in\ncorrupted PTE. This can happen with enabled preemption and low memory\ncondition.\n\nSigned-off-by: Eugene Surovegin \u003cebs@ebshome.net\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "a7e5328a06a2beee3a2bbfaf87ce2a7bbe937de1",
      "tree": "168102a80e9b98d19e8bf39156d35dacdb253c3d",
      "parents": [
        "4a2c7a7837da1b91468e50426066d988050e4d56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] cleanup __exit_signal-\u003ecleanup_sighand path\n\nMove \u0027tsk-\u003esighand \u003d NULL\u0027 from cleanup_sighand() to __exit_signal().  This\nmakes the exit path more understandable and allows us to do\ncleanup_sighand() outside of -\u003esiglock protected section.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47e65328a7b1cdfc4e3102e50d60faf94ebba7d3",
      "tree": "78e00a5321cca87767806a91e623e71b5c6637c7",
      "parents": [
        "88531f725bd52e37a7be726860e4ff3f09031d89"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] pids: kill PIDTYPE_TGID\n\nThis patch kills PIDTYPE_TGID pid_type thus saving one hash table in\nkernel/pid.c and speeding up subthreads create/destroy a bit.  It is also a\npreparation for the further tref/pids rework.\n\nThis patch adds \u0027struct list_head thread_group\u0027 to \u0027struct task_struct\u0027\ninstead.\n\nWe don\u0027t detach group leader from PIDTYPE_PID namespace until another\nthread inherits it\u0027s -\u003epid \u003d\u003d -\u003etgid, so we are safe wrt premature\nfree_pidmap(-\u003etgid) call.\n\nCurrently there are no users of find_task_by_pid_type(PIDTYPE_TGID).\nShould the need arise, we can use find_task_by_pid()-\u003egroup_leader.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-By: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a14c5c9da0b4c34b5be783403c54f0396fcfe77",
      "tree": "63e40e5761eb5327ae4f713b284c67128cb4d261",
      "parents": [
        "c81addc9d3a0ebff2155e0cd86f90820ab97147e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] move __exit_signal() to kernel/exit.c\n\n__exit_signal() is private to release_task() now.  I think it is better to\nmake it static in kernel/exit.c and export flush_sigqueue() instead - this\nfunction is much more simple and straightforward.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c81addc9d3a0ebff2155e0cd86f90820ab97147e",
      "tree": "56eb3a50f71e7a0e2a0f0daef4ec097375b06f8d",
      "parents": [
        "29ff471234d53c7235db287bc52f91884c2977c6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] rename __exit_sighand to cleanup_sighand\n\nCosmetic, rename __exit_sighand to cleanup_sighand and move it close to\ncopy_sighand().\n\nThis matches copy_signal/cleanup_signal naming, and I think it is easier to\nfollow.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3934ef52712ece50605dfc72e55d00c580831a",
      "tree": "5ec3c4f69a20880f75de6ff8d7d2f67d96328df3",
      "parents": [
        "7001510d0cbf51ad202dd2d0744f54104285cbb9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] copy_process: cleanup bad_fork_cleanup_signal\n\n__exit_signal() does important cleanups atomically under -\u003esiglock.  It is\nalso called from copy_process\u0027s error path.  This is not good, for example we\ncan\u0027t move __unhash_process() under -\u003esiglock for that reason.\n\nWe should not mix these 2 paths, just look at ugly \u0027if (p-\u003esighand)\u0027 under\n\u0027bad_fork_cleanup_sighand:\u0027 label.  For copy_process() case it is sufficient\nto just backout copy_signal(), nothing more.\n\nAgain, nobody can see this task yet.  For CLONE_THREAD case we just decrement\nsignal-\u003ecount, otherwise nobody can see this -\u003esignal and we can free it\nlockless.\n\nThis patch assumes it is safe to do exit_thread_group_keys() without\ntasklist_lock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7001510d0cbf51ad202dd2d0744f54104285cbb9",
      "tree": "1df2a6930c460c12026231634b86d14b153a4a86",
      "parents": [
        "a9e88e84b5245da0a1dadb6ccca70ae84e93ccf6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] copy_process: cleanup bad_fork_cleanup_sighand\n\nThe only caller of exit_sighand(tsk) is copy_process\u0027s error path.  We can\ncall __exit_sighand() directly and kill exit_sighand().\n\nThis \u0027tsk\u0027 was not yet registered in pid_hash[] or init_task.tasks, it has no\nexternal references, nobody can see it, and\n\n\tIF (clone_flags \u0026 CLONE_SIGHAND)\n\t\tAt least \u0027current\u0027 has a reference to -\u003esighand, this\n\t\tmeans atomic_dec_and_test(sighand-\u003ecount) can\u0027t be true.\n\n\tELSE\n\t\tNobody can see this -\u003esighand, this means we can free it\n\t\twithout any locking.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f63ee72e0fb82e504a0489490babc7612c7cd6c2",
      "tree": "85167f8016d1f746135bf1777646a58c44376af1",
      "parents": [
        "aa1757f90bea3f598b6e5d04d922a6a60200f1da"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] introduce lock_task_sighand() helper\n\nAdd lock_task_sighand() helper and converts group_send_sig_info() to use\nit.  Hopefully we will have more users soon.\n\nThis patch also removes \u0027!sighand-\u003ecount\u0027 and \u0027!p-\u003eusage\u0027 checks, I think\nthey both are bogus, racy and unneeded (but probably it makes sense to\nrestore them as BUG_ON()s).\n\n-\u003esighand is cleared and it\u0027s -\u003ecount is decremented in release_task() with\nsighand-\u003esiglock held, so it is a bug to have \u0027!p-\u003eusage || !-\u003ecount\u0027 after\nwe already locked and verified it is the same.  On the other hand, an\nalready dead task without -\u003esighand can have a non-zero -\u003eusage due to\nptrace, for example.\n\nIf we read the stale value of -\u003esighand we must see the change after\nspin_lock(), because that change was done while holding that same old\n-\u003esighand.siglock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa1757f90bea3f598b6e5d04d922a6a60200f1da",
      "tree": "4f8f3804b2595031d0b84de7086dc28375290f0d",
      "parents": [
        "1f09f9749cdde4e69f95d62d96d2e03f50b3353c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] convert sighand_cache to use SLAB_DESTROY_BY_RCU\n\nThis patch borrows a clever Hugh\u0027s \u0027struct anon_vma\u0027 trick.\n\nWithout tasklist_lock held we can\u0027t trust task-\u003esighand until we locked it\nand re-checked that it is still the same.\n\nBut this means we don\u0027t need to defer \u0027kmem_cache_free(sighand)\u0027.  We can\nreturn the memory to slab immediately, all we need is to be sure that\nsighand-\u003esiglock can\u0027t dissapear inside rcu protected section.\n\nTo do so we need to initialize -\u003esiglock inside ctor function,\nSLAB_DESTROY_BY_RCU does the rest.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7c6464117a02b0d54feb4ebeca4db70fa493678",
      "tree": "903498de6685d769631edbd7bce7609d07365946",
      "parents": [
        "73b9ebfe126a4a886ee46cbab637374d7024668a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] pidhash: don\u0027t use zero pids\n\ndaemonize() calls set_special_pids(1,1), while init and kernel threads spawned\nfrom init/main.c:init() run with 0,0 special pids.  This patch changes\nINIT_SIGNALS() so that that they run with -\u003epgrp \u003d\u003d -\u003esession \u003d\u003d 1 also.  This\npatch relies on fact that swapper\u0027s pid \u003d\u003d 1.\n\nNow we have no hashed zero pids in pid_hash[].\n\nUser-space visibible change is that now /sbin/init runs with (1,1) special\npids and becomes a session leader.\n\nQuoting Eric W. Biederman:\n\u003e\n\u003e daemonize consuming pids (1,1) then consumes pgrp 1.  So that when\n\u003e /sbin/init calls setsid() it thinks /sbin/init is a process group\n\u003e leader and setsid() fails.  So /sbin/init wants pgrp 1 session 1\n\u003e but doesn\u0027t get it.  I am pretty certain daemonize did not exist so\n\u003e /sbin/init got pgrp 1 session 1 in 2.4.\n\u003e\n\u003e That is the bug that is being fixed.\n\u003e\n\u003e This patch takes things one step farther and essentially calls\n\u003e setsid() for pid \u003d\u003d 1 before init is execed.  That is new behavior\n\u003e but it cleans up the kernel as we now do not need to support the\n\u003e case of a process without a process group or a session.\n\u003e\n\u003e The only process that could have possibly cared was /sbin/init\n\u003e and it already calls setsid() because it doesn\u0027t want that.\n\u003e\n\u003e If this was going to break anything noticeable the change in behavior\n\u003e from 2.4 to 2.6 would have already done that.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73b9ebfe126a4a886ee46cbab637374d7024668a",
      "tree": "d7ba00d4ce76b49c1569334956cd196b35977a04",
      "parents": [
        "c97d98931ac52ef110b62d9b75c6a6f2bfbc1898"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] pidhash: don\u0027t count idle threads\n\nfork_idle() does unhash_process() just after copy_process().  Contrary,\nboot_cpu\u0027s idle thread explicitely registers itself for each pid_type with nr\n\u003d 0.\n\ncopy_process() already checks p-\u003epid !\u003d 0 before process_counts++, I think we\ncan just skip attach_pid() calls and job control inits for idle threads and\nkill unhash_process().  We don\u0027t need to cleanup -\u003eproc_dentry in fork_idle()\nbecause with this patch idle threads are never hashed in\nkernel/pid.c:pid_hash[].\n\nWe don\u0027t need to hash pid \u003d\u003d 0 in pidmap_init().  free_pidmap() is never\ncalled with pid \u003d\u003d 0 arg, so it will never be reused.  So it is still possible\nto use pid \u003d\u003d 0 in any PIDTYPE_xxx namespace from kernel/pid.c\u0027s POV.\n\nHowever with this patch we don\u0027t hash pid \u003d\u003d 0 for PIDTYPE_PID case.  We still\nhave have PIDTYPE_PGID/PIDTYPE_SID entries with pid \u003d\u003d 0: /sbin/init and\nkernel threads which don\u0027t call daemonize().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c97d98931ac52ef110b62d9b75c6a6f2bfbc1898",
      "tree": "f811f8b2862692c2eb7ee92e62e8f0afcfd37a2d",
      "parents": [
        "9b678ece42893b53aae5ed7cb8d7cb261cacb72c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] kill SET_LINKS/REMOVE_LINKS\n\nBoth SET_LINKS() and SET_LINKS/REMOVE_LINKS() have exactly one caller, and\nthese callers already check thread_group_leader().\n\nThis patch kills theese macros, they mix two different things: setting\nprocess\u0027s parent and registering it in init_task.tasks list.  Callers are\nupdated to do these actions by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fafabd86f1b75ed3cc6a6ffbe6c3e53e3d8457d",
      "tree": "3ae1a8fc44870ac3046213b11cad4aa8b3ce5f04",
      "parents": [
        "d799f03597cabc6112acb518fc8ab4487aa4f953"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] remove add_parent()\u0027s parent argument\n\nadd_parent(p, parent) is always called with parent \u003d\u003d p-\u003eparent, and it makes\nno sense to do it differently.  This patch removes this argument.\n\nNo changes in affected .o files.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d73d65293e3e2de7e916a89c8da30be0948afab7",
      "tree": "62b0ca76e3099c927f2960856dd060b136a8ccef",
      "parents": [
        "652486fb84a07ed750f1c11639518f55808bf555"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 28 16:11:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:40 2006 -0800"
      },
      "message": "[PATCH] pidhash: kill switch_exec_pids\n\nswitch_exec_pids is only called from de_thread by way of exec, and it is\nonly called when we are exec\u0027ing from a non thread group leader.\n\nCurrently switch_exec_pids gives the leader the pid of the thread and\nunhashes and rehashes all of the process groups.  The leader is already in\nthe EXIT_DEAD state so no one cares about it\u0027s pids.  The only concern for\nthe leader is that __unhash_process called from release_task will function\ncorrectly.  If we don\u0027t touch the leader at all we know that\n__unhash_process will work fine so there is no need to touch the leader.\n\nFor the task becomming the thread group leader, we just need to give it the\npid of the old thread group leader, add it to the task list, and attach it\nto the session and the process group of the thread group.\n\nCurrently de_thread is also adding the task to the task list which is just\nsilly.\n\nCurrently the only leader of __detach_pid besides detach_pid is\nswitch_exec_pids because of the ugly extra work that was being\nperformed.\n\nSo this patch removes switch_exec_pids because it is doing too much, it is\ncreating an unnecessary special case in pid.c, duing work duplicated in\nde_thread, and generally obscuring what it is going on.\n\nThe necessary work is added to de_thread, and it seems to be a little\nclearer there what is going on.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c99c5cb94319a601b5ec5ee31c331f84755dd74",
      "tree": "dca4d96ee6aa1cfbc36b3eaf060b14278e2bd0d7",
      "parents": [
        "1434261c07bcebd5ef8b8a18f919fdee533b84e0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 28 16:11:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:40 2006 -0800"
      },
      "message": "[PATCH] Remove dead kill_sl prototype from sched.h\n\nThe kill_sl function doesn\u0027t exist in the kernel so a prototype is completely\nunnecessary.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bac30d1a78d0f11c613968fc8b351a91ed465386",
      "tree": "e52f3c876522a2f6047a6ec1c27df2e8a79486b8",
      "parents": [
        "e8222502ee6157e2713da9e0792c21f4ad458d50",
        "ca9ba4471c1203bb6e759b76e83167fec54fe590"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Mar 29 13:24:50 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Mar 29 13:24:50 2006 +1100"
      },
      "message": "Merge ../linux-2.6\n"
    },
    {
      "commit": "d2acc3479cbccd5cfbca6c787be713ef1de12ec6",
      "tree": "aa348e19e15027db9abdd2da175a0c9055047858",
      "parents": [
        "f0088a50e7c49d1ba285c88fe06345f223652fd3"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 28 01:12:13 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 28 17:02:46 2006 -0800"
      },
      "message": "[INET]: Introduce tunnel4/tunnel6\n\nBasically this patch moves the generic tunnel protocol stuff out of\nxfrm4_tunnel/xfrm6_tunnel and moves it into the new files of tunnel4.c\nand tunnel6 respectively.\n\nThe reason for this is that the problem that Hugo uncovered is only\nthe tip of the iceberg.  The real problem is that when we removed the\ndependency of ipip on xfrm4_tunnel we didn\u0027t really consider the module\ncase at all.\n\nFor instance, as it is it\u0027s possible to build both ipip and xfrm4_tunnel\nas modules and if the latter is loaded then ipip simply won\u0027t load.\n\nAfter considering the alternatives I\u0027ve decided that the best way out of\nthis is to restore the dependency of ipip on the non-xfrm-specific part\nof xfrm4_tunnel.  This is acceptable IMHO because the intention of the\nremoval was really to be able to use ipip without the xfrm subsystem.\nThis is still preserved by this patch.\n\nSo now both ipip/xfrm4_tunnel depend on the new tunnel4.c which handles\nthe arbitration between the two.  The order of processing is determined\nby a simple integer which ensures that ipip gets processed before\nxfrm4_tunnel.\n\nThe situation for ICMP handling is a little bit more complicated since\nwe may not have enough information to determine who it\u0027s for.  It\u0027s not\na big deal at the moment since the xfrm ICMP handlers are basically\nno-ops.  In future we can deal with this when we look at ICMP caching\nin general.\n\nThe user-visible change to this is the removal of the TUNNEL Kconfig\nprompts.  This makes sense because it can only be used through IPCOMP\nas it stands.\n\nThe addition of the new modules shouldn\u0027t introduce any problems since\nmodule dependency will cause them to be loaded.\n\nOh and I also turned some unnecessary pskb\u0027s in IPv6 related to this\npatch to skb\u0027s.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0088a50e7c49d1ba285c88fe06345f223652fd3",
      "tree": "82e3fd2dfbab6e7b73f6c6aabf9ba108d007e4da",
      "parents": [
        "1d1818316f0b61e0997a159680e1e631a23a407e"
      ],
      "author": {
        "name": "Denis Vlasenko",
        "email": "vda@ilport.com.ua",
        "time": "Tue Mar 28 01:08:21 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 28 17:02:45 2006 -0800"
      },
      "message": "[NET]: deinline 200+ byte inlines in sock.h\n\nSizes in bytes (allyesconfig, i386) and files where those inlines\nare used:\n\n238 sock_queue_rcv_skb 2.6.16/net/x25/x25_in.o\n238 sock_queue_rcv_skb 2.6.16/net/rose/rose_in.o\n238 sock_queue_rcv_skb 2.6.16/net/packet/af_packet.o\n238 sock_queue_rcv_skb 2.6.16/net/netrom/nr_in.o\n238 sock_queue_rcv_skb 2.6.16/net/llc/llc_sap.o\n238 sock_queue_rcv_skb 2.6.16/net/llc/llc_conn.o\n238 sock_queue_rcv_skb 2.6.16/net/irda/af_irda.o\n238 sock_queue_rcv_skb 2.6.16/net/ipx/af_ipx.o\n238 sock_queue_rcv_skb 2.6.16/net/ipv6/udp.o\n238 sock_queue_rcv_skb 2.6.16/net/ipv6/raw.o\n238 sock_queue_rcv_skb 2.6.16/net/ipv4/udp.o\n238 sock_queue_rcv_skb 2.6.16/net/ipv4/raw.o\n238 sock_queue_rcv_skb 2.6.16/net/ipv4/ipmr.o\n238 sock_queue_rcv_skb 2.6.16/net/econet/econet.o\n238 sock_queue_rcv_skb 2.6.16/net/econet/af_econet.o\n238 sock_queue_rcv_skb 2.6.16/net/bluetooth/sco.o\n238 sock_queue_rcv_skb 2.6.16/net/bluetooth/l2cap.o\n238 sock_queue_rcv_skb 2.6.16/net/bluetooth/hci_sock.o\n238 sock_queue_rcv_skb 2.6.16/net/ax25/ax25_in.o\n238 sock_queue_rcv_skb 2.6.16/net/ax25/af_ax25.o\n238 sock_queue_rcv_skb 2.6.16/net/appletalk/ddp.o\n238 sock_queue_rcv_skb 2.6.16/drivers/net/pppoe.o\n\n276 sk_receive_skb 2.6.16/net/decnet/dn_nsp_in.o\n276 sk_receive_skb 2.6.16/net/dccp/ipv6.o\n276 sk_receive_skb 2.6.16/net/dccp/ipv4.o\n276 sk_receive_skb 2.6.16/net/dccp/dccp_ipv6.o\n276 sk_receive_skb 2.6.16/drivers/net/pppoe.o\n\n209 sk_dst_check 2.6.16/net/ipv6/ip6_output.o\n209 sk_dst_check 2.6.16/net/ipv4/udp.o\n209 sk_dst_check 2.6.16/net/decnet/dn_nsp_out.o\n\nLarge inlines with multiple callers:\nSize  Uses Wasted Name and definition\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  238   21   4360 sock_queue_rcv_skb    include/net/sock.h\n  109   10    801 sock_recv_timestamp   include/net/sock.h\n  276    4    768 sk_receive_skb        include/net/sock.h\n   94    8    518 __sk_dst_check        include/net/sock.h\n  209    3    378 sk_dst_check  include/net/sock.h\n  131    4    333 sk_setup_caps include/net/sock.h\n  152    2    132 sk_stream_alloc_pskb  include/net/sock.h\n  125    2    105 sk_stream_writequeue_purge    include/net/sock.h\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca9ba4471c1203bb6e759b76e83167fec54fe590",
      "tree": "8aeb359631742f77f635cb5ff785bea9132502f9",
      "parents": [
        "d4965b3e2ff94d0c7b7e6e7e9794b54950a2f4b9",
        "c4713074375c61f939310b04e92090afe29810dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 13:53:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 13:53:03 2006 -0800"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n\n* master.kernel.org:/home/rmk/linux-2.6-arm:\n  [ARM] 3388/1: ixp23xx: add core ixp23xx support\n  [ARM] 3417/1: add support for logicpd pxa270 card engine\n  [ARM] 3387/1: ixp23xx: add defconfig\n  [ARM] 3377/2: add support for intel xsc3 core\n  [ARM] Move ice-dcc code into misc.c\n  [ARM] Fix decompressor serial IO to give CRLF not LFCR\n  [ARM] proc-v6: mark page table walks outer-cacheable, shared.  Enable NX.\n  [ARM] nommu: trivial patch for arch/arm/lib/Makefile\n  [ARM] 3416/1: Update LART site URL\n  [ARM] 3415/1: Akita: Add missing EXPORT_SYMBOL\n  [ARM] 3414/1: ep93xx: reset ethernet controller before uncompressing\n"
    },
    {
      "commit": "d4965b3e2ff94d0c7b7e6e7e9794b54950a2f4b9",
      "tree": "e96e7a3e02acacd4ee200592ec176b94802d11e7",
      "parents": [
        "9561b03dc360068504cb296d325fb84295f91fbb",
        "aee85fe8e8143d3f54d9e6d3c6cdd40ead563267"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 13:52:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 13:52:37 2006 -0800"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-serial\n\n* master.kernel.org:/home/rmk/linux-2.6-serial:\n  [SERIAL] Provide Cirrus EP93xx AMBA PL010 serial support.\n  [SERIAL] amba-pl010: allow platforms to specify modem control method\n  [SERIAL] Remove obsoleted au1x00_uart driver\n  [SERIAL] Small time UART configuration fix for AU1100 processor\n"
    },
    {
      "commit": "c4713074375c61f939310b04e92090afe29810dc",
      "tree": "f09441eac8bd29a4a48f0360e1207d6def04b5fd",
      "parents": [
        "e9937d4b0a9382c4c78411d1c53e62be396ee9a9"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Mar 28 21:18:54 2006 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Mar 28 21:18:54 2006 +0100"
      },
      "message": "[ARM] 3388/1: ixp23xx: add core ixp23xx support\n\nPatch from Lennert Buytenhek\n\nThis patch adds support for the Intel ixp23xx series of CPUs.  The\nixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI\ninterface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit\nMACs, two 10/100 MACs, expansion bus, four microengines, a Media and\nSwitch Fabric unit almost identical to the one on the ixp2400, two\nxscale (8250ish) UARTs and a bunch of other stuff.\n\nThis patch adds the core ixp23xx support code, and support for the\nADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double\nEspresso platforms.\n\nSigned-off-by: Deepak Saxena \u003cdsaxena@plexity.net\u003e\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@wantstofly.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "e9937d4b0a9382c4c78411d1c53e62be396ee9a9",
      "tree": "c75b6c7b813d6d5172ddd47242d9b6ee8cc284a9",
      "parents": [
        "fa5ebfccf30741dc432cb81c25bb591c8018eb18"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Mar 28 21:08:13 2006 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Mar 28 21:08:13 2006 +0100"
      },
      "message": "[ARM] 3417/1: add support for logicpd pxa270 card engine\n\nPatch from Lennert Buytenhek\n\nAdd support for the LogicPD PXA270 Card Engine.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@wantstofly.org\u003e\nSigned-off-by: Nicolas Pitre \u003cnico@cam.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "23bdf86aa06ebe71bcbf6b7d25de9958c6ab33fa",
      "tree": "56636558e8cdeee0739e7d8c82d66ffe625340b3",
      "parents": [
        "de4533a04eb4f66dbef71f59a9c118256b886823"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Tue Mar 28 21:00:40 2006 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Mar 28 21:00:40 2006 +0100"
      },
      "message": "[ARM] 3377/2: add support for intel xsc3 core\n\nPatch from Lennert Buytenhek\n\nThis patch adds support for the new XScale v3 core.  This is an\nARMv5 ISA core with the following additions:\n\n- L2 cache\n- I/O coherency support (on select chipsets)\n- Low-Locality Reference cache attributes (replaces mini-cache)\n- Supersections (v6 compatible)\n- 36-bit addressing (v6 compatible)\n- Single instruction cache line clean/invalidate\n- LRU cache replacement (vs round-robin)\n\nI attempted to merge the XSC3 support into proc-xscale.S, but XSC3\ncores have separate errata and have to handle things like L2, so it\nis simpler to keep it separate.\n\nL2 cache support is currently a build option because the L2 enable\nbit must be set before we enable the MMU and there is no easy way to\ncapture command line parameters at this point.\n\nThere are still optimizations that can be done such as using LLR for\ncopypage (in theory using the exisiting mini-cache code) but those\ncan be addressed down the road.\n\nSigned-off-by: Deepak Saxena \u003cdsaxena@plexity.net\u003e\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@wantstofly.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "7baf398f12585ae77748716fa77113c1f1831153",
      "tree": "492361d848d3dfc33563a1bdf0d0f61b454aac82",
      "parents": [
        "78cd9e04e0acea4f622e84ca0c760c7eae0c6854",
        "206dc69b31ca05baac68c75b8ed2ba7dd857d273"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:25:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:25:44 2006 -0800"
      },
      "message": "Merge branch \u0027cfq-merge\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n\n* \u0027cfq-merge\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block:\n  [BLOCK] cfq-iosched: seek and async performance fixes\n  [PATCH] ll_rw_blk: fix 80-col offender in put_io_context()\n  [PATCH] cfq-iosched: small cfq_choose_req() optimization\n  [PATCH] [BLOCK] cfq-iosched: change cfq io context linking from list to tree\n"
    },
    {
      "commit": "78cd9e04e0acea4f622e84ca0c760c7eae0c6854",
      "tree": "6df4f07bfa77f8115e4250a14be76c04a2b5dc3e",
      "parents": [
        "ec7e15d6486e9d1da1c2f344b670b8388ba7019b",
        "6e57a3a89785692bd8d012d80f5ee210ab8e0b68"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:25:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:25:22 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:\n  [SPARC64]: Implement futex_atomic_cmpxchg_inatomic().\n"
    },
    {
      "commit": "7f927fcc2fd1575d01efb4b76665975007945690",
      "tree": "fbb84689600ea512d7b52f9fc46db2d7d8d7c1fd",
      "parents": [
        "ded23ac62776b4360d88e9b0330792d2c57fdfdf"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 28 01:56:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:08 2006 -0800"
      },
      "message": "[PATCH] Typo fixes\n\nFix a lot of typos.  Eyeballed by jmc@ in OpenBSD.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "910638ae7ed4be27d6af55f6c9b5bf54b838e78b",
      "tree": "5eda3cfd0e312c8b0916f6d5eb1cd98225e67891",
      "parents": [
        "60c904ae5bded8bb71f7bff7d63f2a6959d2a8e4"
      ],
      "author": {
        "name": "Matthias Gehre",
        "email": "M.Gehre@gmx.de",
        "time": "Tue Mar 28 01:56:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:07 2006 -0800"
      },
      "message": "[PATCH] Replace 0xff.. with correct DMA_xBIT_MASK\n\nReplace all occurences of 0xff..  in calls to function pci_set_dma_mask()\nand pci_set_consistant_dma_mask() with the corresponding DMA_xBIT_MASK from\nlinux/dma-mapping.h.\n\nSigned-off-by: Matthias Gehre \u003cM.Gehre@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f45e4656ac0609437267b242953c07d523649f8d",
      "tree": "bd70b8ae51d2a29c435a6567852f32badafb2720",
      "parents": [
        "50fc9999ec27ad66ce6db31ebb03759f77962bc1"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Mar 28 01:56:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] arch/i386/kernel/microcode.c: remove the obsolete microcode_ioctl\n\nNowadays, even Debian stable ships a microcode_ctl utility recent enough to no\nlonger use this ioctl.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Tigran Aivazian \u003ctigran_aivazian@symantec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99ac48f54a91d02140c497edc31dc57d4bc5c85d",
      "tree": "68719391694a6914191bdf73d2071875f7653f6f",
      "parents": [
        "ec1b9466cb4f6ae6d950bd67055d9410d1056d2a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] mark f_ops const in the inode\n\nMark the f_ops members of inodes as const, as well as fix the\nripple-through this causes by places that copy this f_ops and then \"do\nstuff\" with it.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a945022778f100115d0cb6234eb28fc1b15ccaf",
      "tree": "85df4b5f7dd8bf59557091379c59b23b09115bf6",
      "parents": [
        "631d6747e1d877a4baa924cb373b8b9511a53e5e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: fixes for generic part\n\nreplaces for_each_cpu with for_each_possible_cpu().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "631d6747e1d877a4baa924cb373b8b9511a53e5e",
      "tree": "5bb88d5c9716b9d9f398a6a1e8c8be4501671643",
      "parents": [
        "68c3431ae22912be580c68d3955ef46515582943"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:04 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: defines for_each_possible_cpu\n\nfor_each_cpu() is a for-loop over cpu_possible_map.  for_each_online_cpu is\nfor-loop cpu over cpu_online_map.  .....for_each_cpu() is not sufficiently\nexplicit and can lead to mistakes.\n\nThis patch adds for_each_possible_cpu() in preparation for the removal of\nfor_each_cpu().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70674f95c0a2ea694d5c39f4e514f538a09be36f",
      "tree": "906d109fafc5eafff6a90c8d866e0525fdaf6783",
      "parents": [
        "b02389e98a7b64ad5cd4823740defa8821f30bbd"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Mar 28 01:56:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:04 2006 -0800"
      },
      "message": "[PATCH] Optimize select/poll by putting small data sets on the stack\n\nOptimize select and poll by a using stack space for small fd sets\n\nThis brings back an old optimization from Linux 2.0.  Using the stack is\nfaster than kmalloc.  On a Intel P4 system it speeds up a select of a\nsingle pty fd by about 13% (~4000 cycles -\u003e ~3500)\n\nIt also saves memory because a daemon hanging in select or poll will\nusually save one or two less pages.  This can add up - e.g.  if you have 10\ndaemons blocking in poll/select you save 40KB of memory.\n\nI did a patch for this long ago, but it was never applied.  This version is\na reimplementation of the old patch that tries to be less intrusive.  I\nonly did the minimal changes needed for the stack allocation.\n\nThe cut off point before external memory is allocated is currently at\n832bytes.  The system calls always allocate this much memory on the stack.\n\nThese 832 bytes are divided into 256 bytes frontend data (for the select\nbitmaps of the pollfds) and the rest of the space for the wait queues used\nby the low level drivers.  There are some extreme cases where this won\u0027t\nwork out for select and it falls back to allocating memory too early -\nespecially with very sparse large select bitmaps - but the majority of\nprocesses who only have a small number of file descriptors should be ok.\n[TBD: 832/256 might not be the best split for select or poll]\n\nI suspect more optimizations might be possible, but they would be more\ncomplicated.  One way would be to cache the select/poll context over\nmultiple system calls because typically the input values should be similar.\n Problem is when to flush the file descriptors out though.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d266ab88938e49aa95f1965ee020df1b1d4c5761",
      "tree": "b31fff6d3f9d2008f4672b21c7f37c9e91888043",
      "parents": [
        "9edc91df07a227dbde9f98ee1097f554130993dc"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Mar 28 01:56:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:04 2006 -0800"
      },
      "message": "[PATCH] Small fixes backported to old IDE SiS driver\n\nSome quick backport bits from the libata PATA work to fix things found in\nthe sis driver.  The piix driver needs some fixes too but those are way to\nlarge and need someone working on old IDE with time to do them.\n\nThis patch fixes the case where random bits get loaded into SIS timing\nregisters according to the description of the correct behaviour from\nVojtech Pavlik.  It also adds the SiS5517 ATA16 chipset which is not\ncurrently supported by the driver.  Thanks to Conrad Harriss for loaning me\nthe machine with the 5517 chipset.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nAcked-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e51236092d2f7e40e87e88804b5b42e5f8025415",
      "tree": "9ac887d944107d86dad6a534bb0399b7cd60c15e",
      "parents": [
        "3ca1da4a82b169417b738a35783008c35da26466"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 28 01:56:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:03 2006 -0800"
      },
      "message": "[PATCH] remove relayfs_fs.h\n\nThis is obsolete.\n\nCc: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a28af471b8946de052a0eb0c080d5457be93f168",
      "tree": "e1a17db252831fc2cd7ff206f37b8232a34957e9",
      "parents": [
        "3b71797eff4352b4295919efc52de84f84d33d94"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Mar 28 01:56:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:03 2006 -0800"
      },
      "message": "[PATCH] fs/fat/: proper prototypes for two functions\n\nAdd proper prototypes for fat_cache_init() and fat_cache_destroy() in\nmsdos_fs.h.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a1e524a5fe6c5bf9dd4488e946fa835fda8c3d9",
      "tree": "1bb01a06d4e269e7af14ac9c38e70349ab547404",
      "parents": [
        "273577165cd206d2d6689ee4b18aa13de1ec4bde"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 28 01:56:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:02 2006 -0800"
      },
      "message": "[PATCH] alpha: make poll flags the same as other architectures\n\nRenumber the recently-added POLLREMOVE and POLLRDHUP to line up with the other\narchitectures.\n\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "273577165cd206d2d6689ee4b18aa13de1ec4bde",
      "tree": "f5dfaed2e193bb65a00ef551f02ace8726cc461c",
      "parents": [
        "f83ca9fe3ee390755f18b4a7780c25ce593b484a"
      ],
      "author": {
        "name": "Brian Rogan",
        "email": "bcr6@cornell.edu",
        "time": "Tue Mar 28 01:56:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:02 2006 -0800"
      },
      "message": "[PATCH] Add oprofile_add_ext_sample\n\nOn ppc64 we look at a profiling register to work out the sample address and\nif it was in userspace or kernel.\n\nThe backtrace interface oprofile_add_sample does not allow this.  Create\noprofile_add_ext_sample and make oprofile_add_sample use it too.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Philippe Elie \u003cphil.el@wanadoo.fr\u003e\nCc: John Levon \u003clevon@movementarian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0080b7aae88c75e2a6b38dfcb228b0f239e18e3c",
      "tree": "445aadcb5f4e6271d9dfc6a35395a0a3a57716c6",
      "parents": [
        "86a34147d1f1c94e94500e63e83f9fa42548a088"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Tue Mar 28 01:56:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:02 2006 -0800"
      },
      "message": "[PATCH] synclink_gt add gpio feature\n\nAdd driver support for general purpose I/O feature of the Synclink GT\nadapters.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@micrgate.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5f5370da4b3128b7dfd944b4fcbb5c7b6887348",
      "tree": "45a00ae5b234648083bad84db213da3b8220b679",
      "parents": [
        "4f3a36a7d0eb420471506fcd46ee46f4b5cd4ebc"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Tue Mar 28 01:56:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:01 2006 -0800"
      },
      "message": "[PATCH] Decrapify asm-generic/local.h\n\nNow that Christoph Lameter\u0027s atomic_long_t support is merged in mainline,\nmight as well convert asm-generic/local.h to use it, so the same code can\nbe used for both sizes of 32 and 64-bit unsigned longs.\n\nakpm sayeth:\n\nQ:\n\n  Is there any particular reason why these routines weren\u0027t simply\n  implemented with local_save/restore_flags, if they are only meant to\n  guarantee atomicity to the local cpu?  I\u0027m sure on most platforms this\n  would be more efficient than using an atomic...\n\nA:\n\n  The whole _point_ of local_t is to avoid local_irq_disable().  It\u0027s\n  designed to exploit the fact that many CPUs can do incs and decs in a way\n  which is atomic wrt local interrupts, but not atomic wrt SMP.\n\nBut this patch makes sense, because asm-generic/local.h is just a fallback\nimplementation for architectures which either cannot perform these\nlocal-irq-atomic operations, or its maintainers haven\u0027t yet got around to\nimplementing them.\n\nWe need more work done on local_t in the 2.6.17 timeframe - they\u0027re defined as\nunsigned long, but some architectures implement them as signed long.\n\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "41623b064fbd76de5901da7c0e3cd2136617d787",
      "tree": "f96bb5c45d7fa4a899af2be27a3bbdca079b023a",
      "parents": [
        "4c2e6f6a06cdd239ec17e195e7868ce0171ea154"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Mar 28 01:56:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:01 2006 -0800"
      },
      "message": "[PATCH] RTC: Fix up some RTC whitespace and style\n\nFix up some RTC whitespace and style\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "da2468b6a81884a696fd6c7ab66dcc62d7233d32",
      "tree": "9510cd3e9711d9bcbd7196be4209533efd83252d",
      "parents": [
        "4af6ec46c696a57ba9b1c1abffcdca14d6ab5410"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Mar 28 01:56:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:00 2006 -0800"
      },
      "message": "[PATCH] RTC: Remove RTC UIP synchronization on MIPS MC146818\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63732c2f37093d63102d53e70866cf87bf0c0479",
      "tree": "bf364131da50132b6e27cfb028eee725fb4fe3e5",
      "parents": [
        "329b10bb0feacb7fb9a41389313ff0a51ae56f2a"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Mar 28 01:55:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:00 2006 -0800"
      },
      "message": "[PATCH] RTC: Remove RTC UIP synchronization on x86\n\nReading the CMOS clock on x86 and some other arches currently takes up to one\nsecond because it synchronizes with the CMOS second tick-over.  This delay\nshows up at boot time as well a resume time.\n\nThis is the currently the most substantial boot time delay for machines that\nare working towards instant-on capability.  Also, a quick back of the envelope\ncalculation (.5sec * 2M users * 1 boot a day * 10 years) suggests it has cost\nLinux users in the neighborhood of a million man-hours.\n\nAn earlier thread on this topic is here:\n\nhttp://groups.google.com/group/linux.kernel/browse_frm/thread/8a24255215ff6151/2aa97e66a977653d?hl\u003den\u0026lr\u003d\u0026ie\u003dUTF-8\u0026rnum\u003d1\u0026prev\u003d/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1To2R-2S7-11%40gated-at.bofh.it#2aa97e66a977653d\n\n..from which the consensus seems to be that it\u0027s no longer desirable.\n\nIn my view, there are basically four cases to consider:\n\n1) networked, need precise walltime: use NTP\n2) networked, don\u0027t need precise walltime: use NTP anyway\n3) not networked, don\u0027t need sub-second precision walltime: don\u0027t care\n4) not networked, need sub-second precision walltime:\n   get a network or a radio time source because RTC isn\u0027t good enough anyway\n\nSo this patch series simply removes the synchronization in favor of a simple\nseqlock-like approach using the seconds value.\n\nNote that for purposes of timer accuracy on wakeup, this patch will cause us\nto fire timers up to one second late.  But as the current timer resume code\nwill already sync once (or more!), it\u0027s no worse for short timers.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e8222502ee6157e2713da9e0792c21f4ad458d50",
      "tree": "0f970fb99912c257a7e5254f863a53f79d22ab14",
      "parents": [
        "056cb48a2fb6fb31debf665695a9f97b45cfb8ec"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Mar 28 23:15:54 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 23:15:54 2006 +1100"
      },
      "message": "[PATCH] powerpc: Kill _machine and hard-coded platform numbers\n\nThis removes statically assigned platform numbers and reworks the\npowerpc platform probe code to use a better mechanism.  With this,\nboard support files can simply declare a new machine type with a\nmacro, and implement a probe() function that uses the flattened\ndevice-tree to detect if they apply for a given machine.\n\nWe now have a machine_is() macro that replaces the comparisons of\n_machine with the various PLATFORM_* constants.  This commit also\nchanges various drivers to use the new macro instead of looking at\n_machine.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "206dc69b31ca05baac68c75b8ed2ba7dd857d273",
      "tree": "f9ca5d996e19cb072165b1f6474c39b59b0e7451",
      "parents": [
        "7143dd4b0127141a4f773e819d1d1f4ab82bb517"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Mar 28 13:03:44 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Mar 28 13:03:44 2006 +0200"
      },
      "message": "[BLOCK] cfq-iosched: seek and async performance fixes\n\nDetect whether a given process is seeky and if so disable (mostly) the\nidle window if it is. We still allow just a little idle time, just enough\nto allow that process to submit a new request. That is needed to maintain\nfairness across priority groups.\n\nIn some cases, we could setup several async queues. This is not optimal\nfrom a performance POV, since we want all async io in one queue to perform\ngood sorting on it. It also impacted sync queues, as async io got too much\nslice time.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "872345b715ee02f3b45528449f0d11b44ef9ebb8",
      "tree": "f2baa4bb2c6461bc4dc1fb6f14d1f0ad93e7ccaa",
      "parents": [
        "4d177fbfdadb011f1bac96f9ccba0cc9f21da8de"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Mar 27 23:42:49 2006 -0800"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 20:48:54 2006 +1100"
      },
      "message": "[PATCH] git-powerpc: WARN was a dumb idea\n\nThere are at least 14 different implementations of WARN() in the tree already.\nThe build fails all over the place.\n\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "a081568d7016061ed848696984e3acf1ba0b3054",
      "tree": "5a6cd28d51e3c0b694499f4d0795b22a3d020eba",
      "parents": [
        "3747b36eeab93d8969e86987bbc1d44971229b26"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Tue Mar 28 10:24:33 2006 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Mar 28 10:24:33 2006 +0100"
      },
      "message": "[ARM] Fix decompressor serial IO to give CRLF not LFCR\n\nAs per the corresponding change to the serial drivers, arrange\nfor ARM decompressors to give CRLF.  Move the common putstr code\ninto misc.c such that machines only need to supply \"putc\" and\n\"flush\" functions.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "6e57a3a89785692bd8d012d80f5ee210ab8e0b68",
      "tree": "d55008a8c891193b1858487e1177a44f6add06fd",
      "parents": [
        "329b10bb0feacb7fb9a41389313ff0a51ae56f2a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 28 01:00:08 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 28 01:00:08 2006 -0800"
      },
      "message": "[SPARC64]: Implement futex_atomic_cmpxchg_inatomic().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2d74ac0664c89757bde8fb18c98cd7bf53da61c",
      "tree": "1e858044a9180766eae4ec694d4200c4ae850406",
      "parents": [
        "329b10bb0feacb7fb9a41389313ff0a51ae56f2a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Mar 28 08:59:01 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Mar 28 08:59:01 2006 +0200"
      },
      "message": "[PATCH] [BLOCK] cfq-iosched: change cfq io context linking from list to tree\n\nOn setups with many disks, we spend a considerable amount of time\nlooking up the process-disk mapping on each queue of io. Testing with\na NULL based block driver, this costs 40-50% reduction in throughput\nfor 1000 disks.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b239cbe957ae730caa8af2f169a4d35b8c1bb299",
      "tree": "7567ee8777c8b4331770240952b738cf4f52d1b9",
      "parents": [
        "69ed3324983bb937d78a8579ed91b90242ee5aaa"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Mar 28 14:40:58 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 16:45:36 2006 +1100"
      },
      "message": "[PATCH] powerpc: make ISA floppies work again\n\nWe used to assume that a DMA mapping request with a NULL dev was for\nISA DMA.  This assumption was broken at some point.  Now we explicitly\npass the detected ISA PCI device in the floppy setup.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "45d607ed92695d7543f5e1fc5b133cd69834e3e4",
      "tree": "c82b6ae1f9b9827894021797a85cbcbe6efca08e",
      "parents": [
        "11089f08d9dd8b89cd07d6f126ccb4849e3c61a3"
      ],
      "author": {
        "name": "Ryan S. Arnold",
        "email": "rsa@us.ibm.com",
        "time": "Mon Mar 27 21:25:16 2006 +0200"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 16:45:26 2006 +1100"
      },
      "message": "[PATCH] powerpc: hvc_console updates\n\nThese are some updates from both Ryan and Arnd for the hvc_console\ndriver:\n\nThe main point is to enable the inclusion of a console driver\nfor rtas, which is currrently needed for the cell platform.\n\nAlso shuffle around some data-type declarations and moves some\nfunctions out of include/asm-ppc64/hvconsole.h and into a new\ndrivers/char/hvc_console.h file.\n\nSigned-off-by: \"Ryan S. Arnold\" \u003crsa@us.ibm.com\u003e\nSigned-off-by: Arnd Bergmann \u003cabergman@de.ibm.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "d0160bf0b3e87032be8e85f80ddd2f18e107b86f",
      "tree": "ad29de605288def9799b1cde52e1c5ddf03b4ee6",
      "parents": [
        "2f25194dbe0c4b2472ce133ea3e9bcbb14936ae7"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Mon Mar 27 14:26:25 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 16:45:20 2006 +1100"
      },
      "message": "[PATCH] powerpc: Rename and export ppc64_firmware_features\n\nWe need to export ppc64_firmware_features for modules. Before we do that\nI think we should probably rename it to powerpc_firmware_features.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "2f25194dbe0c4b2472ce133ea3e9bcbb14936ae7",
      "tree": "4bb2a77da578dafd951ff2bd24ff2fd8c61c0b83",
      "parents": [
        "72533db0121e11811366b5a456f4068d1a4d542c"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Mar 27 11:46:18 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 16:19:52 2006 +1100"
      },
      "message": "[PATCH] powerpc: export validate_sp for oprofile calltrace\n\nExport validate_sp so we can use it in the oprofile calltrace code.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "72533db0121e11811366b5a456f4068d1a4d542c",
      "tree": "b7dfcb86ca34e76efec8b7f2c2f165cf8414bd02",
      "parents": [
        "0a26b1364f14852bc9a51db0ca63c5250c775627"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Mar 27 11:23:29 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 16:19:49 2006 +1100"
      },
      "message": "[PATCH] powerpc: Remove some ifdefs in oprofile_impl.h\n\n- No one uses op_counter_config.valid, so remove it\n- No need to ifdef around function protypes.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "0a26b1364f14852bc9a51db0ca63c5250c775627",
      "tree": "83422473cb4bf4c450012cded06288a0dc6abedf",
      "parents": [
        "ff2e6d7e27cf1f757ab0d97e1a9e46de47152a0e"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 10:22:10 2006 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Mar 28 10:22:10 2006 +1100"
      },
      "message": "ppc: Remove CHRP, POWER3 and POWER4 support from arch/ppc\n\n32-bit CHRP machines are now supported only in arch/powerpc, as are\nall 64-bit PowerPC processors.  This means that we don\u0027t use\nOpen Firmware on any platform in arch/ppc any more.\n\nThis makes PReP support a single-platform option like every other\nplatform support option in arch/ppc now, thus CONFIG_PPC_MULTIPLATFORM\nis gone from arch/ppc.  CONFIG_PPC_PREP is the option that selects\nPReP support and is generally what has replaced\nCONFIG_PPC_MULTIPLATFORM within arch/ppc.\n\n_machine is all but dead now, being #defined to 0.\n\nUpdated Makefiles, comments and Kconfig options generally to reflect\nthese changes.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "fdccffc6b711d1bfcd1e1b569537686dcad423e2",
      "tree": "51a4cdfad5ed6ea0fcec697f0f8e53a1d33ef326",
      "parents": [
        "4fa639123d9e6e8dfaa3d116368f4b2478da31af",
        "3eb4801d7bde42b82f05137392a1ee0ece090bad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:47:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:47:29 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [NET]: drop duplicate assignment in request_sock\n  [IPSEC]: Fix tunnel error handling in ipcomp6\n"
    },
    {
      "commit": "4fa639123d9e6e8dfaa3d116368f4b2478da31af",
      "tree": "50c42e2102a542891a15b5011e48fbde14149baf",
      "parents": [
        "df5b89b323b922f56650b4b4d7c41899b937cf19",
        "ae36b883d29e53b6083ed3d1d44f254cee7507d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:46:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:46:49 2006 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block:\n  [PATCH] Don\u0027t make debugfs depend on DEBUG_KERNEL\n  [PATCH] Fix blktrace compile with sysfs not defined\n  [PATCH] unused label in drivers/block/cciss.\n  [BLOCK] increase size of disk stat counters\n  [PATCH] blk_execute_rq_nowait-speedup\n  [PATCH] ide-cd: quiet down GPCMD_READ_CDVD_CAPACITY failure\n  [BLOCK] ll_rw_blk: kmalloc -\u003e kzalloc conversion\n  [PATCH] kzalloc() conversion in drivers/block\n  [PATCH] update max_sectors documentation\n"
    },
    {
      "commit": "df5b89b323b922f56650b4b4d7c41899b937cf19",
      "tree": "d1578782a9d763174474fe2db08f4ce4c6dc6218",
      "parents": [
        "48c9c27b8bcd2a328a06151e2d5c1170db0b701b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:03 2006 -0800"
      },
      "message": "[PATCH] md: Convert reconfig_sem to reconfig_mutex\n\n... being careful that mutex_trylock is inverted wrt down_trylock\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e464eafdb4400c6d6576ba3840d8bd40340f8a96",
      "tree": "0c3f4003c883264ee08300c02007f06e4d1ebb91",
      "parents": [
        "16484bf59634e25d1299761e5ed8bacf22bc6368"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:02 2006 -0800"
      },
      "message": "[PATCH] md: Support suspending of IO to regions of an md array\n\nThis allows user-space to access data safely.  This is needed for raid5\nreshape as user-space needs to take a backup of the first few stripes before\nallowing reshape to commence.\n\nIt will also be useful in cluster-aware raid1 configurations so that all\ncluster members can leave a section of the array untouched while a\nresync/recovery happens.\n\nA \u0027start\u0027 and \u0027end\u0027 of the suspended range are written to 2 sysfs attributes.\nNote that only one range can be suspended at a time.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63c70c4f3a30e77e6f445bd16eff7934a031ebd3",
      "tree": "12d2cd6cec5cd304bdf514ec8999a44c26f058ae",
      "parents": [
        "b578d55fdd80140f657130abd85aebeb345755fb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:02 2006 -0800"
      },
      "message": "[PATCH] md: Split reshape handler in check_reshape and start_reshape\n\ncheck_reshape checks validity and does things that can be done instantly -\nlike adding devices to raid1.  start_reshape initiates a restriping process to\nconvert the whole array.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b578d55fdd80140f657130abd85aebeb345755fb",
      "tree": "3737b88a25b3fb1e3347cd1c4c274336aee6a462",
      "parents": [
        "f67055780caac6a99f43834795c43acf99eba6a6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:02 2006 -0800"
      },
      "message": "[PATCH] md: Only checkpoint expansion progress occasionally\n\nInstead of checkpointing at each stripe, only checkpoint when a new write\nwould overwrite uncheckpointed data.  Block any write to the uncheckpointed\narea.  Arbitrarily checkpoint at least every 3Meg.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f67055780caac6a99f43834795c43acf99eba6a6",
      "tree": "6b80e7b4cb300edb0910dbad1d840ff8e2f36ae5",
      "parents": [
        "292695531ae4019bb15deedc121b218d1908b648"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Checkpoint and allow restart of raid5 reshape\n\nWe allow the superblock to record an \u0027old\u0027 and a \u0027new\u0027 geometry, and a\nposition where any conversion is up to.  The geometry allows for changing\nchunksize, layout and level as well as number of devices.\n\nWhen using verion-0.90 superblock, we convert the version to 0.91 while the\nconversion is happening so that an old kernel will refuse the assemble the\narray.  For version-1, we use a feature bit for the same effect.\n\nWhen starting an array we check for an incomplete reshape and restart the\nreshape process if needed.  If the reshape stopped at an awkward time (like\nwhen updating the first stripe) we refuse to assemble the array, and let\nuser-space worry about it.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "292695531ae4019bb15deedc121b218d1908b648",
      "tree": "fb205eae13c3f3410f6ea44557b1c96b075a4d44",
      "parents": [
        "ccfcc3c10b2a5cb8fd3c918199a4ff904fc6fb3e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Final stages of raid5 expand code\n\nThis patch adds raid5_reshape and end_reshape which will start and finish the\nreshape processes.\n\nraid5_reshape is only enabled in CONFIG_MD_RAID5_RESHAPE is set, to discourage\naccidental use.\n\nRead the \u0027help\u0027 for the CONFIG_MD_RAID5_RESHAPE entry.\n\nand Make sure that you have backups, just in case.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ccfcc3c10b2a5cb8fd3c918199a4ff904fc6fb3e",
      "tree": "0c86fe6ba0f0bafd76f86f81b7425d6d497664aa",
      "parents": [
        "7ecaa1e6a1ad69862e9980b6c777e11f26c4782d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Core of raid5 resize process\n\nThis patch provides the core of the resize/expand process.\n\nsync_request notices if a \u0027reshape\u0027 is happening and acts accordingly.\n\nIt allocated new stripe_heads for the next chunk-wide-stripe in the target\ngeometry, marking them STRIPE_EXPANDING.\n\nThen it finds which stripe heads in the old geometry can provide data needed\nby these and marks them STRIPE_EXPAND_SOURCE.  This causes stripe_handle to\nread all blocks on those stripes.\n\nOnce all blocks on a STRIPE_EXPAND_SOURCE stripe_head are read, any that are\nneeded are copied into the corresponding STRIPE_EXPANDING stripe_head.  Once a\nSTRIPE_EXPANDING stripe_head is full, it is marks STRIPE_EXPAND_READY and then\nis written out and released.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ecaa1e6a1ad69862e9980b6c777e11f26c4782d",
      "tree": "3cbd64ebc2a45f6b5ac45b0305fd3cf2c6916070",
      "parents": [
        "ad01c9e3752f4ba4f3d99c89b7370fa4983a25b5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Infrastructure to allow normal IO to continue while array is expanding\n\nWe need to allow that different stripes are of different effective sizes, and\nuse the appropriate size.  Also, when a stripe is being expanded, we must\nblock any IO attempts until the stripe is stable again.\n\nKey elements in this change are:\n - each stripe_head gets a \u0027disk\u0027 field which is part of the key,\n   thus there can sometimes be two stripe heads of the same area of\n   the array, but covering different numbers of devices.  One of these\n   will be marked STRIPE_EXPANDING and so won\u0027t accept new requests.\n - conf-\u003eexpand_progress tracks how the expansion is progressing and\n   is used to determine whether the target part of the array has been\n   expanded yet or not.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad01c9e3752f4ba4f3d99c89b7370fa4983a25b5",
      "tree": "856868aa97332d6d15d4cad412e0ebe3576bb571",
      "parents": [
        "b55e6bfcd23cb2f7249095050c649f7aea813f9f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Allow stripes to be expanded in preparation for expanding an array\n\nBefore a RAID-5 can be expanded, we need to be able to expand the stripe-cache\ndata structure.\n\nThis requires allocating new stripes in a new kmem_cache.  If this succeeds,\nwe copy cache pages over and release the old stripes and kmem_cache.\n\nWe then allocate new pages.  If that fails, we leave the stripe cache at it\u0027s\nnew size.  It isn\u0027t worth the effort to shrink it back again.\n\nUnfortuanately this means we need two kmem_cache names as we, for a short\nperiod of time, we have two kmem_caches.  So they are raid5/%s and\nraid5/%s-alt\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b55e6bfcd23cb2f7249095050c649f7aea813f9f",
      "tree": "78c854c1eeb85d48bf0956309cc7ccfa14e9805a",
      "parents": [
        "4588b42e9d0d0904a745c96cead66506c75bae21"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Split disks array out of raid5 conf structure so it is easier to grow\n\nThe remainder of this batch implements raid5 reshaping.  Currently the only\nshape change that is supported is added a device, but it is envisioned that\nchanging the chunksize and layout will also be supported, as well as changing\nthe level (e.g.  1-\u003e5, 5-\u003e6).\n\nThe reshape process naturally has to move all of the data in the array, and so\nshould be used with caution.  It is believed to work, and some testing does\nsupport this, but wider testing would be great for increasing my confidence.\n\nYou will need a version of mdadm newer than 2.3.1 to make use of raid5 growth.\n This is because mdadm need to take a copy of a \u0027critical section\u0027 at the\nstart of the array incase there is a crash at an awkward moment.  On restart,\nmdadm will restore the critical section and allow reshape to continue.\n\nI hope to release a 2.4-pre by early next week - it still needs a little more\npolishing.\n\nThis patch:\n\nPreviously the array of disk information was included in the raid5 \u0027conf\u0027\nstructure which was allocated to an appropriate size.  This makes it awkward\nto change the size of that array.  So we split it off into a separate\nkmalloced array which will require a little extra indexing, but is much easier\nto grow.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "641dc636b0475582e48584340b774bd1e90d40d9",
      "tree": "75c839cebd81a8ec4fae6c0cc35a387da160cfbe",
      "parents": [
        "100873687d81d4ce7b1299b447d33e87ba1e9583"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 27 01:17:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:00 2006 -0800"
      },
      "message": "[PATCH] dm/md dependency tree in sysfs: bd_claim_by_kobject\n\nAdding bd_claim_by_kobject() function which takes kobject as additional\nsignature of holder device and creates sysfs symlinks between holder device\nand claimed device.  bd_release_from_kobject() is a counterpart of\nbd_claim_by_kobject.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "100873687d81d4ce7b1299b447d33e87ba1e9583",
      "tree": "d001189d851885fca9a8b287053a4d179c071763",
      "parents": [
        "6a4d44c1f1108d6c9e8850e8cf166aaba0e56eae"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Mar 27 01:17:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:59 2006 -0800"
      },
      "message": "[PATCH] dm-md-dependency-tree-in-sysfs-holders-slaves-subdirectory-tidy\n\nRemove all the CONFIG_SYSFS stuff.  That\u0027s supposed to all be implemented up\nin header files.\n\nYes, the CONFIG_SYSFS\u003dn data structures will be a little larger than\nnecessary, but that\u0027s a tradeoff we can decide to make.\n\nCc: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a4d44c1f1108d6c9e8850e8cf166aaba0e56eae",
      "tree": "4e0b59ca2b4959e1593cbcdec4b90ec0d9041126",
      "parents": [
        "3ac51e741a46af7a20f55e79d3e3aeaa93c6c544"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 27 01:17:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:59 2006 -0800"
      },
      "message": "[PATCH] dm/md dependency tree in sysfs: holders/slaves subdirectory\n\nCreating \"slaves\" and \"holders\" directories in /sys/block/\u003cdisk\u003e and\ncreating \"holders\" directory under /sys/block/\u003cdisk\u003e/\u003cpartition\u003e\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3ac51e741a46af7a20f55e79d3e3aeaa93c6c544",
      "tree": "cab595a4d9691d7602616337b7862a1a3d692b97",
      "parents": [
        "1134e5ae79bab61c05657ca35a6297cf87202e35"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Mon Mar 27 01:17:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:59 2006 -0800"
      },
      "message": "[PATCH] dm store geometry\n\nAllow drive geometry to be stored with a new DM_DEV_SET_GEOMETRY ioctl.\nDevice-mapper will now respond to HDIO_GETGEO.  If the geometry information is\nnot available, zero will be returned for all of the parameters.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "969429b504ae866d3f8b1cafd68a2c099e305093",
      "tree": "538c0a77049450e434cfc890807822491f766113",
      "parents": [
        "4ee218cd67b385759993a6c840ea45f0ee0a8b30"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:17:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:59 2006 -0800"
      },
      "message": "[PATCH] dm: make sure QUEUE_FLAG_CLUSTER is set properly\n\nThis flag should be set for a virtual device iff it is set for all\nunderlying devices.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ed49843b897da9969e349c279ffc832efcb93213",
      "tree": "0c83e4ee08a0f765f0ce0d4bb7a6a140a4f466d8",
      "parents": [
        "6257ffacb9e1dc99a910d620ccb92ec88da20a4f"
      ],
      "author": {
        "name": "Pavel Roskin",
        "email": "proski@gnu.org",
        "time": "Mon Mar 27 01:17:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:57 2006 -0800"
      },
      "message": "[PATCH] Add ID for Quadro NVS280\n\nQuadro NVS280 is a dual-head PCIe card with PCI ID 10de:00fd and subsystem ID\n10de:0215.\n\nSigned-off-by: Pavel Roskin \u003cproski@gnu.org\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1d98af87270cc08bb8251e004b9dc63cc838f24b",
      "tree": "05098581730851d32b59fed728a7c86e8193677b",
      "parents": [
        "e842f1c8ff8a88f290e26d1139e89aad02c4e0c3"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Mon Mar 27 01:16:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:52 2006 -0800"
      },
      "message": "[PATCH] RTC subsystem: M48T86 driver\n\nAdd a driver for the ST M48T86 / Dallas DS12887 RTC.\n\nThis is a platform driver.  The platform device must provide I/O routines to\naccess the RTC.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7f3682fb2f8bc8a9c912baeea15454416ca1972",
      "tree": "ed30990cd38d5e39f1552bacd7bcce669c644a9b",
      "parents": [
        "6fc7f10cee28c7fa190920fefda8c696d5bf3074"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Mon Mar 27 01:16:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:51 2006 -0800"
      },
      "message": "[PATCH] RTC subsystem: I2C driver ids\n\nThis patch adds the I2C driver ids to i2c-id.h in preparation of the I2C\ndirect probing method.\n\nThis is kept separate so that it can be integrated to\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6fc7f10cee28c7fa190920fefda8c696d5bf3074",
      "tree": "549dd6be7fb058bf404deae6f72cd01f9ec177b3",
      "parents": [
        "0c86edc0d4970649f39748c4ce4f2895f728468f"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Mon Mar 27 01:16:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:51 2006 -0800"
      },
      "message": "[PATCH] RTC subsystem: I2C cleanup\n\nThis patch, completely optional, removes from drivers/i2c/chips all the\ndrivers that are implemented in the new RTC subsystem.\n\nIt should be noted that none of the current driver is actually integrated,\ni.e.  usable without further patches.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0c86edc0d4970649f39748c4ce4f2895f728468f",
      "tree": "d4a4b0a45922fff8add243d14c8377eb902aa80a",
      "parents": [
        "4079c39aaab65022f4875609d76e62669ef94c29"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Mon Mar 27 01:16:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:51 2006 -0800"
      },
      "message": "[PATCH] RTC subsystem: class\n\nAdd the basic RTC subsystem infrastructure to the kernel.\n\nrtc/class.c - registration facilities for RTC drivers\nrtc/interface.c - kernel/rtc interface functions\nrtc/hctosys.c - snippet of code that copies hw clock to sw clock\n\t\tat bootup, if configured to do so.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "12b824fb15a37cdcdfa3e92c9e912a07cc6f7a24",
      "tree": "85fb2cc63219078022a98471531ec8286eb2272d",
      "parents": [
        "c58411e95d7f5062dedd1a3064af4d359da1e633"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Mon Mar 27 01:16:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] RTC subsystem: ARM cleanup\n\nThis patch removes from the ARM subsytem some of the rtc-related functions\nthat have been included in the RTC subsystem.  It also fixes some naming\ncollisions.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c58411e95d7f5062dedd1a3064af4d359da1e633",
      "tree": "8816ec8e20ae8b1d622b41bc1e7e74c2bbd1f34d",
      "parents": [
        "d23ee8fe6e2176a9d4dbfdd18edfa1b5bc3c79a5"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Mon Mar 27 01:16:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] RTC Subsystem: library functions\n\nRTC and date/time related functions.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d23ee8fe6e2176a9d4dbfdd18edfa1b5bc3c79a5",
      "tree": "a3c00fd0f8db10e034eefdafafdd609b45c4d5c2",
      "parents": [
        "e041c683412d5bf44dc2b109053e3b837b71742d"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Mon Mar 27 01:16:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] mips: fixed collision of rtc function name\n\nFix the collision of rtc function name.\n\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e041c683412d5bf44dc2b109053e3b837b71742d",
      "tree": "9d271066ef379da0c0fb3b8cb4137abd5d2ebba0",
      "parents": [
        "76b81e2b0e2241accebcc68e126bc5ab958661b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 27 01:16:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] Notifier chain update: API changes\n\nThe kernel\u0027s implementation of notifier chains is unsafe.  There is no\nprotection against entries being added to or removed from a chain while the\nchain is in use.  The issues were discussed in this thread:\n\n    http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113018709002036\u0026w\u003d2\n\nWe noticed that notifier chains in the kernel fall into two basic usage\nclasses:\n\n\t\"Blocking\" chains are always called from a process context\n\tand the callout routines are allowed to sleep;\n\n\t\"Atomic\" chains can be called from an atomic context and\n\tthe callout routines are not allowed to sleep.\n\nWe decided to codify this distinction and make it part of the API.  Therefore\nthis set of patches introduces three new, parallel APIs: one for blocking\nnotifiers, one for atomic notifiers, and one for \"raw\" notifiers (which is\nreally just the old API under a new name).  New kinds of data structures are\nused for the heads of the chains, and new routines are defined for\nregistration, unregistration, and calling a chain.  The three APIs are\nexplained in include/linux/notifier.h and their implementation is in\nkernel/sys.c.\n\nWith atomic and blocking chains, the implementation guarantees that the chain\nlinks will not be corrupted and that chain callers will not get messed up by\nentries being added or removed.  For raw chains the implementation provides no\nguarantees at all; users of this API must provide their own protections.  (The\nidea was that situations may come up where the assumptions of the atomic and\nblocking APIs are not appropriate, so it should be possible for users to\nhandle these things in their own way.)\n\nThere are some limitations, which should not be too hard to live with.  For\natomic/blocking chains, registration and unregistration must always be done in\na process context since the chain is protected by a mutex/rwsem.  Also, a\ncallout routine for a non-raw chain must not try to register or unregister\nentries on its own chain.  (This did happen in a couple of places and the code\nhad to be changed to avoid it.)\n\nSince atomic chains may be called from within an NMI handler, they cannot use\nspinlocks for synchronization.  Instead we use RCU.  The overhead falls almost\nentirely in the unregister routine, which is okay since unregistration is much\nless frequent that calling a chain.\n\nHere is the list of chains that we adjusted and their classifications.  None\nof them use the raw API, so for the moment it is only a placeholder.\n\n  ATOMIC CHAINS\n  -------------\narch/i386/kernel/traps.c:\t\ti386die_chain\narch/ia64/kernel/traps.c:\t\tia64die_chain\narch/powerpc/kernel/traps.c:\t\tpowerpc_die_chain\narch/sparc64/kernel/traps.c:\t\tsparc64die_chain\narch/x86_64/kernel/traps.c:\t\tdie_chain\ndrivers/char/ipmi/ipmi_si_intf.c:\txaction_notifier_list\nkernel/panic.c:\t\t\t\tpanic_notifier_list\nkernel/profile.c:\t\t\ttask_free_notifier\nnet/bluetooth/hci_core.c:\t\thci_notifier\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_chain\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_expect_chain\nnet/ipv6/addrconf.c:\t\t\tinet6addr_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_expect_chain\nnet/netlink/af_netlink.c:\t\tnetlink_chain\n\n  BLOCKING CHAINS\n  ---------------\narch/powerpc/platforms/pseries/reconfig.c:\tpSeries_reconfig_chain\narch/s390/kernel/process.c:\t\tidle_chain\narch/x86_64/kernel/process.c\t\tidle_notifier\ndrivers/base/memory.c:\t\t\tmemory_chain\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_policy_notifier_list\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_transition_notifier_list\ndrivers/macintosh/adb.c:\t\tadb_client_list\ndrivers/macintosh/via-pmu.c\t\tsleep_notifier_list\ndrivers/macintosh/via-pmu68k.c\t\tsleep_notifier_list\ndrivers/macintosh/windfarm_core.c\twf_client_list\ndrivers/usb/core/notify.c\t\tusb_notifier_list\ndrivers/video/fbmem.c\t\t\tfb_notifier_list\nkernel/cpu.c\t\t\t\tcpu_chain\nkernel/module.c\t\t\t\tmodule_notify_list\nkernel/profile.c\t\t\tmunmap_notifier\nkernel/profile.c\t\t\ttask_exit_notifier\nkernel/sys.c\t\t\t\treboot_notifier_list\nnet/core/dev.c\t\t\t\tnetdev_chain\nnet/decnet/dn_dev.c:\t\t\tdnaddr_chain\nnet/ipv4/devinet.c:\t\t\tinetaddr_chain\n\nIt\u0027s possible that some of these classifications are wrong.  If they are,\nplease let us know or submit a patch to fix them.  Note that any chain that\ngets called very frequently should be atomic, because the rwsem read-locking\nused for blocking chains is very likely to incur cache misses on SMP systems.\n(However, if the chain\u0027s callout routines may sleep then the chain cannot be\natomic.)\n\nThe patch set was written by Alan Stern and Chandra Seetharaman, incorporating\nmaterial written by Keith Owens and suggestions from Paul McKenney and Andrew\nMorton.\n\n[jes@sgi.com: restructure the notifier chain initialization macros]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76b81e2b0e2241accebcc68e126bc5ab958661b9",
      "tree": "0d99cdc838cc2e7a5c383a56ec707ac739739d2c",
      "parents": [
        "8f17d3a5049d32392b79925c73a0cf99ce6d5af0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes updates 2\n\nfutex.h updates:\n\n- get rid of FUTEX_OWNER_PENDING - it\u0027s not used\n- reduce ROBUST_LIST_LIMIT to a saner value\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f17d3a5049d32392b79925c73a0cf99ce6d5af0",
      "tree": "3c2aa0cbe337684d353dd2cfb0c177b4ae15217c",
      "parents": [
        "8fdd6c6df7889dc89df3d9fe0f5bbe6733e39f48"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes updates\n\n- fix: initialize the robust list(s) to NULL in copy_process.\n\n- doc update\n\n- cleanup: rename _inuser to _inatomic\n\n- __user cleanups and other small cleanups\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fdd6c6df7889dc89df3d9fe0f5bbe6733e39f48",
      "tree": "e037a0eb7214818ad4ef177c618ef1e302c2aed9",
      "parents": [
        "dfd4e3ec246355274c9cf62c6b04a1ee6fa3caba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: x86_64\n\nx86_64: add the futex_atomic_cmpxchg_inuser() assembly implementation, and\nwire up the new syscalls.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfd4e3ec246355274c9cf62c6b04a1ee6fa3caba",
      "tree": "9b745a5f4b5134c2a101280f6bbd1947c15800d8",
      "parents": [
        "34f192c6527f20c47ccec239e7d51a27691b93fc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: i386\n\ni386: add the futex_atomic_cmpxchg_inuser() assembly implementation, and wire\nup the new syscalls.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34f192c6527f20c47ccec239e7d51a27691b93fc",
      "tree": "6c80416cf6a170a193f829e414051cc618b15ee3",
      "parents": [
        "2eec9ad91f71a3dbacece5c4fb5adc09fad53a96"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: compat\n\n32-bit syscall compatibility support.  (This patch also moves all futex\nrelated compat functionality into kernel/futex_compat.c.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0771dfefc9e538f077d0b43b6dec19a5a67d0e70",
      "tree": "696267e69228b7406b337f9651dedc75055a589e",
      "parents": [
        "e9056f13bfcdd054a0c3d730e4e096748d8a363a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: core\n\nAdd the core infrastructure for robust futexes: structure definitions, the new\nsyscalls and the do_exit() based cleanup mechanism.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9056f13bfcdd054a0c3d730e4e096748d8a363a",
      "tree": "876d70d99cb679f7c4cbf6609d6341cadfb5c57e",
      "parents": [
        "62ac285f3c701f0457a15fe01baa64a965c4f5f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: arch defaults\n\nThis patchset provides a new (written from scratch) implementation of robust\nfutexes, called \"lightweight robust futexes\".  We believe this new\nimplementation is faster and simpler than the vma-based robust futex solutions\npresented before, and we\u0027d like this patchset to be adopted in the upstream\nkernel.  This is version 1 of the patchset.\n\n  Background\n  ----------\n\nWhat are robust futexes?  To answer that, we first need to understand what\nfutexes are: normal futexes are special types of locks that in the\nnoncontended case can be acquired/released from userspace without having to\nenter the kernel.\n\nA futex is in essence a user-space address, e.g.  a 32-bit lock variable\nfield.  If userspace notices contention (the lock is already owned and someone\nelse wants to grab it too) then the lock is marked with a value that says\n\"there\u0027s a waiter pending\", and the sys_futex(FUTEX_WAIT) syscall is used to\nwait for the other guy to release it.  The kernel creates a \u0027futex queue\u0027\ninternally, so that it can later on match up the waiter with the waker -\nwithout them having to know about each other.  When the owner thread releases\nthe futex, it notices (via the variable value) that there were waiter(s)\npending, and does the sys_futex(FUTEX_WAKE) syscall to wake them up.  Once all\nwaiters have taken and released the lock, the futex is again back to\n\u0027uncontended\u0027 state, and there\u0027s no in-kernel state associated with it.  The\nkernel completely forgets that there ever was a futex at that address.  This\nmethod makes futexes very lightweight and scalable.\n\n\"Robustness\" is about dealing with crashes while holding a lock: if a process\nexits prematurely while holding a pthread_mutex_t lock that is also shared\nwith some other process (e.g.  yum segfaults while holding a pthread_mutex_t,\nor yum is kill -9-ed), then waiters for that lock need to be notified that the\nlast owner of the lock exited in some irregular way.\n\nTo solve such types of problems, \"robust mutex\" userspace APIs were created:\npthread_mutex_lock() returns an error value if the owner exits prematurely -\nand the new owner can decide whether the data protected by the lock can be\nrecovered safely.\n\nThere is a big conceptual problem with futex based mutexes though: it is the\nkernel that destroys the owner task (e.g.  due to a SEGFAULT), but the kernel\ncannot help with the cleanup: if there is no \u0027futex queue\u0027 (and in most cases\nthere is none, futexes being fast lightweight locks) then the kernel has no\ninformation to clean up after the held lock!  Userspace has no chance to clean\nup after the lock either - userspace is the one that crashes, so it has no\nopportunity to clean up.  Catch-22.\n\nIn practice, when e.g.  yum is kill -9-ed (or segfaults), a system reboot is\nneeded to release that futex based lock.  This is one of the leading\nbugreports against yum.\n\nTo solve this problem, \u0027Robust Futex\u0027 patches were created and presented on\nlkml: the one written by Todd Kneisel and David Singleton is the most advanced\nat the moment.  These patches all tried to extend the futex abstraction by\nregistering futex-based locks in the kernel - and thus give the kernel a\nchance to clean up.\n\nE.g.  in David Singleton\u0027s robust-futex-6.patch, there are 3 new syscall\nvariants to sys_futex(): FUTEX_REGISTER, FUTEX_DEREGISTER and FUTEX_RECOVER.\nThe kernel attaches such robust futexes to vmas (via\nvma-\u003evm_file-\u003ef_mapping-\u003erobust_head), and at do_exit() time, all vmas are\nsearched to see whether they have a robust_head set.\n\nLots of work went into the vma-based robust-futex patch, and recently it has\nimproved significantly, but unfortunately it still has two fundamental\nproblems left:\n\n - they have quite complex locking and race scenarios.  The vma-based\n   patches had been pending for years, but they are still not completely\n   reliable.\n\n - they have to scan _every_ vma at sys_exit() time, per thread!\n\nThe second disadvantage is a real killer: pthread_exit() takes around 1\nmicrosecond on Linux, but with thousands (or tens of thousands) of vmas every\npthread_exit() takes a millisecond or more, also totally destroying the CPU\u0027s\nL1 and L2 caches!\n\nThis is very much noticeable even for normal process sys_exit_group() calls:\nthe kernel has to do the vma scanning unconditionally!  (this is because the\nkernel has no knowledge about how many robust futexes there are to be cleaned\nup, because a robust futex might have been registered in another task, and the\nfutex variable might have been simply mmap()-ed into this process\u0027s address\nspace).\n\nThis huge overhead forced the creation of CONFIG_FUTEX_ROBUST, but worse than\nthat: the overhead makes robust futexes impractical for any type of generic\nLinux distribution.\n\nSo it became clear to us, something had to be done.  Last week, when Thomas\nGleixner tried to fix up the vma-based robust futex patch in the -rt tree, he\nfound a handful of new races and we were talking about it and were analyzing\nthe situation.  At that point a fundamentally different solution occured to\nme.  This patchset (written in the past couple of days) implements that new\nsolution.  Be warned though - the patchset does things we normally dont do in\nLinux, so some might find the approach disturbing.  Parental advice\nrecommended ;-)\n\n  New approach to robust futexes\n  ------------------------------\n\nAt the heart of this new approach there is a per-thread private list of robust\nlocks that userspace is holding (maintained by glibc) - which userspace list\nis registered with the kernel via a new syscall [this registration happens at\nmost once per thread lifetime].  At do_exit() time, the kernel checks this\nuser-space list: are there any robust futex locks to be cleaned up?\n\nIn the common case, at do_exit() time, there is no list registered, so the\ncost of robust futexes is just a simple current-\u003erobust_list !\u003d NULL\ncomparison.  If the thread has registered a list, then normally the list is\nempty.  If the thread/process crashed or terminated in some incorrect way then\nthe list might be non-empty: in this case the kernel carefully walks the list\n[not trusting it], and marks all locks that are owned by this thread with the\nFUTEX_OWNER_DEAD bit, and wakes up one waiter (if any).\n\nThe list is guaranteed to be private and per-thread, so it\u0027s lockless.  There\nis one race possible though: since adding to and removing from the list is\ndone after the futex is acquired by glibc, there is a few instructions window\nfor the thread (or process) to die there, leaving the futex hung.  To protect\nagainst this possibility, userspace (glibc) also maintains a simple per-thread\n\u0027list_op_pending\u0027 field, to allow the kernel to clean up if the thread dies\nafter acquiring the lock, but just before it could have added itself to the\nlist.  Glibc sets this list_op_pending field before it tries to acquire the\nfutex, and clears it after the list-add (or list-remove) has finished.\n\nThat\u0027s all that is needed - all the rest of robust-futex cleanup is done in\nuserspace [just like with the previous patches].\n\nUlrich Drepper has implemented the necessary glibc support for this new\nmechanism, which fully enables robust mutexes.  (Ulrich plans to commit these\nchanges to glibc-HEAD later today.)\n\nKey differences of this userspace-list based approach, compared to the vma\nbased method:\n\n - it\u0027s much, much faster: at thread exit time, there\u0027s no need to loop\n   over every vma (!), which the VM-based method has to do.  Only a very\n   simple \u0027is the list empty\u0027 op is done.\n\n - no VM changes are needed - \u0027struct address_space\u0027 is left alone.\n\n - no registration of individual locks is needed: robust mutexes dont need\n   any extra per-lock syscalls.  Robust mutexes thus become a very lightweight\n   primitive - so they dont force the application designer to do a hard choice\n   between performance and robustness - robust mutexes are just as fast.\n\n - no per-lock kernel allocation happens.\n\n - no resource limits are needed.\n\n - no kernel-space recovery call (FUTEX_RECOVER) is needed.\n\n - the implementation and the locking is \"obvious\", and there are no\n   interactions with the VM.\n\n  Performance\n  -----------\n\nI have benchmarked the time needed for the kernel to process a list of 1\nmillion (!) held locks, using the new method [on a 2GHz CPU]:\n\n - with FUTEX_WAIT set [contended mutex]: 130 msecs\n - without FUTEX_WAIT set [uncontended mutex]: 30 msecs\n\nI have also measured an approach where glibc does the lock notification [which\nit currently does for !pshared robust mutexes], and that took 256 msecs -\nclearly slower, due to the 1 million FUTEX_WAKE syscalls userspace had to do.\n\n(1 million held locks are unheard of - we expect at most a handful of locks to\nbe held at a time.  Nevertheless it\u0027s nice to know that this approach scales\nnicely.)\n\n  Implementation details\n  ----------------------\n\nThe patch adds two new syscalls: one to register the userspace list, and one\nto query the registered list pointer:\n\n asmlinkage long\n sys_set_robust_list(struct robust_list_head __user *head,\n                     size_t len);\n\n asmlinkage long\n sys_get_robust_list(int pid, struct robust_list_head __user **head_ptr,\n                     size_t __user *len_ptr);\n\nList registration is very fast: the pointer is simply stored in\ncurrent-\u003erobust_list.  [Note that in the future, if robust futexes become\nwidespread, we could extend sys_clone() to register a robust-list head for new\nthreads, without the need of another syscall.]\n\nSo there is virtually zero overhead for tasks not using robust futexes, and\neven for robust futex users, there is only one extra syscall per thread\nlifetime, and the cleanup operation, if it happens, is fast and\nstraightforward.  The kernel doesnt have any internal distinction between\nrobust and normal futexes.\n\nIf a futex is found to be held at exit time, the kernel sets the highest bit\nof the futex word:\n\n\t#define FUTEX_OWNER_DIED        0x40000000\n\nand wakes up the next futex waiter (if any). User-space does the rest of\nthe cleanup.\n\nOtherwise, robust futexes are acquired by glibc by putting the TID into the\nfutex field atomically.  Waiters set the FUTEX_WAITERS bit:\n\n\t#define FUTEX_WAITERS           0x80000000\n\nand the remaining bits are for the TID.\n\n  Testing, architecture support\n  -----------------------------\n\nI\u0027ve tested the new syscalls on x86 and x86_64, and have made sure the parsing\nof the userspace list is robust [ ;-) ] even if the list is deliberately\ncorrupted.\n\ni386 and x86_64 syscalls are wired up at the moment, and Ulrich has tested the\nnew glibc code (on x86_64 and i386), and it works for his robust-mutex\ntestcases.\n\nAll other architectures should build just fine too - but they wont have the\nnew syscalls yet.\n\nArchitectures need to implement the new futex_atomic_cmpxchg_inuser() inline\nfunction before writing up the syscalls (that function returns -ENOSYS right\nnow).\n\nThis patch:\n\nAdd placeholder futex_atomic_cmpxchg_inuser() implementations to every\narchitecture that supports futexes.  It returns -ENOSYS.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62ac285f3c701f0457a15fe01baa64a965c4f5f1",
      "tree": "e65539e7824ca902c42723216f5725711c9968ac",
      "parents": [
        "213b63b76a823e622d87df623aaec1119acaeaa0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] mips: add ptr_to_compat()\n\nAdd ptr_to_compat() - needed by the new robust futex code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "213b63b76a823e622d87df623aaec1119acaeaa0",
      "tree": "bcb1830a9a4c2501ed9f81424124a71536f95497",
      "parents": [
        "f267fa9f5b377b5cecdb2baf332fec08bb71246d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] parisc: add ptr_to_compat()\n\nAdd ptr_to_compat() to parisc - needed by the new robust futex code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Grant Grundler \u003ciod00d@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f267fa9f5b377b5cecdb2baf332fec08bb71246d",
      "tree": "6e1d51ecaa4b7c990b835e382acce8409607dbbd",
      "parents": [
        "66e863acd7f2fb02fef709d5f0ab069445d4a58c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] s390: add ptr_to_compat()\n\nAdd ptr_to_compat() to s390 - needed by the new robust-futex code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n\nuntested. CHECKME: am i right about the 0x7fffffffUL masking?\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66e863acd7f2fb02fef709d5f0ab069445d4a58c",
      "tree": "fdea0fc71150b579d96f385efd25a87e613bbab4",
      "parents": [
        "22a9835c350782a5c3257343713932af3ac92ee0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] ia64: add ptr_to_compat()\n\nAdd ptr_to_compat() to ia64 - needed by the robust-futex code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22a9835c350782a5c3257343713932af3ac92ee0",
      "tree": "9688e99426e8aa85a468cc724ffee32c6a8abcad",
      "parents": [
        "95144c788dc01b6a0ff2c9c2222e37ffdab358b8"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Mon Mar 27 01:16:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] unify PFN_* macros\n\nJust about every architecture defines some macros to do operations on pfns.\n They\u0027re all virtually identical.  This patch consolidates all of them.\n\nOne minor glitch is that at least i386 uses them in a very skeletal header\nfile.  To keep away from #include dependency hell, I stuck the new\ndefinitions in a new, isolated header.\n\nOf all of the implementations, sh64 is the only one that varied by a bit.\nIt used some masks to ensure that any sign-extension got ripped away before\nthe arithmetic is done.  This has been posted to that sh64 maintainers and\nthe development list.\n\nCompiles on x86, x86_64, ia64 and ppc64.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95144c788dc01b6a0ff2c9c2222e37ffdab358b8",
      "tree": "9f7f186575bb717de39cedaf42bf02a94c11b664",
      "parents": [
        "ae0f15fb91274e67d78836d38c99ec363df33073"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:16:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] uninline zone helpers\n\nHelper functions for for_each_online_pgdat/for_each_zone look too big to be\ninlined.  Speed of these helper macro itself is not very important.  (inner\nloops are tend to do more work than this)\n\nThis patch make helper function to be out-of-lined.\n\n\tinline\t\tout-of-line\n.text   005c0680        005bf6a0\n\n005c0680 - 005bf6a0 \u003d FE0 \u003d 4Kbytes.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "ae0f15fb91274e67d78836d38c99ec363df33073"
}
