)]}'
{
  "log": [
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "853280a4dc8e3cc97ff10c1c02234d96078f437b",
      "tree": "3767a0fa8e9aff275bd69e887c2d3d7117812822",
      "parents": [
        "1e75540ec5202cae63cd238c86bd880e3d496546"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:41 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:41 2009 +0900"
      },
      "message": "ide: use blk_run_queue() instead of blk_start_queueing()\n\nblk_start_queueing() is being phased out in favor of\n[__]blk_run_queue().  Switch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "60f85019c6c8c1aebf3485a313e0da094bc95d07",
      "tree": "5cbb0e1a733b59887308a50ce083613c4e7c0ede",
      "parents": [
        "674f0ea111bc9bff1b4e4841d7da38933c5e3b59"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Wed Apr 08 14:13:01 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Wed Apr 08 14:13:01 2009 +0200"
      },
      "message": "ide: replace IDE_TFLAG_* flags by IDE_VALID_*\n\nReplace IDE_TFLAG_{IN|OUT}_* flags meaning to the taskfile register validity on\ninput/output by the IDE_VALID_* flags and introduce 4 symmetric 8-bit register\nvalidity indicator subfields, \u0027valid.{input/output}.{tf|hob}\u0027, into the \u0027struct\nide_cmd\u0027 instead of using the \u0027tf_flags\u0027 field for that purpose (this field can\nthen be turned from 32-bit into 8-bit one).\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "d364c7f50b3bb6dc77259974038567b821e2cf0a",
      "tree": "8a7a01a17656fb758a03ed0f1430371c300b07c1",
      "parents": [
        "e7fedc3ca0b8fcd3350a40c42a7100a9539e6c4a"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:42 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:42 2009 +0100"
      },
      "message": "ide: use ide_complete_cmd() for REQ_UNPARK_HEADS\n\n* Fixup -\u003etf_flags in ide_do_park_unpark() to match their current use.\n\n* Use ide_complete_cmd() for REQ_UNPARK_HEADS.\n\nWhile at it:\n\n* No need to read Error register for PM requests in task_no_data_intr().\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "0dfb991c6943c810175376b58d1c29cfe532541b",
      "tree": "c7b82d2ea9159e94c40f8df1a178dab4d2590ed3",
      "parents": [
        "04d09b0e62f2180a7e3fa8578ed778eca0c454fd"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:39 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:39 2009 +0100"
      },
      "message": "ide: use ata_tf_protocols enums\n\n* Add IDE_TFLAG_MULTI_PIO taskfile flag and set it for commands\n  using multi-PIO protocol.\n\n* Use ata_tf_protocols enums instead of TASKFILE_* defines to\n  denote command\u0027s protocol and then rename -\u003edata_phase field\n  to -\u003eprotocol.\n\n* Remove no longer needed \u003clinux/hdreg.h\u003e includes.\n\nThere should be no functional changes caused by this patch.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "22aa4b32a19b1f231d4ce7e9af6354b577a22a35",
      "tree": "3e773e7102e4ea6bb6b4c00edce442c4e8f37edb",
      "parents": [
        "e6830a86c260d73c6f370aa7ed17ee6c71e5ee05"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:37 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:37 2009 +0100"
      },
      "message": "ide: remove ide_task_t typedef\n\nWhile at it:\n- rename struct ide_task_s to struct ide_cmd\n- remove stale comments from idedisk_{read_native,set}_max_address()\n- drop unused \u0027cmd\u0027 argument from ide_{cmd,task}_ioctl()\n- drop unused \u0027task\u0027 argument from tx4939ide_tf_load_fixup()\n- rename ide_complete_task() to ide_complete_cmd()\n- use consistent naming for struct ide_cmd variables\n\nThere should be no functional changes caused by this patch.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "e3d9a73a83d98fc466dabdcfe4f4e7e4419e3f8e",
      "tree": "3a93a8eca3800bafe5aeaf6a469fb3af05739c44",
      "parents": [
        "5e76acd588c125fbd37390e44868dcb07cadbe4a"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:32 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 27 12:46:32 2009 +0100"
      },
      "message": "ide: remove -\u003edata_phase field from ide_hwif_t\n\n* Always use hwif-\u003etask-\u003edata_phase and remove -\u003edata_phase\n  field from ide_hwif_t.\n\n* Remove superfluous REQ_TYPE_ATA_TASKFILE check from\n  ide_pio_datablock() while at it.\n\nThere should be no functional changes caused by this patch.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "c4e66c36cce3f23d68013c4112013123ffe80bdb",
      "tree": "9ea3551dd639acd23bf66f44a3da54d0c7b5eb8e",
      "parents": [
        "1bc6daae4aba9194f8ff6801af8367a1a4718965"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 24 23:22:44 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 24 23:22:44 2009 +0100"
      },
      "message": "ide: move ide_do_park_unpark() to ide-park.c\n\nAcked-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "b65fac32cfe3b2f98cd472fef400bd1c1340de23",
      "tree": "493a7e30e23e5413a9e5ad6102b8e91ebc02c069",
      "parents": [
        "5b31f855f10d0053e738baa6d91fb6a3fad35119"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Jan 06 17:20:50 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Jan 06 17:20:50 2009 +0100"
      },
      "message": "ide: merge ide_hwgroup_t with ide_hwif_t (v2)\n\n* Merge ide_hwgroup_t with ide_hwif_t.\n\n* Cleanup init_irq() accordingly, then remove no longer needed\n  ide_remove_port_from_hwgroup() and ide_ports[].\n\n* Remove now unused HWGROUP() macro.\n\nWhile at it:\n\n* ide_dump_ata_error() fixups\n\nv2:\n* Fix -\u003equirk_list check in do_ide_request()\n  (s/hwif-\u003ecur_dev/prev_port-\u003ecur_dev).\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "201bffa46466b4afdf7d29db8eca3fa5decb39c8",
      "tree": "47e7d85563690547b67748092e587be1f31046b5",
      "parents": [
        "631de3708d595d153e8a510a3608689290f4c0ed"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jan 02 16:12:50 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jan 02 16:12:50 2009 +0100"
      },
      "message": "ide: use per-device request queue locks (v2)\n\n* Move hack for flush requests from choose_drive() to do_ide_request().\n\n* Add ide_plug_device() helper and convert core IDE code from using\n  per-hwgroup lock as a request lock to use the -\u003equeue_lock instead.\n\n* Remove no longer needed:\n  - choose_drive() function\n  - WAKEUP() macro\n  - \u0027sleeping\u0027 flag from ide_hwif_t\n  - \u0027service_{start,time}\u0027 fields from ide_drive_t\n\nThis patch results in much simpler and more maintainable code\n(besides being a scalability improvement).\n\nv2:\n* Fixes/improvements based on review from Elias:\n  - take as many requests off the queue as possible\n  - remove now redundant BUG_ON()\n\nCc: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "631de3708d595d153e8a510a3608689290f4c0ed",
      "tree": "dbecf12cccac76e89cf1908f80b4f515cada731e",
      "parents": [
        "b2cfb05a701809abee591265a198afa029d68bff"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jan 02 16:12:50 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jan 02 16:12:50 2009 +0100"
      },
      "message": "ide: add ide_[un]lock_hwgroup() helpers\n\nAdd ide_[un]lock_hwgroup() inline helpers for obtaining exclusive\naccess to the given hwgroup and update the core code accordingly.\n\n[ This change besides making code saner results in more efficient\n  use of ide_{get,release}_lock(). ]\n\nCc: Michael Schmitz \u003cschmitz@biophys.uni-duesseldorf.de\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "2a2ca6a96194c4744a2adeefbc09ce881f3c5abe",
      "tree": "50b43d823d4a589fbfb8f8751278d6101cd3ecf3",
      "parents": [
        "6ea52226ca131a99bb619bd56fbeee566ea5a966"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Mon Dec 29 20:27:31 2008 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Mon Dec 29 20:27:31 2008 +0100"
      },
      "message": "ide: replace the global ide_lock spinlock by per-hwgroup spinlocks (v2)\n\nNow that (almost) all host drivers have been fixed not to abuse ide_lock\nand core code usage of ide_lock has been sanitized we may safely replace\nide_lock by per-hwgroup locks.\n\nThis patch is partially based on earlier patch from Ravikiran G Thirumalai.\n\nWhile at it:\n- don\u0027t use deprecated HWIF() and HWGROUP() macros\n- update locking documentation in ide.h\n\nv2:\nAdd missing spin_lock_init(\u0026hwgroup-\u003elock).  (Noticed by Elias Oltmanns)\n\nCc: Vaibhav V. Nivargi \u003cvaibhav.nivargi@gmail.com\u003e\nCc: Alok N. Kataria \u003calokk@calsoftinc.com\u003e\nCc: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "4abdc6ee7c47a1a6e12f95717e461baeebee5df7",
      "tree": "51cac3d66891d026483838563e35124467a8eb86",
      "parents": [
        "08243ba731ee08ff42cf1589379c81567690218f"
      ],
      "author": {
        "name": "Elias Oltmanns",
        "email": "eo@nebensachen.de",
        "time": "Mon Oct 13 21:39:50 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Mon Oct 13 21:39:50 2008 +0200"
      },
      "message": "ide: Implement disk shock protection support (v4)\n\nOn user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD\nFEATURE as specified in ATA-7 is issued to the device and processing of\nthe request queue is stopped thereafter until the specified timeout\nexpires or user space asks to resume normal operation. This is supposed\nto prevent the heads of a hard drive from accidentally crashing onto the\nplatter when a heavy shock is anticipated (like a falling laptop expected\nto hit the floor). Port resets are deferred whenever a device on that\nport is in the parked state.\n\nv3:\nElias Oltmanns \u003ceo@nebensachen.de\u003e wrote:\n[...]\n\u003e \u003e\u003e 1. Make sure that no negative value is being passed to\n\u003e \u003e\u003e    jiffies_to_msecs() in ide_park_show().\n\u003e \u003e\u003e 2. Drop the superfluous variable hwif in ide_special_rq().\n\u003e \u003e\u003e 3. Skip initialisation of task and tf in ide_special_rq() if we are not\n\u003e \u003e\u003e    handling a (un)park request.\n\u003e \u003e\n\u003e \u003e Well, #3 should have been done differently because we donn\u0027t want to\n\u003e \u003e check for REQ_(UN)?PARK_HEADS more often than is necessary.\n\u003e \n\u003e While preparing the backport to 2.6.27, it has just occurred to me that\n\u003e we need to clear the IDE_DFLAG_PARKED flag in ide_disk_pre_reset()\n\u003e because this flag must not be set after *any* sort of access to the\n\u003e device.\n\nv4:\nFix a memory leak due to a missing blk_put_request() in\nissue_park_cmd(). Additionally, we should plug the queue when enqueueing\nthe unpark request because there is no guarantee that the park timeout\nhas not expired by then. Even though the chance for that to happen is\nvery slim, the request might end up hanging in the queue until the next\nI/O operation is queued up. While at it, clean up the code a little:\n- make issue_park_cmd() a function of type void since nobody cares for\n  the return value anyway;\n- use blk_start_queueing() instead of __blk_run_queue() since we don\u0027t\n  have to worry about recursion;\n- remove a superfluous pointer deference in task_no_data_intr().\n\nSigned-off-by: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e,\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    }
  ]
}
