)]}'
{
  "log": [
    {
      "commit": "d919fd433b5823d1cf9d0688eb2eec183de9b74c",
      "tree": "037cac29c344e0a2009a241d2168825f399b600a",
      "parents": [
        "5307cc1aa53850f017c8053db034cf950b670ac9"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 31 12:51:29 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 31 12:51:29 2007 -0700"
      },
      "message": "Revert \"Driver core: remove class_device_*_bin_file\"\n\nThis reverts commit fcd239d3d5575e5cc63aab5c33cf6dc66904f6d6.\n\nI messed up, ia64 still uses these files in the current tree, and now\ncan not build the pci code, which all ia64 boxes seem to require :)\n\nThis fixes that mistake.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "fcd239d3d5575e5cc63aab5c33cf6dc66904f6d6",
      "tree": "346728fb9798b588af49c65efd7d095af07b55ea",
      "parents": [
        "e403149c92a2a0643211debbbb0a9ec7cc04cff7"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 17 15:52:43 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 30 21:52:33 2007 -0700"
      },
      "message": "Driver core: remove class_device_*_bin_file\n\nThese functions are not used by anyone, so remove them from the tree.\n\nThe class_device code will be removed soon anyway, so no future users\nwill ever be possible.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "7eff2e7a8b65c25920207324e56611150eb1cd9a",
      "tree": "02a0eeba9d25d996233e30c18f258dfae0ae2139",
      "parents": [
        "8380770c842faef3001e44662953d64ad9a93663"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Aug 14 15:15:12 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:01 2007 -0700"
      },
      "message": "Driver core: change add_uevent_var to use a struct\n\nThis changes the uevent buffer functions to use a struct instead of a\nlong list of parameters. It does no longer require the caller to do the\nproper buffer termination and size accounting, which is currently wrong\nin some places. It fixes a known bug where parts of the uevent\nenvironment are overwritten because of wrong index calculations.\n\nMany thanks to Mathieu Desnoyers for finding bugs and improving the\nerror handling.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "8380770c842faef3001e44662953d64ad9a93663",
      "tree": "631ce7dae6fe0edb36942e6165f679638f6beb68",
      "parents": [
        "3b6662f192fc521b9657f63e68d20ec99979dae6"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Jul 30 02:28:56 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:50:59 2007 -0700"
      },
      "message": "Driver core: make sysfs uevent-attributes static\n\nAttributes do not have an owner(module) anymore, so there is no need\nto carry the attributes in every single bus instance.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "58b3b71dfaaecbf7cff1fe10c049d663f0313e5f",
      "tree": "38f34ce39e1c93d6d54730ead4e414a5070e3b45",
      "parents": [
        "602033ed5907a59ce86f709082a35be047743a86"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 26 16:29:55 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 12:13:06 2007 -0700"
      },
      "message": "Fix ThinkPad T42 poweroff failure introduced by by \"PM: Introduce pm_power_off_prepare\"\n\nCommit bd804eba1c8597cbb7cd5a5f9fe886aae16a079a (\"PM: Introduce\npm_power_off_prepare\") caused problems in the poweroff path, as reported by\nYOSHIFUJI Hideaki / 吉藤英明.\n\nGenerally, sysdev_shutdown() should be called after the ACPI preparation for\npowering the system off.  To make it happen, we can separate sysdev_shutdown()\nfrom device_shutdown() and call it directly wherever necessary.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: YOSHIFUJI Hideaki / 吉藤英明 \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aebdc3b450a3febf7d7d00cd2235509055ec7082",
      "tree": "3e9d53857d610d2b7eab3e2cce3cae2220202f52",
      "parents": [
        "bc37e2830339cbfa42ac8579a7bf62fc4cdd360d"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu Jul 12 22:08:22 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 18 15:49:50 2007 -0700"
      },
      "message": "dev_vdbg(), available with -DVERBOSE_DEBUG\n\nThis defines a dev_vdbg() call, which is enabled with -DVERBOSE_DEBUG.\nWhen enabled, dev_vdbg() acts just like dev_dbg().  When disabled, it is a\nNOP ...  just like dev_dbg() without -DDEBUG.  The specific code was moved\nout of a USB patch, but lots of drivers have similar support.\n\nThat is, code can now be written to use an additional level of debug\noutput, selected at compile time.  Many driver authors have found this\nidiom to be very useful.  A typical usage model is for \"normal\" debug\nmessages to focus on fault paths and not be very \"chatty\", so that those\nmessages can be left on during normal operation without much of a\nperformance or syslog load.  On the other hand \"verbose\" messages would be\nnoisy enough that they wouldn\u0027t normally be enabled; they might even affect\ntimings enough to change system or driver behavior.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ad6a1e1c66009ba9dcd2f5c90ffa1fb4ce72fce0",
      "tree": "260f2a1707246998ba6f83ac1fa5a518626bbb1e",
      "parents": [
        "7b595756ec1f49e0049a9e01a1298d53a7faaa15"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:17 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:06 2007 -0700"
      },
      "message": "driver-core: make devt_attr and uevent_attr static\n\ndevt_attr and uevent_attr are either allocated dynamically with or\nembedded in device and class_device as they needed their owner field\nset to the module implementing the driver.  Now that sysfs implements\nimmediate disconnect and owner field removed from struct attribute,\nthere is no reason to do this.  Remove these attributes from\n[class_]device and use static attribute structures instead.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "49a4ec188f9a96c9a5567956718213d38a456a19",
      "tree": "29ac9f610ed355b3e3f752206c03180054df9bd7",
      "parents": [
        "eb81d93046e7de51d47b8f1303d80e6f51ac9e33"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue May 08 00:29:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "fix hotplug for legacy platform drivers\n\nWe\u0027ve had various reports of some legacy \"probe the hardware\" style\nplatform drivers having nasty problems with hotplug support.\n\nThe core issue is that those legacy drivers don\u0027t fully conform to the\ndriver model.  They assume a role that should be the responsibility of\ninfrastructure code: creating device nodes.\n\nThe \"modprobe\" step in hotplugging relies on drivers to have split those\nroles into different modules.  The lack of this split causes the problems.\nWhen a driver creates nodes for devices that don\u0027t exist (sending a hotplug\nevent), then exits (aborting one modprobe) before the \"modprobe $MODALIAS\"\nstep completes (by failing, since it\u0027s in the middle of a modprobe), the\nresult can be an endless loop of modprobe invocations ...  badness.\n\nThis fix uses the newish per-device flag controlling issuance of \"add\"\nevents.  (A previous version of this patch used a per-device \"driver can\nhotplug\" flag, which only scrubbed $MODALIAS from the environment rather\nthan suppressing the entire hotplug event.) It also shrinks that flag to\none bit, saving a word in \"struct device\".\n\nSo the net of this patch is removing some nasty failures with legacy\ndrivers, while retaining hotplug capability for the majority of platform\ndrivers.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Andres Salomon \u003cdilinger@debian.org\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b339915762d30b21995aa7263e74081f2f1110a",
      "tree": "4e076dbd27025054b21dddd78a1cb3fef3de34d7",
      "parents": [
        "89661adaaee2f85116b399e642129ccd4dafd195",
        "823bccfc4002296ba88c3ad0f049e1abd8108d30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:04:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:04:48 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:\n  remove \"struct subsystem\" as it is no longer needed\n  sysfs: printk format warning\n  DOC: Fix wrong identifier name in Documentation/driver-model/devres.txt\n  platform: reorder platform_device_del\n  Driver core: fix show_uevent from taking up way too much stack\n"
    },
    {
      "commit": "5adc55da4a7758021bcc374904b0f8b076508a11",
      "tree": "41f113f25532c3ffc1e3194114fbc68d67ce2001",
      "parents": [
        "032de8e2fe3c0eec5fb0ffe4d38aa602dad397dc"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Mar 27 03:02:51 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 19:02:38 2007 -0700"
      },
      "message": "PCI: remove the broken PCI_MULTITHREAD_PROBE option\n\nThis patch removes the PCI_MULTITHREAD_PROBE option that had already \nbeen marked as broken.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "404d5b185b4eb56d6fa2f7bd27833f8df1c38ce4",
      "tree": "1130df0503191529ee7088ccf3868d3be81ebc2d",
      "parents": [
        "61a2f59af6c8ffd9d6dd53f0da32563d4434e790"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Apr 26 00:12:10 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:34 2007 -0700"
      },
      "message": "dev_dbg: check dev_dbg() arguments\n\nDuplicate what Zach Brown did for pr_debug in commit\n8b2a1fd1b394c60eaa2587716102dd5e9b4e5990\n\n[akpm@linux-foundation.org: fix a couple of things which broke]\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "523ded71de0c5e66973335bf99a80edfda9f401b",
      "tree": "20f47e8ed91018977d9fb7f4169a6ef8db407b82",
      "parents": [
        "fa1a8c23eb7d3ded8a3c6d0e653339a2bc7fca9e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Apr 26 00:12:04 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:32 2007 -0700"
      },
      "message": "device_schedule_callback() needs a module reference\n\nThis patch (as896b) fixes an oversight in the design of\ndevice_schedule_callback().  It is necessary to acquire a reference to the\nmodule owning the callback routine, to prevent the module from being\nunloaded before the callback can run.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Satyam Sharma \u003csatyam.sharma@gmail.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f89cbc399ecd924c4bd879344e662aace2274b4f",
      "tree": "d44c6c9952e1433566a3e6a4eb0123e33d10d97d",
      "parents": [
        "bf62456eb91f3d2ef0736081583d09b0b3c8b7ea"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Tue Apr 03 01:08:40 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:29 2007 -0700"
      },
      "message": "Driver core: add suspend() and resume() to struct device_type\n\nDriver core: add suspend() and resume() to struct device_type\n\nIn cases when there are devices of different types in the same class\nwe can\u0027t use class\u0027s implementation of suspend and resume methods and\nwe need to add them to struct device_type instead.\n\nAlso fix error handling in resume code (we should not try to call\nclass\u0027s resume method iof bus\u0027s resume method for the device failed.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "74e9f5fa1570f956c96dd5d3f1053daedbbf01a0",
      "tree": "095bfed9efced3538507d16eb93010d91c074f5f",
      "parents": [
        "c6a46696f97ff260a4ecce5e287f8de4b9d7fe14"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Apr 09 12:14:34 2002 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:29 2007 -0700"
      },
      "message": "Driver core: remove unneeded completion from driver release path\n\nThe completion in the driver release path is due to ancient history in\nthe _very_ early 2.5 days when we were not tracking the module reference\ncount of attributes.  It is not needed at all and can be removed.\n\nNote, we now have an empty release function for the driver structure.\nThis is due to the fact that drivers are statically allocated in the\nsystem at this point in time, something which I want to change in the\nfuture.  But remember, drivers are really code, which is reference\ncounted by the module, unlike devices, which are data and _must_ be\nreference counted properly in order to work correctly.\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "21c7f30b1d3f8a3de3128478daca3ce203fc8733",
      "tree": "ff84247ba68f82906182a214273dd330c6d1970f",
      "parents": [
        "460f7e9a1bde2c74f060f7ce0a308dab4be6a56b"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Feb 05 16:15:25 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:28 2007 -0700"
      },
      "message": "driver core: per-subsystem multithreaded probing\n\nMake multithreaded probing work per subsystem instead of per driver.\n\nIt doesn\u0027t make much sense to probe the same device for multiple drivers in\nparallel (after all, only one driver can bind to the device).  Instead, create\na probing thread for each device that probes the drivers one after another. \nAlso make the decision to use multi-threaded probe per bus instead of per\ndevice and adapt the pci code.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "414264f959cf46f49f974b3510400e12ac3624a6",
      "tree": "ead43994761620cbf7cb22525610627786562098",
      "parents": [
        "621a1672f7377e08a942f205d6742d8af1292aab"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Mar 12 21:08:57 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:28 2007 -0700"
      },
      "message": "Driver core: add name to device_type\n\nIf \"name\" of a device_type is specified, the uevent will\ncontain the device_type name in the DEVTYPE variable.\nThis helps userspace to distingiush between different types\nof devices, belonging to the same subsystem.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "621a1672f7377e08a942f205d6742d8af1292aab",
      "tree": "9249308b3df0675f713058e3f5ac0442ce2a5e1e",
      "parents": [
        "b8c5cec23d5c33b767a1cddebd4f8813a9563e3c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sat Mar 10 01:37:34 2007 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:28 2007 -0700"
      },
      "message": "driver core: Use attribute groups in struct device_type\n\nDriver core: use attribute groups in struct device_type\n\nAttribute groups are more flexible than attribute lists\n(an attribute list can be represented by anonymous group)\nso switch struct device_type to use them.\n\nAlso rework attribute creation for devices so that they all\ncleaned up properly in case of errors.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Kay Sievers \u003ckay.sievers@novell.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b8c5cec23d5c33b767a1cddebd4f8813a9563e3c",
      "tree": "cffec2c5df58866aa6e7ed5540c2718a166c3246",
      "parents": [
        "a456b7023e0abf80bb03b0bdf5471b48878e5c49"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Feb 16 17:33:36 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:28 2007 -0700"
      },
      "message": "Driver core: udev triggered device-\u003c\u003edriver binding\n\nWe get two per-bus sysfs files:\n  ls-l /sys/subsystem/usb\n  drwxr-xr-x 2 root root    0 2007-02-16 16:42 devices\n  drwxr-xr-x 7 root root    0 2007-02-16 14:55 drivers\n  -rw-r--r-- 1 root root 4096 2007-02-16 16:42 drivers_autoprobe\n  --w------- 1 root root 4096 2007-02-16 16:42 drivers_probe\n\nThe flag \"drivers_autoprobe\" controls the behavior of the bus to bind\ndevices by default, or just initialize the device and leave it alone.\n\nThe command \"drivers_probe\" accepts a bus_id and the bus tries to bind a\ndriver to this device.\n\nSystems who want to control the driver binding with udev, switch off the\nbus initiated probing:\n  echo 0 \u003e /sys/subsystem/usb/drivers_autoprobe\n  echo 0 \u003e /sys/subsystem/pcmcia/drivers_autoprobe\n  ...\n\nand initiate the probing with udev rules like:\n  ACTION\u003d\u003d\"add\", SUBSYSTEM\u003d\u003d\"usb\", ATTR{subsystem/drivers_probe}\u003d\"$kernel\"\n  ACTION\u003d\u003d\"add\", SUBSYSTEM\u003d\u003d\"pcmcia\", ATTR{subsystem/drivers_probe}\u003d\"$kernel\"\n  ...\n\nCustom driver binding can happen in earlier rules by something like:\n  ACTION\u003d\u003d\"add\", SUBSYSTEM\u003d\u003d\"usb\", \\\n  ATTRS{idVendor}\u003d\u003d\"1234\", ATTRS{idProduct}\u003d\u003d\"5678\" \\\n  ATTR{subsystem/drivers/\u003ccustom-driver\u003e/bind}\u003d\"$kernel\"\n\nThis is intended to solve the modprobe.conf mess with \"install-rules\", custom\nbind/unbind-scripts and all the weird things people invented over the years.\nIt should also provide the functionality \"libusual\" was supposed to do.\n\nWith udev, one can just write a udev rule to drive all USB-disks at the\nthird port of USB-hub by the \"ub\" driver, and everything else by\nusb-storage. One can also instruct udev to bind different wireless\ndrivers to identical cards - just selected by the pcmcia slot-number, and\nwhatever ...\n\nTo use the mentioned rules, it needs udev version 106, to be able to\nwrite ATTR{}\u003d\"$kernel\" to sysfs files.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "864062457a2e444227bd368ca5f2a2b740de604f",
      "tree": "38e516852ee9825b5ffe0b1f2e8abea0a88b1674",
      "parents": [
        "00ed8e3dda47f8421b11da17e353d7db8c878121"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Mar 14 03:25:56 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:28 2007 -0700"
      },
      "message": "driver core: fix namespace issue with devices assigned to classes\n\n  - uses a kset in \"struct class\" to keep track of all directories\n    belonging to this class\n  - merges with the /sys/devices/virtual logic.\n  - removes the namespace-dir if the last member of that class\n    leaves the directory.\n\nThere may be locking or refcounting fixes left, I stopped when it seemed\nto work with network and sound modules. :)\n\nFrom: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0c84ce268b69855919b6ac7edc8f11caf21e9c88",
      "tree": "64e1fca7d80026db60ed4dde751d553193587034",
      "parents": [
        "bcd9b89c02295b075fda4bdb666f6641f8212226"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sun Apr 01 23:49:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 02 10:06:09 2007 -0700"
      },
      "message": "[PATCH] driver core: fix built-in drivers sysfs links\n\nbuilt-in drivers had broken sysfs links that caused bootup hangs for\ncertain driver unregistry sequences.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9a9cdfb078d755e648d53ec25b7370f84ee5729",
      "tree": "308380483fd6241b1d0ef5916b9329c1c5df00f6",
      "parents": [
        "6ab27c6bf38d5ff71dafeca77b79e7c284804b75"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Mar 15 15:50:34 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 15 15:29:26 2007 -0700"
      },
      "message": "[PATCH] sysfs and driver core: add callback helper, used by SCSI and S390\n\nThis patch (as868) adds a helper routine for device drivers that need\nto set up a callback to perform some action in a different process\u0027s\ncontext.  This is intended for use by attribute methods that want to\nunregister themselves or their parent device.  Attribute method calls\nare mutually exclusive with unregistration, so such actions cannot be\ntaken directly.\n\nTwo attribute methods are converted to use the new helper routine: one\nfor SCSI device deletion and one for System/390 ccwgroup devices.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40cf67c5fcc513406558c01b91129280208e57bf",
      "tree": "99d1a152875e3ba751c7566bd1f755b18e33cb0e",
      "parents": [
        "9654640d0af8f2de40ff3807d3695109d3463f54"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 03 14:31:12 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:52:08 2007 -0800"
      },
      "message": "Driver core: remove class_device_rename\n\nNo one uses it, and it wasn\u0027t exported to modules, so remove it.  The\nonly other user of it was the network code, which is now converted to\nuse struct device instead.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "874ff01bd9183ad16495acfd54e93a619d12b8b5",
      "tree": "e9527e94649fadfa705dae64018e027e51681b88",
      "parents": [
        "ebbe46f73a11a667df59cb8e58b371c0a35f29d0",
        "86aae08faa0069a559ba543ff3dab33fe95f891b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 19 13:29:02 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 19 13:29:02 2007 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (25 commits)\n  Documentation/kernel-docs.txt update.\n  arch/cris: typo in KERN_INFO\n  Storage class should be before const qualifier\n  kernel/printk.c: comment fix\n  update I/O sched Kconfig help texts - CFQ is now default, not AS.\n  Remove duplicate listing of Cris arch from README\n  kbuild: more doc. cleanups\n  doc: make doc. for maxcpus\u003d more visible\n  drivers/net/eexpress.c: remove duplicate comment\n  add a help text for BLK_DEV_GENERIC\n  correct a dead URL in the IP_MULTICAST help text\n  fix the BAYCOM_SER_HDX help text\n  fix SCSI_SCAN_ASYNC help text\n  trivial documentation patch for platform.txt\n  Fix typos concerning hierarchy\n  Fix comment typo \"spin_lock_irqrestore\".\n  Fix misspellings of \"agressive\".\n  drivers/scsi/a100u2w.c: trivial typo patch\n  Correct trivial typo in log2.h.\n  Remove useless FIND_FIRST_BIT() macro from cardbus.c.\n  ...\n"
    },
    {
      "commit": "405ae7d381302468ecc803f2148a2ae40a04c999",
      "tree": "7b1915220ae6595a28755fbbb32ee95d233a3da9",
      "parents": [
        "ca820181fc187af316a18b2700582663662c4012"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 17 19:13:42 2007 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Feb 17 19:13:42 2007 +0100"
      },
      "message": "Replace remaining references to \"driverfs\" with \"sysfs\".\n\nGlobally, s/driverfs/sysfs/g.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "89790fd789e024b23eb1fbccedd84a2015441ce0",
      "tree": "fbe1fcec760de172f99d9be5dc112d9c5ec1443f",
      "parents": [
        "8a03d9a498eaf02c8a118752050a5154852c13bf"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Feb 12 22:33:06 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:19:15 2007 -0800"
      },
      "message": "Driver.h copyright update\n\nIt was pointed out that I had not updated my copyright on driver.h\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9ac7849e35f705830f7b016ff272b0ff1f7ff759",
      "tree": "7f17cdff87e154937a15cc2ec8da9b4e6018ce8e",
      "parents": [
        "77a527eadb425b60db3f5f0aae6a4c51c38e35e5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:36 2007 -0500"
      },
      "message": "devres: device resource management\n\nImplement device resource management, in short, devres.  A device\ndriver can allocate arbirary size of devres data which is associated\nwith a release function.  On driver detach, release function is\ninvoked on the devres data, then, devres data is freed.\n\ndevreses are typed by associated release functions.  Some devreses are\nbetter represented by single instance of the type while others need\nmultiple instances sharing the same release function.  Both usages are\nsupported.\n\ndevreses can be grouped using devres group such that a device driver\ncan easily release acquired resources halfway through initialization\nor selectively release resources (e.g. resources for port 1 out of 4\nports).\n\nThis patch adds devres core including documentation and the following\nmanaged interfaces.\n\n* alloc/free\t: devm_kzalloc(), devm_kzfree()\n* IO region\t: devm_request_region(), devm_release_region()\n* IRQ\t\t: devm_request_irq(), devm_free_irq()\n* DMA\t\t: dmam_alloc_coherent(), dmam_free_coherent(),\n\t\t  dmam_declare_coherent_memory(), dmam_pool_create(),\n\t\t  dmam_pool_destroy()\n* PCI\t\t: pcim_enable_device(), pcim_pin_device(), pci_is_managed()\n* iomap\t\t: devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),\n\t\t  devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),\n\t\t  pcim_iomap(), pcim_iounmap()\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b7a3e813fb84624166f034e25234f98de5846bfc",
      "tree": "5936d2755e6f4fcdbf3a34c743a7840cdc72b9a2",
      "parents": [
        "f9f852df2faf76a2667949ddb4947d4b8f99f02f"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@novell.com",
        "time": "Sat Oct 07 21:54:55 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:14 2007 -0800"
      },
      "message": "Driver core: allow to delay the uevent at device creation time\n\nFor the block subsystem, we want to delay all uevents until the\ndisk has been scanned and allpartitons are already created before\nthe first event is sent out.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@novell.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f9f852df2faf76a2667949ddb4947d4b8f99f02f",
      "tree": "3dfdbae06ef17c83266cc18ed77fcd1c51328c15",
      "parents": [
        "239378f16aa1ab5c502e42a06359d2de4f88ebb4"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@novell.com",
        "time": "Sat Oct 07 21:54:55 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:14 2007 -0800"
      },
      "message": "Driver core: add device_type to struct device\n\nThis allows us to add type specific attributes, uevent vars and\nrelease funtions.\n\nA subsystem can carry different types of devices like the \"block\"\nsubsys has disks and partitions. Both types create a different set\nof attributes, but belong to the same subsystem.\n\nThis corresponds to the low level objects:\n  kobject   -\u003e device       (object/device data)\n  kobj_type -\u003e device_type  (type of object/device we are embedded in)\n  kset      -\u003e class/bus    (list of objects/devices of a subsystem)\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@novell.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "f30c53a873d0d227493197064b8886af2d57bbd6",
      "tree": "cd051f14effbbb015a1bae6fe5bfabcf14037f13",
      "parents": [
        "c744aeae9d173a953b771a7ad5c872f91fa99dec"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Jan 15 20:22:02 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:12 2007 -0800"
      },
      "message": "MODULES: add the module name for built in kernel drivers\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1f21782e63da81f56401a813a52091ef2703838f",
      "tree": "8a01f16d84fe3ec10182d4f8b987f1c7beecd414",
      "parents": [
        "542cfce6f36e8c43f71ae9c235b78497f350ae55"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Dec 19 13:01:28 2006 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 20 10:56:45 2006 -0800"
      },
      "message": "Driver core: proper prototype for drivers/base/init.c:driver_init()\n\nAdd a prototype for driver_init() in include/linux/device.h.\n\nAlso remove a static function of the same name in drivers/acpi/ibm_acpi.c to\nibm_acpi_driver_init() to fix the namespace collision.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "873481367edb18a7d0d7e5a285e6728c16bb44a9",
      "tree": "dd97507a3c061addac715bb07bfd5c4991e08f80",
      "parents": [
        "8b98c1699eba23cfd2e8b366625c50ff5fd1415b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Dec 06 20:32:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] add numa node information to struct device\n\nFor node-aware skb allocations we need information about the node in struct\nnet_device or struct device.  Davem suggested to put it into struct device\nwhich this patch does.\n\nIn particular:\n\n - struct device gets a new int numa_node member if CONFIG_NUMA is set\n - there are two new helpers, dev_to_node and set_dev_node to\n   transparently deal with the non-numa case\n - for pci devices the node-info is set to the value we get from\n   pcibus_to_node.\n\nNote that for some architectures pcibus_to_node doesn\u0027t work yet at the time\nwe call it currently.  This is harmless and will just mean skb allocations\naren\u0027t node-local on this architectures until the implementation of\npcibus_to_node on these architectures have been updated (There are patches for\nx86 and x86_64 floating around)\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\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": "8a82472f86bf693b8e91ed56c9ca4f62fbbdcfa3",
      "tree": "79d148ee548f4b57e6f5a4a69cf6cdb81e7a1bf2",
      "parents": [
        "af9e0765362151b27372c14d9d6dc417184182d3"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Nov 20 17:07:51 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:01 2006 -0800"
      },
      "message": "driver core: Introduce device_move(): move a device to a new parent.\n\nProvide a function device_move() to move a device to a new parent device. Add\nauxilliary functions kobject_move() and sysfs_move_dir().\nkobject_move() generates a new uevent of type KOBJ_MOVE, containing the\nprevious path (DEVPATH_OLD) in addition to the usual values. For this, a new\ninterface kobject_uevent_env() is created that allows to add further\nenvironmental data to the uevent at the kobject layer.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "5ab699810d46011ad2195c5916f3cbc684bfe3ee",
      "tree": "991f6d4f502fd7871766b51a94a0e3ab33aadd62",
      "parents": [
        "035ed7a49447bc8e15d4d9316fc6a359b2d94333"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Thu Nov 16 15:42:07 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:01 2006 -0800"
      },
      "message": "driver core: Introduce device_find_child().\n\nIntroduce device_find_child() to match device_for_each_child().\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "465ae641e4a3e5028aa9c85d3843259aa28a22ce",
      "tree": "a8f20c576d03dc40d67ad8b5ee5f9dec4f114a81",
      "parents": [
        "c6dbaef22a2f78700e242915a13218dd780c89ff"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sat Nov 11 17:18:42 2006 +1100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:01 2006 -0800"
      },
      "message": "ACPI: Change ACPI to use dev_archdata instead of firmware_data\n\nChange ACPI to use dev_archdata instead of firmware_data\n\nThis patch changes ACPI to use the new dev_archdata on i386, x86_64\nand ia64 (is there any other arch using ACPI ?) to store it\u0027s\nacpi_handle.\n\nIt also removes the firmware_data field from struct device as this\nwas the only user.\n\nOnly build-tested on x86\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c6dbaef22a2f78700e242915a13218dd780c89ff",
      "tree": "57167ca04a79f0d0aecf82523c8d8f3918312d8d",
      "parents": [
        "d80f19fab89cba8a6d16193154c8ff3edab00942"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sat Nov 11 17:18:39 2006 +1100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:01 2006 -0800"
      },
      "message": "Driver core: add dev_archdata to struct device\n\nAdd arch specific dev_archdata to struct device\n\nAdds an arch specific struct dev_arch to struct device. This enables\narchitecture to add specific fields to every device in the system, like\nDMA operation pointers, NUMA node ID, firmware specific data, etc...\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f0ee61a6cecd100301a60d99feb187776533b2a2",
      "tree": "69fe62325427cdec7687e951e680ca9ff3486a3d",
      "parents": [
        "1901fb2604fbcd53201f38725182ea807581159e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 23 10:40:54 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:51:58 2006 -0800"
      },
      "message": "Driver Core: Move virtual_device_parent() to core.c\n\nIt doesn\u0027t need to be global or in device.h\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "116af378201ef793424cd10508ccf18b06d8a021",
      "tree": "2de792e7b9d8a122d88241d1ecfbe7bc92b9b8fe",
      "parents": [
        "0215ffb08ce99e2bb59eca114a99499a4d06e704"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Oct 25 13:44:59 2006 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:51:58 2006 -0800"
      },
      "message": "Driver core: add notification of bus events\n\nI finally did as you suggested and added the notifier to the struct\nbus_type itself. There are still problems to be expected is something\nattaches to a bus type where the code can hook in different struct\ndevice sub-classes (which is imho a big bogosity but I won\u0027t even try to\nargue that case now) but it will solve nicely a number of issues I\u0027ve\nhad so far.\n\nThat also means that clients interested in registering for such\nnotifications have to do it before devices are added and after bus types\nare registered. Fortunately, most bus types that matter for the various\nusage scenarios I have in mind are registerd at postcore_initcall time,\nwhich means I have a really nice spot at arch_initcall time to add my\nnotifiers.\n\nThere are 4 notifications provided. Device being added (before hooked to\nthe bus) and removed (failure of previous case or after being unhooked\nfrom the bus), along with driver being bound to a device and about to be\nunbound.\n\nThe usage I have for these are:\n\n - The 2 first ones are used to maintain a struct device_ext that is\nhooked to struct device.firmware_data. This structure contains for now a\npointer to the Open Firmware node related to the device (if any), the\nNUMA node ID (for quick access to it) and the DMA operations pointers \u0026\niommu table instance for DMA to/from this device. For bus types I own\n(like IBM VIO or EBUS), I just maintain that structure directly from the\nbus code when creating the devices. But for bus types managed by generic\ncode like PCI or platform (actually, of_platform which is a variation of\nplatform linked to Open Firmware device-tree), I need this notifier.\n\n - The other two ones have a completely different usage scenario. I have\ncases where multiple devices and their drivers depend on each other. For\nexample, the IBM EMAC network driver needs to attach to a MAL DMA engine\nwhich is a separate device, and a PHY interface which is also a separate\ndevice. They are all of_platform_device\u0027s (well, about to be with my\nupcoming patches) but there is no say in what precise order the core\nwill \"probe\" them and instanciate the various modules. The solution I\nfound for that is to have the drivers for emac to use multithread_probe,\nand wait for a driver to be bound to the target MAL and PHY control\ndevices (the device-tree contains reference to the MAL and PHY interface\nnodes, which I can then match to of_platform_devices). Right now, I\u0027ve\nbeen polling, but with that notifier, I can more cleanly wait (with a\ntimeout of course).\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "04fed361dadb7921507a470947ac23d2f26352cf",
      "tree": "32ba7e6c1f75159914dd3311e1cdc4243a84de27",
      "parents": [
        "dee6515b6d12188f4b9bbe76613371f7840a8a53"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+lkml@arm.linux.org.uk",
        "time": "Sun Oct 22 15:57:18 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 23 11:01:33 2006 -0700"
      },
      "message": "[PATCH] Remove __must_check for device_for_each_child()\n\nEliminate more __must_check madness.\n\nThe return code from device_for_each_child() depends on the values\nwhich the helper function returns.  If the helper function always\nreturns zero, it\u0027s utterly pointless to check the return code from\ndevice_for_each_child().\n\nThe only code which knows if the return value should be checked is\nthe caller itself, so forcing the return code to always be checked\nis silly.  Hence, remove the __must_check annotation.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2eaae197f4590c4d96f31b09b0ee9067421a95c",
      "tree": "5ccb072851da5d1bfdae458c52b57e76eb7dd168",
      "parents": [
        "0f397f865076e3471ec884ee73ad5e34165fac2a"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Sep 18 16:22:34 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:40 2006 -0700"
      },
      "message": "Driver core: Fix potential deadlock in driver core\n\nThere is a potential deadlock in the driver core.  It boils down to\nthe fact that bus_remove_device() calls klist_remove() instead of\nklist_del(), thereby waiting until the reference count of the\nklist_node in the bus\u0027s klist of devices drops to 0.  The refcount\ncan\u0027t reach 0 so long as a modprobe process is trying to bind a new\ndriver to the device being removed, by calling __driver_attach().  The\nproblem is that __driver_attach() tries to acquire the device\u0027s\nparent\u0027s semaphore, but the caller of bus_remove_device() is quite\nlikely to own that semaphore already.\n\nIt isn\u0027t sufficient just to replace klist_remove() with klist_del().\nDoing so runs the risk that the device would remain on the bus\u0027s klist\nof devices for some time, and so could be bound to another driver even\nafter it was unregistered.  What\u0027s needed is a new way to distinguish\nwhether or not a device is registered, based on a criterion other than\nwhether its klist_node is linked into the bus\u0027s klist of devices.  That\nway driver binding can fail when the device is unregistered, even if\nit is still linked into the klist.\n\nThis patch (as782) implements the solution, by adding a new bitflag to\nindiate when a struct device is registered, by testing the flag before\nallowing a driver to bind a device, and by changing the definition of\nthe device_is_registered() inline.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d779249ed4cb3b50690de6de8448829d65a1cd08",
      "tree": "0494df3b68a28ce0b23a1577758b583409621a7d",
      "parents": [
        "f20a9ead0d005fbeeae3fc21a96f9bf197ac1c1c"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jul 18 10:59:59 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:40 2006 -0700"
      },
      "message": "Driver Core: add ability for drivers to do a threaded probe\n\nThis adds the infrastructure for drivers to do a threaded probe, and\nwaits at init time for all currently outstanding probes to complete.\n\nA new kernel thread will be created when the probe() function for the\ndriver is called, if the multithread_probe bit is set in the driver\nsaying it can support this kind of operation.\n\nI have tested this with USB and PCI, and it works, and shaves off a lot\nof time in the boot process, but there are issues with finding root boot\ndisks, and some USB drivers assume that this can never happen, so it is\ncurrently not enabled for any bus type.  Individual drivers can enable\nthis right now if they wish, and bus authors can selectivly turn it on\nas well, once they determine that their subsystem will work properly\nwith it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f86db396ff455ed586751d21816a1ebd431264e5",
      "tree": "dfbeb27206b673ed46482b18ee6d779786be7ed1",
      "parents": [
        "370226449ced358e52d198081120826ef52c166b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Aug 14 22:43:20 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:39 2006 -0700"
      },
      "message": "drivers/base: check errors\n\nAdd lots of return-value checking.\n\n\u003cpcornelia.huck@de.ibm.com\u003e: fix bus_rescan_devices()]\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4a7fb6363f2d1a6c09a10253937f672f3c7929e1",
      "tree": "46e70fc8baca37ffd901c472ce7ce13338fb4ece",
      "parents": [
        "35acfdd7253025e8441883fd8f879f5240844f95"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Aug 14 22:43:17 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:39 2006 -0700"
      },
      "message": "add __must_check to device management code\n\nWe\u0027re getting a lot of crashes in the sysfs/kobject/device/bus/class code and\nthey\u0027re very hard to diagnose.\n\nI\u0027m suspecting that in some cases this is because drivers aren\u0027t checking\nreturn values and aren\u0027t handling errors correctly.  So the code blithely\nblunders on and crashes later in very obscure ways.\n\nThere\u0027s just no reason to ignore errors which can and do occur.  So the patch\nsprinkles __must_check all over these APIs.\n\nCauses 1,513 new warnings.  Heh.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2589f1887b0bf9f08ec3d7f3c5705ccb7c628076",
      "tree": "172fcb59cf5a8b500aafe905a690ea4b439277c4",
      "parents": [
        "c47ed219ba81632595e9f02e27318151fec16c9e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Sep 19 09:39:19 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:39 2006 -0700"
      },
      "message": "Driver core: add ability for devices to create and remove bin files\n\nMakes it easier for devices to create and remove binary attribute files\nso they don\u0027t have to call directly into sysfs.  This is needed to help\nwith the conversion from struct class_device to struct device.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c47ed219ba81632595e9f02e27318151fec16c9e",
      "tree": "7c6d6c07122c26c12719c676b6a81f731122347d",
      "parents": [
        "c205ef4880273d2de4ee5388d4e52227ff688cc4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 13 15:34:05 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:38 2006 -0700"
      },
      "message": "Class: add support for class interfaces for devices\n\nWhen moving class_device usage over to device, we need to handle\nclass_interfaces properly with devices.  This patch adds that support.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c205ef4880273d2de4ee5388d4e52227ff688cc4",
      "tree": "78e7cde849b9c40fd323b5550a8e64d5d169c55f",
      "parents": [
        "a2de48cace5d0993da6cfa28b276ae724dc3569b"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 07 22:19:37 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:38 2006 -0700"
      },
      "message": "Driver core: create devices/virtual/ tree\n\nThis change creates a devices/virtual/CLASS_NAME tree for struct devices\nthat belong to a class, yet do not have a \"real\" struct device for a\nparent.  It automatically creates the directories on the fly as needed.\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a2de48cace5d0993da6cfa28b276ae724dc3569b",
      "tree": "e4b1107ec3167c8d0064fe756bde6e0d53cf8c93",
      "parents": [
        "2620efef7029bb040430f50f0fc148f2d5e002ad"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 03 14:31:12 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:38 2006 -0700"
      },
      "message": "Driver core: add device_rename function\n\nThe network layer needs this to convert to using struct device instead\nof a struct class_device.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2620efef7029bb040430f50f0fc148f2d5e002ad",
      "tree": "433b19e18c40f6972ac0c936b844c997644dc176",
      "parents": [
        "64bb5d2c116478dba7501d2acf078ed74ba30c1f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 28 16:19:58 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:38 2006 -0700"
      },
      "message": "Driver core: add ability for classes to handle devices properly\n\nThis adds two new callbacks to the class structure:\n\tint\t(*dev_uevent)(struct device *dev, char **envp, int num_envp,\n\t\t\tchar *buffer, int buffer_size);\n\tvoid\t(*dev_release)(struct device *dev);\n\nAnd one pointer:\n\tstruct device_attribute\t\t* dev_attrs;\n\nwhich all corrispond with the same thing as the \"normal\" class devices\ndo, yet this is for when a struct device is bound to a class.\n\nSomeday soon, struct class_device will go away, and then the other\nfields in this structure can be removed too.  But this is necessary in\norder to get the transition to work properly.\n\nTested out on a network core patch that converted it to use struct\ndevice instead of struct class_device.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "de0ff00d723fd821d372496e2c084805644aa5e1",
      "tree": "d8d8f46f17d84b7b7b40e49e9dd54dcb8f1a2684",
      "parents": [
        "386415d88b1ae50304f9c61aa3e0db082fa90428"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jun 27 00:06:09 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:38 2006 -0700"
      },
      "message": "Driver core: add groups support to struct device\n\nThis is needed for the network class devices in order to be able to\nconvert over to use struct device.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1d3a82af45428c5e8deaa119cdeb79611ae46371",
      "tree": "e8e5b7a03a979e149541149cab5570352b90656f",
      "parents": [
        "1ebfd79eb46a89eacf3cbdf4a463d5d572d3557b"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Wed Aug 30 14:09:47 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:38 2006 -0700"
      },
      "message": "PM: no suspend_prepare() phase\n\nRemove the new suspend_prepare() phase.  It doesn\u0027t seem very usable,\nhas never been tested, doesn\u0027t address fault cleanup, and would need\na sibling resume_complete(); plus there are no real use cases.  It\ncould be restored later if those issues get resolved.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7c8265f51073bc8632a99de78d5fd19117ed78b7",
      "tree": "85efa2114f3765c98236152ca46d783dc1bd7d5b",
      "parents": [
        "ceeee1fb2897651b434547eb26d93e6d2ff5a1a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@osdl.org",
        "time": "Sat Jun 24 14:50:29 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:36 2006 -0700"
      },
      "message": "Suspend infrastructure cleanup and extension\n\nAllow devices to participate in the suspend process more intimately,\nin particular, allow the final phase (with interrupts disabled) to\nalso be open to normal devices, not just system devices.\n\nAlso, allow classes to participate in device suspend.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ab7d7371acc68fa9130b079a9ba879191202035f",
      "tree": "9ebd5fbcdb8f1ddffc022f573acc0690c11a8c83",
      "parents": [
        "5cbe5f8a5897470698222ac9924429056e57d84c"
      ],
      "author": {
        "name": "Miguel Ojeda Sandonis",
        "email": "maxextreme@gmail.com",
        "time": "Wed Sep 13 15:34:05 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:36 2006 -0700"
      },
      "message": "Driver core: add const to class_create\n\nAdds const to class_create second parameter, because:\n\nstruct class {\n\tconst char * name;\n\n\t/*...*/\n}\n\nSigned-off-by: Miguel Ojeda Sandonis \u003cmaxextreme@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5cbe5f8a5897470698222ac9924429056e57d84c",
      "tree": "c8fd5bd8680fd7fde7f779d699d1c5c280d552f3",
      "parents": [
        "ddd5d35a8f7c1924049e8b6877b3177c1787e6a3"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 10 01:19:19 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:36 2006 -0700"
      },
      "message": "device_create(): make fmt argument \u0027const char *\u0027\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ddd5d35a8f7c1924049e8b6877b3177c1787e6a3",
      "tree": "5989803d2ee88b3be71844cec1882359f9454824",
      "parents": [
        "d81d9d6b9f7d0af7d4341951d48d296681878f7a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Aug 10 01:18:18 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:36 2006 -0700"
      },
      "message": "class_device_create(): make fmt argument \u0027const char *\u0027\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3e95637a48820ff8bedb33e6439def96ccff1de5",
      "tree": "69930bc984892d68574e3623a0cbd88928fa6d06",
      "parents": [
        "e9a7d305faec364ba973d6c22c9b1e802ef79204"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri Jun 16 17:10:48 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:40:49 2006 -0700"
      },
      "message": "[PATCH] Driver Core: Make dev_info and friends print the bus name if there is no driver\n\nThis patch (as721) makes dev_info and related macros print the device\u0027s\nbus name if the device doesn\u0027t have a driver, instead of printing just a\nblank.  If the device isn\u0027t on a bus either... well, then it does leave\na blank space.  But it will be easier for someone else to change if they\nwant.\n\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "23681e479129854305da1da32f7f1eaf635ef22c",
      "tree": "5677e3d851e8d65feeb64c9852e4dbb60e75ff41",
      "parents": [
        "aa49b9136e3d44cc264811d77eef4ded88456717"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 14 12:14:34 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:40:49 2006 -0700"
      },
      "message": "[PATCH] Driver core: allow struct device to have a dev_t\n\nThis is the first step in moving class_device to being replaced by\nstruct device.  It allows struct device to export a dev_t and makes it\neasy to dynamically create and destroy struct device as long as they are\nassociated with a specific class.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1740757e8f94c6899705eb6f5434de9404992778",
      "tree": "012bf37dae6c7705a50f88bbdd8d28d975a5dc46",
      "parents": [
        "a0245f7ad5214cb00131d7cd176446e067c913dc"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 02 16:59:59 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:40:48 2006 -0700"
      },
      "message": "[PATCH] Driver Core: remove unused exports\n\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "66643de455c27973ac31ad6de9f859d399916842",
      "tree": "7ebed7f051879007d4b11d6aaa9e65a1bcb0b08f",
      "parents": [
        "2c23d62abb820e19c54012520f08a198c2233a85",
        "387e2b0439026aa738a9edca15a57e5c0bcb4dfc"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/asm-powerpc/unistd.h\n\tinclude/asm-sparc/unistd.h\n\tinclude/asm-sparc64/unistd.h\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "1498221d51a43d5fa1a580618591497d90f957d9",
      "tree": "20554a3fa474c9d09f649958b85b90a3de718477",
      "parents": [
        "5528e568a760442e0ec8fd2dea1f0791875a066b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Sat May 06 17:55:11 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 06 17:55:11 2006 -0700"
      },
      "message": "[CLASS DEVICE]: add attribute_group creation\n\nExtend the support of attribute groups in class_device\u0027s to allow\ngroups to be created as part of the registration process. This allows\nnetwork device\u0027s to avoid race between registration and creating\ngroups.\n\nNote that unlike attributes that are a property of the class object,\nthe groups are a property of the class_device object. This is done\nbecause there are different types of network devices (wireless for\nexample).\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "8b4b6707ee32f929846d947d18b1b9bf42e988aa",
      "tree": "aa27dd01e2d74cb68efc4ab57eb4d1f4e563ae33",
      "parents": [
        "d04ef3a795b3b7b376a02713ed5e211e9ae1f917",
        "116f232b3794a8b6ebde21aef5004b18cc1cfa86"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 10:58:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 10:58:05 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  fixed path to moved file in include/linux/device.h\n  Fix spelling in E1000_DISABLE_PACKET_SPLIT Kconfig description\n  Documentation/dvb/get_dvb_firmware: fix firmware URL\n  Documentation: Update to BUG-HUNTING\n  Remove superfluous NOTIFY_COOKIE_LEN define\n  add \"tags\" to .gitignore\n  Fix \"frist\", \"fisrt\", typos\n  fix rwlock usage example\n  It\u0027s UTF-8\n"
    },
    {
      "commit": "116f232b3794a8b6ebde21aef5004b18cc1cfa86",
      "tree": "8d9d46605b1109cfbfd1c147dd8afce61a4c2fe7",
      "parents": [
        "9e6b48732d53bd986178bca3bce18d2329e4b0ca"
      ],
      "author": {
        "name": "Rytchkov Alexey",
        "email": "lilo0@nm.ru",
        "time": "Wed Mar 22 00:58:53 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Mar 22 00:58:53 2006 +0100"
      },
      "message": "fixed path to moved file in include/linux/device.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "d04cdb64212eb5ae6a98026a97dda626e40e8e9a",
      "tree": "b6a7dbb21ccfceb915844e9a330b3d3dfcaf3c5b",
      "parents": [
        "2f8600dff2b140096a7df781884e918a16aa90e0",
        "ec1248e70edc5cf7b485efcc7b41e44e10f422e5"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Tue Mar 21 13:05:45 2006 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Tue Mar 21 13:05:45 2006 -0600"
      },
      "message": "Merge ../linux-2.6\n"
    },
    {
      "commit": "4f2928d0a439553f0288d9483faf417430629635",
      "tree": "96efd4b28d84fd409add525a7c2f834b22dd0d23",
      "parents": [
        "30560ba6eda308c13a361d08eb5d4eaab94ab37e"
      ],
      "author": {
        "name": "Tilman Schmidt",
        "email": "tilman@imap.cc",
        "time": "Fri Feb 24 11:05:45 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:42:59 2006 -0800"
      },
      "message": "[PATCH] Driver core: add macros notice(), dev_notice()\n\nBoth usb.h and device.h have collections of convenience macros for\nprintk() with the KERN_ERR, KERN_WARNING, and KERN_NOTICE severity\nlevels. This patch adds macros for the KERN_NOTICE level which was\nso far uncatered for.\n\nThese macros already exist privately in drivers/isdn/gigaset/gigaset.h\n(currently in the process of being submitted for the kernel tree)\nbut they really belong with their brothers and sisters in\ninclude/linux/{device,usb}.h.\n\nSigned-off-by: Tilman Schmidt \u003ctilman@imap.cc\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e935d5da8e5d12fabe5b632736c50eae0427e8c8",
      "tree": "8045ffcaa659365ed1d844e7704b92810660c8b1",
      "parents": [
        "79cb1819e231f811211133a09a5382cb89d7ec67"
      ],
      "author": {
        "name": "Moore, Eric",
        "email": "Eric.Moore@lsil.com",
        "time": "Tue Mar 14 09:18:18 2006 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Tue Mar 14 12:50:44 2006 -0600"
      },
      "message": "[SCSI] drivers/base/bus.c - export reprobe\n\nAdding support for exposing hidden raid components for sg\ninterface. The sdev-\u003eno_uld_attach flag will set set accordingly.\n\nThe sas module supports adding/removing raid volumes using online\nstorage management application interface.\n\nThis patch was provided to me by Christoph Hellwig.\n\nSigned-off-by: Eric Moore \u003cEric.Moore@lsil.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "594c8281f90560faf9632d91bb9d402cbe560e63",
      "tree": "abeb32df086cfd204accad33b11040381c31689d",
      "parents": [
        "bd37e5a951ad2123d3f51f59c407b5242946b6ba"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@arm.linux.org.uk",
        "time": "Thu Jan 05 14:29:51 2006 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 13 11:26:04 2006 -0800"
      },
      "message": "[PATCH] Add bus_type probe, remove, shutdown methods.\n\nAdd bus_type probe, remove and shutdown methods to replace the\ncorresponding methods in struct device_driver.  This matches\nthe way we handle the suspend/resume methods.\n\nSince the bus methods override the device_driver methods, warn\nif a device driver is registered whose methods will not be\ncalled.\n\nThe long-term idea is to remove the device_driver methods entirely.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "312c004d36ce6c739512bac83b452f4c20ab1f62",
      "tree": "e61e8331680a0da29557fe21414d3b31e62c9293",
      "parents": [
        "5f123fbd80f4f788554636f02bf73e40f914e0d6"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Wed Nov 16 09:00:00 2005 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:08 2006 -0800"
      },
      "message": "[PATCH] driver core: replace \"hotplug\" by \"uevent\"\n\nLeave the overloaded \"hotplug\" word to susbsystems which are handling\nreal devices. The driver core does not \"plug\" anything, it just exports\nthe state to userspace and generates events.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d052d1beff706920e82c5d55006b08e256b5df09",
      "tree": "dac91b70361b405ab8e15207f514a2f3e991e93d",
      "parents": [
        "8a212ab6b8a4ccc6f3c3d1beba5f92655c576404"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Sat Oct 29 19:07:23 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Oct 29 19:07:23 2005 +0100"
      },
      "message": "Create platform_device.h to contain all the platform device details.\nConvert everyone who uses platform_bus_type to include\nlinux/platform_device.h.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "9480e307cd88ef09ec9294c7d97ebec18e6d2221",
      "tree": "967e26d3a23c24dd52b114d672312c207714308c",
      "parents": [
        "a3a3395e487abc4c1371fe319a8ecbb3913a70a4"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@arm.linux.org.uk",
        "time": "Fri Oct 28 09:52:56 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:56 2005 -0700"
      },
      "message": "[PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks\n\nIn PM v1, all devices were called at SUSPEND_DISABLE level.  Then\nall devices were called at SUSPEND_SAVE_STATE level, and finally\nSUSPEND_POWER_DOWN level.  However, with PM v2, to maintain\ncompatibility for platform devices, I arranged for the PM v2\nsuspend/resume callbacks to call the old PM v1 suspend/resume\ncallbacks three times with each level in order so that existing\ndrivers continued to work.\n\nSince this is obsolete infrastructure which is no longer necessary,\nwe can remove it.  Here\u0027s an (untested) patch to do exactly that.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "74be227f728ed68bfc270153665b43fc1f0fa845",
      "tree": "c10fbdaa10a57162885881e080ac1cee71c0d9c1",
      "parents": [
        "53f4654272df7c51064825024340554b39c9efba"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:52 2005 -0700"
      },
      "message": "[PATCH] Driver Core: document struct class_device properly\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "51d172d5f3a193e4b8f76179b2e55d7a36b94117",
      "tree": "4bb508d85d9de2588235caddf197da57a47b5d6e",
      "parents": [
        "a7fd67062efc5b0fc9a61368c607fa92d1d57f9e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:51 2005 -0700"
      },
      "message": "[PATCH] Driver Core: add the ability for class_device structures to be nested\n\nThis patch allows struct class_device to be nested, so that another\nstruct class_device can be the parent of a new one, instead of only\nhaving the struct class be the parent.  This will allow us to\n(hopefully) fix up the input and video class subsystem mess.\n\nBut please people, don\u0027t go crazy and start making huge trees of class\ndevices, you should only need 2 levels deep to get everything to work\n(remember to use a class_interface to get notification of a new class\ndevice being added to the system.)\n\nOh, this also allows us to have the possibility of potentially, someday,\nmoving /sys/block into /sys/class.  The main hindrance is that pesky\n/dev numberspace issue...\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "a7fd67062efc5b0fc9a61368c607fa92d1d57f9e",
      "tree": "8b91f198640608bd99f4e4764394e5134220abcf",
      "parents": [
        "d8539d81aeee4dbdc0624a798321e822fb2df7ae"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Sat Oct 01 14:49:43 2005 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:51 2005 -0700"
      },
      "message": "[PATCH] add sysfs attr to re-emit device hotplug event\n\nA \"coldplug + udevstart\" can be simple like this:\n  for i in /sys/block/*/*/uevent; do echo 1 \u003e $i; done\n  for i in /sys/class/*/*/uevent; do echo 1 \u003e $i; done\n  for i in /sys/bus/*/devices/*/uevent; do echo 1 \u003e $i; done\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d8539d81aeee4dbdc0624a798321e822fb2df7ae",
      "tree": "3fc46e80f2fdec0a7ca714dfa3fb8f08648d3bb8",
      "parents": [
        "7bd7b091429705eb281d60c553cc643aada8045a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Thu Sep 15 02:01:36 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:51 2005 -0700"
      },
      "message": "[PATCH] Driver core: pass interface to class interface methods\n\nDriver core: pass interface to class intreface methods\n\nPass interface as argument to add() and remove() class interface\nmethods. This way a subsystem can implement generic add/remove\nhandlers and then call interface-specific ones.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "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"
    }
  ]
}
