)]}'
{
  "log": [
    {
      "commit": "6b9c7ed84837753a436415097063232422e29a35",
      "tree": "6ad59a7bebcec359e08b3a211701781db819450d",
      "parents": [
        "6b34350f490b2c8508717541ec1fd2bbaadded94"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Jan 08 01:02:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:51 2006 -0800"
      },
      "message": "[PATCH] use ptrace_get_task_struct in various places\n\nThe ptrace_get_task_struct() helper that I added as part of the ptrace\nconsolidation is useful in variety of places that currently opencode it.\nSwitch them to the common helpers.\n\nAdd a ptrace_traceme() helper that needs to be explicitly called, and simplify\nthe ptrace_get_task_struct() interface.  We don\u0027t need the request argument\nnow, and we return the task_struct directly, using ERR_PTR() for error\nreturns.  It\u0027s a bit more code in the callers, but we have two sane routines\nthat do one thing well now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5bd0190bf3d7e53043a048e809ffa29d41b9d6ac",
      "tree": "c6fba8d5a532ecfa53dc97a3841d13d972964854",
      "parents": [
        "df69a60dc6afc2936d79054d30b481c1fd9720e5"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Tue Nov 29 19:34:32 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 19:47:03 2005 -0800"
      },
      "message": "[PATCH] Fix crash when ptrace poking hugepage areas\n\nset_page_dirty() will not cope with being handed a page * which is part of\na compound page, but not the master page in that compound page.  This case\ncan occur via access_process_vm() if you attemp to write to another\nprocess\u0027s hugepage memory area using ptrace() (causing an oops or hang).\n\nThis patch fixes the bug by only calling set_page_dirty() from\naccess_process_vm() if the page is not a compound page.  We already use a\nsimilar fix in bio_set_pages_dirty() for the case of direct io to\nhugepages.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "005f18dfd0ed86c39716277b61dfb4bd2af91059",
      "tree": "8425228dc52bb38a5fe85d52afaecacca2f3a6fd",
      "parents": [
        "ab767201881fec073157986c314485ab26caa4a0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Nov 13 16:06:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:11 2005 -0800"
      },
      "message": "[PATCH] fix task_struct leak in ptrace\n\nWhen ptrace_attach fails we need to drop the task_struct reference.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28d838cc4dfea980cb6eda0a7409cbf91889ca74",
      "tree": "4bbf42063718ac7744ca67ef9f67adce17bfbb5c",
      "parents": [
        "ac111bfaa6b0b3c0edc63c27bd9617d6b08851ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 11:33:07 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 11:33:07 2005 -0800"
      },
      "message": "Fix ptrace self-attach rule\n\nBefore we did CLONE_THREAD, the way to check whether we were attaching\nto ourselves was to just check \"current \u003d\u003d task\", but with CLONE_THREAD\nwe should check that the thread group ID matches instead.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "481bed454247538e9f57d4ea37b153ccba24ba7b",
      "tree": "bb4198296962c08dbf52e8f377dc27206f621640",
      "parents": [
        "db73e9aa99bf093427b79877f9475392724fd5e5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Nov 07 00:59:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:42 2005 -0800"
      },
      "message": "[PATCH] consolidate sys_ptrace()\n\nThe sys_ptrace boilerplate code (everything outside the big switch\nstatement for the arch-specific requests) is shared by most architectures.\nThis patch moves it to kernel/ptrace.c and leaves the arch-specific code as\narch_ptrace.\n\nSome architectures have a too different ptrace so we have to exclude them.\nThey continue to keep their implementations.  For sh64 I had to add a\nsh64_ptrace wrapper because it does some initialization on the first call.\nFor um I removed an ifdefed SUBARCH_PTRACE_SPECIAL block, but\nSUBARCH_PTRACE_SPECIAL isn\u0027t defined anywhere in the tree.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a",
      "tree": "945004584995e3af816125245bbb2436cc8ebc9e",
      "parents": [
        "68860ec10bcc07ab4f89f9d940e3b77ae5ca13b3"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sun Oct 30 15:02:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] ptrace/coredump/exit_group deadlock\n\nI could seldom reproduce a deadlock with a task not killable in T state\n(TASK_STOPPED, not TASK_TRACED) by attaching a NPTL threaded program to\ngdb, by segfaulting the task and triggering a core dump while some other\ntask is executing exit_group and while one task is in ptrace_attached\nTASK_STOPPED state (not TASK_TRACED yet).  This originated from a gdb\nbugreport (the fact gdb was segfaulting the task wasn\u0027t a kernel bug), but\nI just incidentally noticed the gdb bug triggered a real kernel bug as\nwell.\n\nMost threads hangs in exit_mm because the core_dumping is still going, the\ncore dumping hangs because the stopped task doesn\u0027t exit, the stopped task\ncan\u0027t wakeup because it has SIGNAL_GROUP_EXIT set, hence the deadlock.\n\nTo me it seems that the problem is that the force_sig_specific(SIGKILL) in\nzap_threads is a noop if the task has PF_PTRACED set (like in this case\nbecause gdb is attached).  The __ptrace_unlink does nothing because the\nsignal-\u003eflags is set to SIGNAL_GROUP_EXIT|SIGNAL_STOP_DEQUEUED (verified).\n\nThe above info also shows that the stopped task hit a race and got the stop\nsignal (presumably by the ptrace_attach, only the attach, state is still\nTASK_STOPPED and gdb hangs waiting the core before it can set it to\nTASK_TRACED) after one of the thread invoked the core dump (it\u0027s the core\ndump that sets signal-\u003eflags to SIGNAL_GROUP_EXIT).\n\nSo beside the fact nobody would wakeup the task in __ptrace_unlink (the\nstate is _not_ TASK_TRACED), there\u0027s a secondary problem in the signal\nhandling code, where a task should ignore the ptrace-sigstops as long as\nSIGNAL_GROUP_EXIT is set (or the wakeup in __ptrace_unlink path wouldn\u0027t be\nenough).\n\nSo I attempted to make this patch that seems to fix the problem.  There\nwere various ways to fix it, perhaps you prefer a different one, I just\nopted to the one that looked safer to me.\n\nI also removed the clearing of the stopped bits from the zap_other_threads\n(zap_other_threads was safe unlike zap_threads).  I don\u0027t like useless\ncode, this whole NPTL signal/ptrace thing is already unreadable enough and\nfull of corner cases without confusing useless code into it to make it even\nless readable.  And if this code is really needed, then you may want to\nexplain why it\u0027s not being done in the other paths that sets\nSIGNAL_GROUP_EXIT at least.\n\nEven after this patch I still wonder who serializes the read of\np-\u003eptrace in zap_threads.\n\nPatch is called ptrace-core_dump-exit_group-deadlock-1.\n\nThis was the trace I\u0027ve got:\n\ntest          T ffff81003e8118c0     0 14305      1         14311 14309 (NOTLB)\nffff810058ccdde8 0000000000000082 000001f4000037e1 ffff810000000013\n       00000000000000f8 ffff81003e811b00 ffff81003e8118c0 ffff810011362100\n       0000000000000012 ffff810017ca4180\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff80141677\u003e{finish_stop+87}\n       \u003cffffffff8014367f\u003e{get_signal_to_deliver+1359} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80111575\u003e{sys_ptrace+2293}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80196399\u003e{sys_ioctl+73}\n       \u003cffffffff8010dd27\u003e{sysret_signal+28} \u003cffffffff8010e00f\u003e{ptregscall_common+103}\n\ntest          D ffff810011362100     0 14309      1         14305 14312 (NOTLB)\nffff810053c81cf8 0000000000000082 0000000000000286 0000000000000001\n       0000000000000195 ffff810011362340 ffff810011362100 ffff81002e338040\n       ffff810001e0ca80 0000000000000001\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff8044677d\u003e{wait_for_completion+173}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80137435\u003e{exit_mm+149}\n       \u003cffffffff801381af\u003e{do_exit+479} \u003cffffffff80138d0c\u003e{do_group_exit+252}\n       \u003cffffffff801436db\u003e{get_signal_to_deliver+1451} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80140850\u003e{specific_send_sig_info+2\n\n       \u003cffffffff8014208a\u003e{force_sig_info+186} \u003cffffffff804479a0\u003e{do_int3+112}\n       \u003cffffffff8010e308\u003e{retint_signal+61}\ntest          D ffff81002e338040     0 14311      1         14716 14305 (NOTLB)\nffff81005ca8dcf8 0000000000000082 0000000000000286 0000000000000001\n       0000000000000120 ffff81002e338280 ffff81002e338040 ffff8100481cb740\n       ffff810001e0ca80 0000000000000001\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff8044677d\u003e{wait_for_completion+173}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80137435\u003e{exit_mm+149}\n       \u003cffffffff801381af\u003e{do_exit+479} \u003cffffffff80142d0e\u003e{__dequeue_signal+558}\n       \u003cffffffff80138d0c\u003e{do_group_exit+252} \u003cffffffff801436db\u003e{get_signal_to_deliver+1451}\n       \u003cffffffff8010d3ad\u003e{do_signal+157} \u003cffffffff8013deee\u003e{ptrace_check_attach+222}\n       \u003cffffffff80140850\u003e{specific_send_sig_info+208} \u003cffffffff8014208a\u003e{force_sig_info+186}\n       \u003cffffffff804479a0\u003e{do_int3+112} \u003cffffffff8010e308\u003e{retint_signal+61}\n\ntest          D ffff810017ca4180     0 14312      1         14309 13882 (NOTLB)\nffff81005d15fcb8 0000000000000082 ffff81005d15fc58 ffffffff80130816\n       0000000000000897 ffff810017ca43c0 ffff810017ca4180 ffff81003e8118c0\n       0000000000000082 ffffffff801317ed\nCall Trace:\u003cffffffff80130816\u003e{activate_task+150} \u003cffffffff801317ed\u003e{try_to_wake_up+893}\n       \u003cffffffff8044677d\u003e{wait_for_completion+173} \u003cffffffff80131810\u003e{default_wake_function+0}\n       \u003cffffffff8018cdc3\u003e{do_coredump+819} \u003cffffffff80445f52\u003e{thread_return+82}\n       \u003cffffffff801436d4\u003e{get_signal_to_deliver+1444} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80140850\u003e{specific_send_sig_info+2\n\n       \u003cffffffff804472e5\u003e{_spin_unlock_irqrestore+5} \u003cffffffff8014208a\u003e{force_sig_info+186}\n       \u003cffffffff804476ff\u003e{do_general_protection+159} \u003cffffffff8010e308\u003e{retint_signal+61}\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab8d11beb46f0bd0617e04205c01f5c1fe845b61",
      "tree": "33b5aa5b63268b8f4d1428d74547fd351bb37113",
      "parents": [
        "5e21ccb136047e556acf0fdf227cab5db05c1c25"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Sep 06 15:18:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:43 2005 -0700"
      },
      "message": "[PATCH] remove duplicated code from proc and ptrace\n\nExtract common code used by ptrace_attach() and may_ptrace_attach()\ninto a separate function.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ed20e1ad521b5f5df61bf6559ae60738e393741",
      "tree": "90931724e45eaedb3445314e8b94e78253642395",
      "parents": [
        "e5bdd883a189243541e7a132385580703b049102"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Sun May 01 08:59:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:14 2005 -0700"
      },
      "message": "[PATCH] convert that currently tests _NSIG directly to use valid_signal()\n\nConvert most of the current code that uses _NSIG directly to instead use\nvalid_signal().  This avoids gcc -W warnings and off-by-one errors.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d59dd4620fb8d6422555a9e2b82a707718e68327",
      "tree": "78205657d24efcaa3f8314064951ac3814ed95a7",
      "parents": [
        "0d8d4d42f2d00eb65262b49f4edd4cf7ef4eb6fc"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "message": "[PATCH] use smp_mb/wmb/rmb where possible\n\nReplace a number of memory barriers with smp_ variants.  This means we won\u0027t\ntake the unnecessary hit on UP machines.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
