)]}'
{
  "log": [
    {
      "commit": "d305ef5d2a4e77bfa66160513f4a7494126a506b",
      "tree": "f70f435571fb6c4d520fea0f3c769a2a6df73f84",
      "parents": [
        "4c898c7f2f286b204fefc5dddb568f755d195d0c"
      ],
      "author": {
        "name": "Daniel Ritz",
        "email": "daniel.ritz@gmx.ch",
        "time": "Thu Sep 22 00:47:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 07:58:24 2005 -0700"
      },
      "message": "[PATCH] driver core: add helper device_is_registered()\n\nadd the helper and use it instead of open coding the klist_node_attached() check\n(which is a layering violation IMHO)\n\nidea by Alan Stern.\n\nSigned-off-by: Daniel Ritz \u003cdaniel.ritz@gmx.ch\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5028770a42e7bc4d15791a44c28f0ad539323807",
      "tree": "74800e35129775413c13ce7caf036ca19e3ce56c",
      "parents": [
        "9f02d6b7b43d46a74dd385f06090104ecd0fb807",
        "d8683a0cb5d09cb7f19feefa708424a84577e68f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jul 12 17:21:56 2005 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jul 12 17:21:56 2005 -0400"
      },
      "message": "[ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc...\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4e10d12a3d88c88fba3258809aa42d14fd8cf1d1",
      "tree": "195f69e8e25dec0f7344aab2bbdb353b9639df79",
      "parents": [
        "fb9802fa59b196d7f90bb3c2e33c555c6bdc4c54"
      ],
      "author": {
        "name": "David Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Mar 18 18:45:35 2005 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Jul 11 23:28:24 2005 -0400"
      },
      "message": "[ACPI] Bind PCI devices with ACPI devices\n\nImplement the framework for binding physical devices\nwith ACPI devices. A physical bus like PCI bus\nshould create a \u0027acpi_bus_type\u0027, with:\n\n.find_device:\n        For device which has parent such as normal PCI devices.\n\n.find_bridge:\n        It\u0027s for special devices, such as PCI root bridge\n\tor IDE controller.  Such devices generally haven\u0027t a\n\tparent or -\u003ebus. We use the special method\n\tto get an ACPI handle.\n\nUses new field in struct device: firmware_data\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d4277\n\nSigned-off-by: David Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "23d3d602cb96addd3c1158424fb01a49ea5e81b1",
      "tree": "2daa85579c964bfe3d1a91fe365d202b8f38422b",
      "parents": [
        "afdce75f1eaebcf358b7594ba7969aade105c3b0"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 22 16:09:05 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 29 22:48:04 2005 -0700"
      },
      "message": "[PATCH] driver core: change bus_rescan_devices to return void\n\nNo one was looking at the return value of bus_rescan_devices, and it\nreally wasn\u0027t anything that anyone in the kernel would ever care about.\nSo change it which enabled some counting code to be removed also.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0edb586049e57c56e625536476931117a57671e9",
      "tree": "9d92bb9821d134d199d62de1ff3096ff2b73fdc7",
      "parents": [
        "fd782a4a99d2d3e818b9465c427b10f7f027d7da"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cohuck@de.ibm.com",
        "time": "Wed Jun 22 16:59:51 2005 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 29 22:48:03 2005 -0700"
      },
      "message": "[PATCH] driver core: add bus_find_device \u0026 driver_find_device functions\n\nAdd bus_find_device() and driver_find_device() which allow searching for a\ndevice in the bus\u0027s resp. the driver\u0027s klist and obtain a reference on it.\n\nSigned-off-by: Cornelia Huck \u003ccohuck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "54b6f35c99974e99e64c05c2895718355123c55f",
      "tree": "321d08c397bc26b49c706ca5b86de7003c2329c0",
      "parents": [
        "ca2b94ba12f3c36fd3d6ed9d38b3798d4dad0d8b"
      ],
      "author": {
        "name": "Yani Ioannou",
        "email": "yani.ioannou@gmail.com",
        "time": "Tue May 17 06:39:34 2005 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:31 2005 -0700"
      },
      "message": "[PATCH] Driver core: change device_attribute callbacks\n\nThis patch adds the device_attribute paramerter to the\ndevice_attribute store and show sysfs callback functions, and passes a\nreference to the attribute when the callbacks are called.\n\nSigned-off-by: Yani Ioannou \u003cyani.ioannou@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0d3e5a2e39b6ba2974e9e7c2a429018c45de8e76",
      "tree": "30e584b73c356adce49dcc9df75332abaef95470",
      "parents": [
        "b86c1df1f98d16c999423a3907eb40a9423f481e"
      ],
      "author": {
        "name": "Patrick Mochel",
        "email": "mochel@digitalimplant.org",
        "time": "Tue Apr 05 23:46:33 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:27 2005 -0700"
      },
      "message": "[PATCH] Driver Core: fix bk-driver-core kills ppc64\n\nThere\u0027s no check to see if the device is already bound to a driver, which\ncould do bad things.  The first thing to go wrong is that it will try to match\na driver with a device already bound to one.  In some cases (it appears with\nUSB with drivers/usb/core/usb.c::usb_match_id()), some drivers will match a\ndevice based on the class type, so it would be common (especially for HID\ndevices) to match a device that is already bound.\n\nThe fun comes when -\u003eprobe() is called, it fails, then\ndriver_probe_device() does this:\n\n\tdev-\u003edriver \u003d NULL;\n\nLater on, that pointer could be be dereferenced without checking and cause\nhell to break loose.\n\nThis problem could be nasty. It\u0027s very hardware dependent, since some\ndevices could have a different set of matching qualifiers than others.\n\nNow, I don\u0027t quite see exactly where/how you were getting that crash.\nYou\u0027re dereferencing bad memory, but I\u0027m not sure which pointer was bad\nand where it came from, but it could have come from a couple of different\nplaces.\n\nThe patch below will hopefully fix it all up for you. It\u0027s against\n2.6.12-rc2-mm1, and does the following:\n\n- Move logic to driver_probe_device() and comments uncommon returns:\n  1 - If device is bound\n  0 - If device not bound, and no error\n  error - If there was an error.\n\n- Move locking to caller of that function, since we want to lock a\n  device for the entire time we\u0027re trying to bind it to a driver (to\n  prevent against a driver being loaded at the same time).\n\n- Update __device_attach() and __driver_attach() to do that locking.\n\n- Check if device is already bound in __driver_attach()\n\n- Update the converse device_release_driver() so it locks the device\n  around all of the operations.\n\n- Mark driver_probe_device() as static and remove export. It\u0027s an\n  internal function, it should stay that way, and there are no other\n  callers. If there is ever a need to export it, we can audit it as\n  necessary.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "36239577cfb6b9a7c111209536b54200b0252ebf",
      "tree": "f8fa5034fbb31d273d0889119cbc20e4c4b0c983",
      "parents": [
        "9a881f166f473373589ce6f3fdc47b44a1450e2d"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Thu Mar 24 19:08:30 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:23 2005 -0700"
      },
      "message": "[PATCH] Use a klist for device child lists.\n\n- Use klist iterator in device_for_each_child(), making it safe to use for\n  removing devices.\n- Remove unused list_to_dev() function.\n- Kills all usage of devices_subsys.rwsem.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "63c4f204ffc8219696bda88eb20c9873d007a2fc",
      "tree": "4a787908743ae0360b4e4356326c8912e6954a40",
      "parents": [
        "7dc35cdf69149a7f2b5216ada9bafe359746ac1c"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Thu Mar 24 13:08:05 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:18 2005 -0700"
      },
      "message": "[PATCH] Remove struct device::driver_list.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "7dc35cdf69149a7f2b5216ada9bafe359746ac1c",
      "tree": "bdbcaff7bc9d2ac391aae54bc4cb23ecbf93038f",
      "parents": [
        "6eded061b1263847aedac7469339e99579aec5e5"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Thu Mar 24 13:03:35 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:18 2005 -0700"
      },
      "message": "[PATCH] Remove struct device::bus_list.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "cb85b6f1cc811ecb9ed4b950206d8941ba710e68",
      "tree": "f017c851e25078c8445ec7045556eb41e364ffdb",
      "parents": [
        "94e7b1c5ff2055571703e38b059afffe17658432"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Thu Mar 24 10:48:35 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:16 2005 -0700"
      },
      "message": "[PATCH] Remove the unused device_find().\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "94e7b1c5ff2055571703e38b059afffe17658432",
      "tree": "469dbd920087ec62acd88b4985437a78c6786c0e",
      "parents": [
        "38fdac3cdce276554b4484a41f8ec2daf81cb2ff"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 12:25:36 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:16 2005 -0700"
      },
      "message": "[PATCH] Add a klist to struct device_driver for the devices bound to it.\n\n- Use it in driver_for_each_device() instead of the regular list_head and stop using\n  the bus\u0027s rwsem for protection.\n- Use driver_for_each_device() in driver_detach() so we don\u0027t deadlock on the\n  bus\u0027s rwsem.\n- Remove -\u003edevices.\n- Move klist access and sysfs link access out from under device\u0027s semaphore, since\n  they\u0027re synchronized through other means.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "38fdac3cdce276554b4484a41f8ec2daf81cb2ff",
      "tree": "1bdd0b8b69bd8e13de53036c8ef8b968a0dacc1d",
      "parents": [
        "465c7a3a3a5aabcedd2e43612cac5a12f23da19a"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 12:00:18 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:14 2005 -0700"
      },
      "message": "[PATCH] Add a klist to struct bus_type for its drivers.\n\n- Use it in bus_for_each_drv().\n- Use the klist spinlock instead of the bus rwsem.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "465c7a3a3a5aabcedd2e43612cac5a12f23da19a",
      "tree": "392dabbfe84d1de3e84b1eb238bfd09d0ade6c4c",
      "parents": [
        "9a19fea43616066561e221359596ce532e631395"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 11:49:14 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:14 2005 -0700"
      },
      "message": "[PATCH] Add a klist to struct bus_type for its devices.\n\n- Use it for bus_for_each_dev().\n- Use the klist spinlock instead of the bus rwsem.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "fae3cd00255e3e51ffd59fedb1bdb91ec96be395",
      "tree": "59e56a65f4b01f496436bd9b0720737ce1937db4",
      "parents": [
        "07e4a3e27fe414980ddc85a358e5a56abc48b363"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 10:59:56 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:13 2005 -0700"
      },
      "message": "[PATCH] Add driver_for_each_device().\n\nNow there\u0027s an iterator for accessing each device bound to a driver.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\nIndex: linux-2.6.12-rc2/drivers/base/driver.c\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\u003d\u003d\u003d\u003d\n"
    },
    {
      "commit": "af70316af182f4716cc5eec7e0d27fc731d164bd",
      "tree": "22fa4732c8270db8fd3f681355cd83e4b8088847",
      "parents": [
        "eb51b65005737b777e0709683b061d5f82aefd97"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 10:41:04 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:12 2005 -0700"
      },
      "message": "[PATCH] Add a semaphore to struct device to synchronize calls to its driver.\n\nThis adds a per-device semaphore that is taken before every call from the core to a\ndriver method. This prevents e.g. simultaneous calls to the -\u003esuspend() or -\u003eresume()\nand -\u003eprobe() or -\u003erelease(), potentially saving a whole lot of headaches.\n\nIt also moves us a step closer to removing the bus rwsem, since it protects the fields\nin struct device that are modified by the core.\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "cd987d38cc59053e0bab8150ffaca33b109067f3",
      "tree": "68cf99616bd548bff80ca12f37912d9cc4b31edd",
      "parents": [
        "2fc68447df5c76cf254037047b4b02551bd5d760"
      ],
      "author": {
        "name": "gregkh@suse.de",
        "email": "gregkh@suse.de",
        "time": "Wed Mar 23 11:12:38 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:11 2005 -0700"
      },
      "message": "[PATCH] class: remove class_simple code, as no one in the tree is using it anymore.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e9ba6365fd4f0d9e7d022c883bd044fbaa48257f",
      "tree": "062476167b5c9cd5ed08a01f223e71c2ece795ee",
      "parents": [
        "70f2817a43c89b784dc2ec3d06ba5bf3064f8235"
      ],
      "author": {
        "name": "gregkh@suse.de",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 15 11:54:21 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:04 2005 -0700"
      },
      "message": "[PATCH] CLASS: move a \"simple\" class logic into the class core.\n\nOne step on improving the class api so that it can not be used incorrectly.\nThis also fixes the module owner issue with the dev files that happened when\nthe devt logic moved to the class core.\n\nBased on a patch originally written by Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8d790d74085833ba2a3e84b5bcd683be4981c29a",
      "tree": "fe3be944882cb1ec272e4fb6782c6caa404a6187",
      "parents": [
        "419cab3fc69588ebe35b845cc3a584ae172463de"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Tue Apr 26 02:34:05 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:01 2005 -0700"
      },
      "message": "[PATCH] make driver\u0027s name be const char *\n\nDriver core:\n  change driver\u0027s, bus\u0027s, class\u0027s and platform device\u0027s names\n  to be const char * so one can use\n            const char *drv_name \u003d \"asdfg\";\n  when initializing structures.\n  Also kill couple of whitespaces.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0b405a0f7e4d4d18fd1fe46ddf5ff465443036ab",
      "tree": "49d74df6eddfdd095c650e0af34cde7f4548a2d5",
      "parents": [
        "82428b62aa6294ea640c7e920a9224ecaf46db65"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu May 12 12:06:27 2005 -0700"
      },
      "committer": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Tue May 17 14:54:55 2005 -0700"
      },
      "message": "[PATCH] Driver Core: remove driver model detach_state\n\nThe driver model has a \"detach_state\" mechanism that:\n\n - Has never been used by any in-kernel drive;\n - Is superfluous, since driver remove() methods can do the same thing;\n - Became buggy when the suspend() parameter changed semantics and type;\n - Could self-deadlock when called from certain suspend contexts;\n - Is effectively wasted documentation, object code, and headspace.\n\nThis removes that \"detach_state\" mechanism; net code shrink, as well\nas a per-device saving in the driver model and sysfs.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\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"
    }
  ]
}
