)]}'
{
  "log": [
    {
      "commit": "ae1b41715ee2aae356fbcca032838b71d70b855f",
      "tree": "d053c68c0d15a219d58298ebb020b8b6bcfcff8b",
      "parents": [
        "8940b4f312dced51b45004819b776ec3aa7fcd5d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Dec 16 12:26:21 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:25 2009 -0700"
      },
      "message": "driver core: move knode_bus into private structure\n\nNothing outside of the driver core should ever touch knode_bus, so\nmove it out of the public eye.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f48f3febb2cbfd0f2ecee7690835ba745c1034a4",
      "tree": "1cb3803049cde40ff3dc528a2120f915e65f0367",
      "parents": [
        "e5779a583ddb9916b37cfbb916dc53ec2eaf0b9b"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sat Feb 14 21:23:22 2009 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:25 2009 -0700"
      },
      "message": "driver-core: do not register a driver with bus_type not registered\n\nIf the bus_type is not registerd, driver_register to that bus will cause oops.\n\nI found this bug when test built-in usb serial drivers (ie. aircable driver)\nwith \u0027nousb\u0027 cmdline params.\n\nIn this patch:\n1. set the bus-\u003ep\u003dNULL when bus_register failed and unregisterd.\n2. if bus-\u003ep is NULL, driver_register BUG_ON will be triggered.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "49b420a13ff95b449947181190b08367348e3e1b",
      "tree": "5feec1d1eac071e46c9aacec4255d891fa4f7ed2",
      "parents": [
        "4a67a1bc0b3a0db017b560cee27370d141c58e25"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Wed Jan 21 23:27:47 2009 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:24 2009 -0700"
      },
      "message": "driver core: check bus-\u003ematch without holding device lock\n\nThis patch moves bus-\u003ematch out from driver_probe_device and\ndoes not hold device lock to check the match between a device\nand a driver.\n\nThe idea has been verified by the commit 6cd495860901,\nwhich leads to a faster boot. But the commit 6cd495860901 has\nthe following drawbacks: 1),only does the quick check in\nthe path of __driver_attach-\u003edriver_probe_device, not in other\npaths; 2),for a matched device and driver, check the same match\ntwice. It is a waste of cpu ,especially for some drivers with long\ndevice id table (eg. usb-storage driver).\n\nThis patch adds a helper of driver_match_device to check the match\nin all paths, and testes the match only once.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4db8e282f2d1dfa43d51ce2a4817901312c9134d",
      "tree": "c2d2ee15e5d74186ad79220035b222df7c8330c5",
      "parents": [
        "73d59314e6ed268d6f322ae1bdd723b23fa5a4ed"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 09 14:32:46 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 09 14:32:46 2009 -0800"
      },
      "message": "Revert \"driver core: move knode_bus into private structure\"\n\nThis reverts commit b9daa99ee533578e3f88231e7a16784dcb44ec42.\n\nTurns out that device_initialize shouldn\u0027t fail silently.\nThis series needs to be reworked in order to get into proper\nshape.\n\nReported-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "b9daa99ee533578e3f88231e7a16784dcb44ec42",
      "tree": "10f572ac695927866ec8293efdf4b937c11c4597",
      "parents": [
        "93e746db183b3bdbbda67900f79b5835f9cb388f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Dec 16 12:26:21 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:33 2009 -0800"
      },
      "message": "driver core: move knode_bus into private structure\n\nNothing outside of the driver core should ever touch knode_bus, so\nmove it out of the public eye.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1e0b2cf933ebf32494eba3f668859ba57f06a951",
      "tree": "b8d9a3b41a452fb922cd3425e67ea8278c128c70",
      "parents": [
        "210272a28465a7a31bcd580d2f9529f924965aa5"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 01:36:48 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:31 2009 -0800"
      },
      "message": "driver core: struct device - replace bus_id with dev_name(), dev_set_name()\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "99178b036c97293a65004ff5ec5cff9f833aaecd",
      "tree": "c83ac6855710038ad9846f79b952b7fdcca528f8",
      "parents": [
        "26853ab6f9a4c482be4b638477335704724d4854"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Aug 26 11:00:57 2008 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:52 2008 -0700"
      },
      "message": "Driver core: add bus_sort_breadthfirst() function\n\nThe PCI core wants to reorder the devices in the bus list.  So move this\nfunctionality out of the pci core and into the driver core so that\nanyone else can also do this if needed.  This also lets us change how\nstruct device is attached to drivers in the future without messing with\nthe PCI core.\n\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3ce24d8d93f8f9617841d0c8416174da7ee1b042",
      "tree": "3658cd5d9131572b7822cc32bd07a672bdfdb243",
      "parents": [
        "5172046d960b27f7c22bed8038d696e7004cb112"
      ],
      "author": {
        "name": "Peter Korsgaard",
        "email": "jacmet@sunsite.dk",
        "time": "Tue Sep 23 22:01:27 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:51 2008 -0700"
      },
      "message": "Driver core: make bus_find_device_by_name() more robust\n\nUse sysfs_streq() in bus_find_device_by_name() so trailing newlines\nare ignored (E.G. in bind/unbind).\n\nSigned-off-by: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "29591b92e19f409d5ad4c099c2b7b5ea56f50dfa",
      "tree": "0e3625c691318934f97f384d0cac862b13b29719",
      "parents": [
        "08119e8966e993993d0ba92b2fba38c582c8f787"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Apr 22 22:57:50 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 22 17:40:36 2008 -0700"
      },
      "message": "bus_remove_device: be more careful about incomplete initialization\n\nPrevent bus_remove_device() from crashing if dev-\u003eknode_bus has not been\ninitialized before it\u0027s called.\n\nThis can happen if the device_add() ended up breaking out early due to\nan error, for example.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b3a302a09735276e13421db56c20045a48eb06d",
      "tree": "77af4f2f378d92d7b61727a38501feed3365e57f",
      "parents": [
        "2424b5dd062cbe3e0578ae7b11a1b360ad22f451"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Mar 04 16:41:05 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:29 2008 -0700"
      },
      "message": "driver core: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3f62e5700b2a679ae987b32a68126dd6dcf2488f",
      "tree": "4f8eda958d328b6fc068409c0fb464bc7c21266b",
      "parents": [
        "9a3df1f7de0ecaf77a1dde86f2a4dc020f37f87e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Mar 13 17:07:03 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:26 2008 -0700"
      },
      "message": "Driver core: make device_is_registered() work for class devices\n\ndevice_is_registered() can use the kobject value for this, so it will\nnow work with devices that are associated with only a class, not a bus\nand a driver.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0763446429e46fd973f507f79900b95eb8aae2e4",
      "tree": "9b6b0811c94e59e1e90e0f6a636e2e86b8918c01",
      "parents": [
        "7199677d2e919edc75d1fb8856c98cd0c1bbcfc5"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Feb 18 17:04:25 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 21 15:27:07 2008 -0800"
      },
      "message": "Driver core: Fix error handling in bus_add_driver().\n\n- If the allocation of -\u003epriv fails, the reference on the bus\n  must be dropped.\n- If adding the kobject fails, kobject_put must be called to\n  clean things up.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "1f9ffc049d7a88c8489b883b6fc0a25185062002",
      "tree": "0dddb114d2de5f380ab055c039da0549adb42b12",
      "parents": [
        "123ca9575b1f5342c05a4b84d6af8ba7587c2981"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Jan 27 10:29:20 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Jan 27 15:01:39 2008 -0800"
      },
      "message": "Driver core: add bus_find_device_by_name function\n\nThe driver core, and some other parts of the kernel just want to find a\ndevice based on a name for a specific bus.  Give them a simple wrapper\nto prevent them from having to always roll their own.\n\nThis will be used in the PPC patch later in this series.\n\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4a3ad20ccd8f4d2a0535cf98fa83f7b561ba59a9",
      "tree": "8d0d147716466801b859a777472246ee5563f64b",
      "parents": [
        "e374a2bfebf359f846216336de91670be40499da"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 22:50:12 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 22:50:12 2008 -0800"
      },
      "message": "Driver core: coding style fixes\n\nFix up a number of coding style issues in the drivers/base/ directory\nthat have annoyed me over the years.  checkpatch.pl is now very happy.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "c10997f6575f476ff38442fa18fd4a0d80345f9d",
      "tree": "9b2bb7e647bd39fb80f23d7a6b34bf2587d660a7",
      "parents": [
        "38a382ae5dd4f4d04e3046816b0a41836094e538"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Dec 20 08:13:05 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:40 2008 -0800"
      },
      "message": "Kobject: convert drivers/* from kobject_unregister() to kobject_put()\n\nThere is no need for kobject_unregister() anymore, thanks to Kay\u0027s\nkobject cleanup changes, so replace all instances of it with\nkobject_put().\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c8e90d822bff3e0502d004facedb05859f98055f",
      "tree": "12d37b4c20ab4ff6e55adcfbfff2bae8fdbeed41",
      "parents": [
        "7dc72b2842381684b864750af31a5fb168dec764"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Dec 17 15:54:39 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:35 2008 -0800"
      },
      "message": "Kobject: change drivers/base/bus to use kobject_init_and_add\n\nStop using kobject_register, as this way we can control the sending of\nthe uevent properly, after everything is properly initialized.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7dc72b2842381684b864750af31a5fb168dec764",
      "tree": "16746ac3f9836049705e1613480debb288c0068d",
      "parents": [
        "e5dd12784617f0f1fae5f96a7fac1ec4c49fadbe"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Nov 28 23:49:41 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:35 2008 -0800"
      },
      "message": "Driver core: clean up debugging messages\n\nThe driver core debugging messages are a mess.  This provides a unified\nmessage that makes them actually useful.\n\nThe format for new kobject debug messages should be:\n\tdriver/bus/class: \u0027OBJECT_NAME\u0027: FUNCTION_NAME: message.\\n\n\nNote, the class code is not changed in this patch due to pending patches\nin my queue that this would conflict with.  A later patch will clean\nthem up.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e5dd12784617f0f1fae5f96a7fac1ec4c49fadbe",
      "tree": "c81e2a2f3aa1c60b92951d398774f1391bdc6a1c",
      "parents": [
        "c63469a3985a9771c18a916b8d42845d044ea0b1"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Nov 28 15:59:15 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:35 2008 -0800"
      },
      "message": "Driver core: move the static kobject out of struct driver\n\nThis patch removes the kobject, and a few other driver-core-only fields\nout of struct driver and into the driver core only.  Now drivers can be\nsafely create on the stack or statically (like they currently are.)\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c6f7e72a3f4641095ade9ded287d910c980c6148",
      "tree": "d2d7d946b978ce9f5586a02c3520aa76e928a551",
      "parents": [
        "b249072ee6897fe4f8d461c7bb4b926223263c28"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 19:41:16 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:33 2008 -0800"
      },
      "message": "driver core: remove fields from struct bus_type\n\nstruct bus_type is static everywhere in the kernel.  This moves the\nkobject in the structure out of it, and a bunch of other private only to\nthe driver core fields are now moved to a private structure.  This lets\nus dynamically create the backing kobject properly and gives us the\nchance to be able to document to users exactly how to use the struct\nbus_type as there are no fields they can improperly access.\n\nThanks to Kay for the build fixes on this patch.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b249072ee6897fe4f8d461c7bb4b926223263c28",
      "tree": "a6dde5703458677302516145c47f308e52cda189",
      "parents": [
        "0fed80f7a63abd7168907267af69ee31f6bcf301"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 19:41:16 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:33 2008 -0800"
      },
      "message": "driver core: add way to get to bus device klist\n\nThis allows an easier way to get to the device klist associated with a\nstruct bus_type (you have three to choose from...)  This will make it\neasier to move these fields to be dynamic in a future patch.\n\nThe only user of this is the PCI core which horribly abuses this\ninterface to rearrange the order of the pci devices.  This should be\ndone using the existing bus device walking functions, but that\u0027s left\nfor future patches.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0fed80f7a63abd7168907267af69ee31f6bcf301",
      "tree": "2380e2180aa01d883a5c2a2a0528c40f36d23d91",
      "parents": [
        "cc972e896b303f453f5893ecf8eca0d0e395ab64"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 19:41:16 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:33 2008 -0800"
      },
      "message": "driver core: add way to get to bus kset\n\nThis allows an easier way to get to the kset associated with a struct\nbus_type (you have three to choose from...)  This will make it easier to\nmove these fields to be dynamic in a future patch.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2fb9113b974c3c7c43e76647bd5077238e274e1c",
      "tree": "b87912c7d2c7a24b35a9a5e82fe462d7cffcbacb",
      "parents": [
        "0ff21e46630abce11fdaaffabd72bbd4eed5ac2c"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Nov 06 15:03:30 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:24 2008 -0800"
      },
      "message": "kobject: remove subsystem_(un)register functions\n\nThese functions are no longer used and are the last remants of the old\nsubsystem crap.  So delete them for good.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6dcec2511ff55b4abaca7ad3433011a7c04c2430",
      "tree": "aeb9c18a877987478a1594d42b8f041ebb388875",
      "parents": [
        "3d8995963dfec66ef6270e729bf75903e9043f9d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 13:31:26 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:16 2008 -0800"
      },
      "message": "kset: convert struct bus_device-\u003edrivers to use kset_create\n\nDynamically create the kset instead of declaring it statically.\n\nHaving 3 static kobjects in one structure is not only foolish, but ripe\nfor nasty race conditions if handled improperly.  We also rename the\nfield to catch any potential users of it (not that there should be\noutside of the driver core...)\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3d8995963dfec66ef6270e729bf75903e9043f9d",
      "tree": "3abf600f400fb1bbc26f0be4f43af6cb22d24ce4",
      "parents": [
        "039a5dcd2fc45188a2d522df630db4f7ef903a0f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 13:31:26 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:16 2008 -0800"
      },
      "message": "kset: convert struct bus_device-\u003edevices to use kset_create\n\nDynamically create the kset instead of declaring it statically.\n\nHaving 3 static kobjects in one structure is not only foolish, but ripe\nfor nasty race conditions if handled improperly.  We also rename the\nfield to catch any potential users of it (not that there should be\noutside of the driver core...)\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "59a548338ac6c9d7549c54278d0f724088585928",
      "tree": "36d12d6d2d9b32584a06032b45a0009dd7210db5",
      "parents": [
        "bd35b93d8049ab47b5bfaf6b10ba39badf21d1c3"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 29 23:22:26 2007 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:14 2008 -0800"
      },
      "message": "kset: convert drivers/base/bus.c to use kset_create\n\nDynamically create the kset instead of declaring it statically.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3514faca19a6fdc209734431c509631ea92b094e",
      "tree": "f6d102e6dec276f8e8d1044b47c74a02b901554f",
      "parents": [
        "c11c4154e7ff4cebfadad849b1e22689d759c3f4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 16 10:11:44 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:10 2008 -0800"
      },
      "message": "kobject: remove struct kobj_type from struct kset\n\nWe don\u0027t need a \"default\" ktype for a kset.  We should set this\nexplicitly every time for each kset.  This change is needed so that we\ncan make ksets dynamic, and cleans up one of the odd, undocumented\nassumption that the kset/kobject/ktype model has.\n\nThis patch is based on a lot of help from Kay Sievers.\n\nNasty bug in the block code was found by Dave Young\n\u003chidave.darkstar@gmail.com\u003e\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a1148fb03f3c5d0bb5e6641234c2251a15741361",
      "tree": "49c33bc0628230202a2599f12088e55bd117479f",
      "parents": [
        "8f4afc410b8d2be49f34835b6bbe788f50471b02"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 11 10:47:49 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:12 2007 -0700"
      },
      "message": "Driver core: rename ktype_driver\n\nThis makes it a bit more sane when trying to figure out how to clean up\nthe ktype mess.\n\nBased on a larger patch from Kay Sievers\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7ac1cf4a87f446c130f7d8a4fe7e519f532a11de",
      "tree": "7dc4b1bfe3e932f22ea0f0769fe20a772fb13d5a",
      "parents": [
        "5c5daf657cb5f963a38413f2852279d7a3843144"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sun Aug 12 20:43:55 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:06 2007 -0700"
      },
      "message": "Driver core: add uevent file for bus and driver\n\nThis has been in the SuSE kernels for some time now.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5901d0145c6b9e791bacd049eea11c9db9a3006e",
      "tree": "1f474118fa9a644efc36c7e9adef7799ae8e1edd",
      "parents": [
        "fc1ede5888ab8a9b3e7f8567b945beed35222885"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Sep 13 02:53:13 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:02 2007 -0700"
      },
      "message": "Driver core: remove get_bus()\n\nget_bus() should not be globally visable as it is not used by anything\nother than drivers/base/bus.c.  This patch removes the visability of it,\nand renames it to match all of the other *_get() functions in the\nkernel.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "fc1ede5888ab8a9b3e7f8567b945beed35222885",
      "tree": "eddc7763a7e90d7644e655ec94e82f6c25af5e05",
      "parents": [
        "1ef4cfac01fb5e98900f5bdb2a722aac1daff11b"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Sep 13 02:53:13 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:02 2007 -0700"
      },
      "message": "Driver core: remove put_bus()\n\nput_bus() should not be globally visable as it is not used by anything\nother than drivers/base/bus.c.  This patch removes the visability of it,\nand renames it to match all of the other *_put() functions in the\nkernel.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1ef4cfac01fb5e98900f5bdb2a722aac1daff11b",
      "tree": "fcf3e348f87729cc149224f639f3228b1702c9ae",
      "parents": [
        "6e9d930d167f8957a12a80515f3c417a98296378"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 12 15:06:57 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:01 2007 -0700"
      },
      "message": "Driver core: remove subsys_get()\n\nThere are no more subsystems, it\u0027s a kset now so remove the function and\nthe only two users, which are in the driver core.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6e9d930d167f8957a12a80515f3c417a98296378",
      "tree": "5050bc0b029c8d51d970e76c5ee5f59ed5e756b7",
      "parents": [
        "27f20e5e4e60a7f28010eeb34399fe0cc9a1a235"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 12 15:06:57 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:01 2007 -0700"
      },
      "message": "Driver core: remove subsys_put()\n\nThere are no more subsystems, it\u0027s a kset now so remove the function and\nthe only two users, which are in the driver core.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d6b05b84edf590ff872de6310ec20d60b5b37dd2",
      "tree": "e0376d6753895de467c564eca5c1cbb05f6541bc",
      "parents": [
        "6a8d8abb6e4497ae4132a9b1f0a956ea501f1c46"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 12 15:06:57 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:01 2007 -0700"
      },
      "message": "Driver core: remove subsys_set_kset\n\nThis macro is only used by the driver core and is held over from when we\nhad subsystems.  It is not needed anymore.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\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": "7b595756ec1f49e0049a9e01a1298d53a7faaa15",
      "tree": "cd06687ab3e5c7a5a4ef91903dff207a18c4db76",
      "parents": [
        "dbde0fcf9f8f6d477af3c32d9979e789ee680cde"
      ],
      "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": "sysfs: kill unnecessary attribute-\u003eowner\n\nsysfs is now completely out of driver/module lifetime game.  After\ndeletion, a sysfs node doesn\u0027t access anything outside sysfs proper,\nso there\u0027s no reason to hold onto the attribute owners.  Note that\noften the wrong modules were accounted for as owners leading to\naccessing removed modules.\n\nThis patch kills now unnecessary attribute-\u003eowner.  Note that with\nthis change, userland holding a sysfs node does not prevent the\nbacking module from being unloaded.\n\nFor more info regarding lifetime rule cleanup, please read the\nfollowing message.\n\n  http://article.gmane.org/gmane.linux.kernel/510293\n\n(tweaked by Greg to not delete the field just yet, to make it easier to\nmerge things properly.)\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "dc0afa8388972a9ed7c2203cc46d8df1a4713f65",
      "tree": "a4693ef5ac039e868c3c53b72b504868f5199998",
      "parents": [
        "93160c6397e460bc4c7ac15323fb698f91ef02e5"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Jul 09 11:39:18 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:02 2007 -0700"
      },
      "message": "Driver core: coding style cleanup\n\nThis converts code of the form\n\n\tif ((error \u003d some_func()))\n\t\tgoto fixup;\nto\n\terror \u003d some_func();\n\tif (error)\n\t\tgoto fixup;\n\nSigned-off-by: 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": "80f03e349f06a261a8e980bf6005c61811a0d66a",
      "tree": "91837f2ad36d42f2426621cdccd7765bf58734b2",
      "parents": [
        "4f5c791a850e5305a5b1b48d0e4b4de248dc96f9"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sat May 26 11:21:36 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:01 2007 -0700"
      },
      "message": "Driver core: add missing kset uevent\n\nWe get uevents for a bus/class going away, but not one registering.\nAdd the missing uevent in kset_register(), which will send an\nevent for a new bus/class. Suppress all unwanted uevents for bus\nsubdirectories like /bus/*/devices/, /bus/*/drivers/.\n\nNow we get for module usbcore:\n  add      /module/usbcore (module)\n  add      /bus/usb (bus)\n  add      /class/usb_host (class)\n  add      /bus/usb/drivers/hub (drivers)\n  add      /bus/usb/drivers/usb (drivers)\n  remove   /bus/usb/drivers/usb (drivers)\n  remove   /bus/usb/drivers/hub (drivers)\n  remove   /class/usb_host (class)\n  remove   /bus/usb (bus)\n  remove   /module/usbcore (module)\n\ninstead of:\n  add      /module/usbcore (module)\n  add      /bus/usb/drivers/hub (drivers)\n  add      /bus/usb/drivers/usb (drivers)\n  remove   /bus/usb/drivers/usb (drivers)\n  remove   /bus/usb/drivers/hub (drivers)\n  remove   /class/usb_host (class)\n  remove   /bus/usb/drivers (bus)\n  remove   /bus/usb/devices (bus)\n  remove   /bus/usb (bus)\n  remove   /module/usbcore (module)\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\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": "4f6e1945fecad6ac8134e9fa68b7708e55690e9e",
      "tree": "367307c1307ea8ea633bef75350b7cc2df61d91d",
      "parents": [
        "8447891fe845851738439788c74b3c811578e3f9"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 20 11:29:52 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:32 2007 -0700"
      },
      "message": "driver core: bus_add_driver should return an error if no bus\n\nAs pointed out by Dave Jones.\n\nCc: Dave Jones \u003cdavej@redhat.com\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": "c6a46696f97ff260a4ecce5e287f8de4b9d7fe14",
      "tree": "335de50c9868cd575f535677e430677d33cbaaa1",
      "parents": [
        "eed40d3ad2ba652c08422d62a5ff6f62ac0be16d"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Feb 05 16:15:26 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:29 2007 -0700"
      },
      "message": "driver core: don\u0027t fail attaching the device if it cannot be bound\n\nDon\u0027t fail bus_attach_device() if the device cannot be bound.\n\nIf dev-\u003edriver has been specified, reset it to NULL if device_bind_driver()\nfailed and add the device as an unbound device.  As a result,\nbus_attach_device() now cannot fail, and we can remove some checking from\ndevice_add().\n\nAlso remove an unneeded check in bus_rescan_devices_helper().\n\nSigned-off-by: 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": "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": "4aca67e5f54bf6ee439b5bdbc77007a547ad5b43",
      "tree": "06b6c0ba74397f4064383644b3fe6fb7d65ec364",
      "parents": [
        "873760fbf4d1c8c477a50386438303b6b89b6566"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Feb 13 22:39:26 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:19:18 2007 -0800"
      },
      "message": "Driver core: device_add_attrs() cleanup\n\nClean up the coding in device_add_attrs() a bit.\n\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "b9cafc7d5b8af0c71896f60dfcff40c71bd38a9a",
      "tree": "818da5cabe0236b547d1d1fc3a00e4446d439356",
      "parents": [
        "40fa54226f518a9bc97ed1d711c0016e416e3782"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Sep 14 11:23:28 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:51:58 2006 -0800"
      },
      "message": "CONFIG_SYSFS_DEPRECATED - bus symlinks\n\nTurn off the bus symlinks if CONFIG_SYSFS_DEPRECATED is enabled\n\nSigned-off-by: 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": "d9fd4d3b317a231e47f31d64d66c8cc7765d458f",
      "tree": "d4a80654a42707bbb541d52ca1fffc565e92e96b",
      "parents": [
        "f70fa6296c2ec8f541f0a9b406ccc2d9d127d639"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 04 07:48:03 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 18 12:49:56 2006 -0700"
      },
      "message": "Driver core: bus: remove indentation level\n\nBefore potentially fixing up these functions, this cosmetic change\nreduces the indentation level to make the code easier to read and\nmaintain.\n\nNo functional changes at all.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f70fa6296c2ec8f541f0a9b406ccc2d9d127d639",
      "tree": "f9fd9bbb13a62683c6b41612cfb34fa3894f8676",
      "parents": [
        "952ab431cd36c7ab573f685af8679c3677cbdc29"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Oct 05 17:03:24 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 18 12:49:55 2006 -0700"
      },
      "message": "Driver core: Don\u0027t ignore error returns from probing\n\nThis patch (as797) fixes device_add() in the driver core.  It needs to\npay attention when the driver for a new device reports an error.\n\nAt the same time, since bus_remove_device() undoes the effects of both\nbus_add_device() and bus_attach_device(), it needs to check whether\nthe bus_attach_device step failed.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "513e7337adc32cdfbffecb99953e45a44e812c2d",
      "tree": "47179553f793f74366650b9b085f1350cc00a8e3",
      "parents": [
        "1bb6881acae1c4f11a6e86f04df32ba45e95031d"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Fri Sep 22 11:37:08 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 18 12:49:55 2006 -0700"
      },
      "message": "driver core fixes: bus_add_device() cleanup on error\n\nCorrect cleanup in the error path of bus_add_device().\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "1bb6881acae1c4f11a6e86f04df32ba45e95031d",
      "tree": "c26795fdd0f062ba741d4bbb82a960c942119e3c",
      "parents": [
        "f0e1761ac528e9d28f3ba06bd268ec41fe872ac8"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Fri Sep 22 11:37:04 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 18 12:49:55 2006 -0700"
      },
      "message": "driver core fixes: bus_add_attrs() retval check\n\nCheck return value of bus_add_attrs() in bus_register().\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "81107bf531d2524afbcd61f3b4ad57a71295d591",
      "tree": "8c4f985714432bee996720c2d8e4bcfbe3d70575",
      "parents": [
        "f2eaae197f4590c4d96f31b09b0ee9067421a95c"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Sep 18 16:24:28 2006 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:40 2006 -0700"
      },
      "message": "Driver core: Remove unneeded routines from driver core\n\nThis patch (as783) simplifies the driver core slightly by removing four\nunnecessary _get and _put methods.\n\nIt is vital that when a driver is removed from its bus\u0027s klist of\nregistered drivers, or when a device is removed from a driver\u0027s klist\nof bound devices, that the klist updates complete synchronously.\nOtherwise the kernel might try binding an unregistered driver to a\nnewly-registered device, or adding a device to the klist for a new\ndriver before it has been removed from the old driver\u0027s klist.\n\nSince the removals must be synchronous, they don\u0027t need to update any\nreference counts.  Hence the _get and _put methods can be dispensed\nwith.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "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": "35acfdd7253025e8441883fd8f879f5240844f95",
      "tree": "d1fb2d170964572c4b5446f73a44db88599c0e46",
      "parents": [
        "9de72ee59029087fc8300633113c75a5fe73a7b8"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Sat Jul 15 01:30:11 2006 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:39 2006 -0700"
      },
      "message": "Driver core: fixed add_bind_files() definition\n\nWhen CONFIG_HOTPLUG is n, add_bind_files() definition is wrong.\nThis patch has fixed it.\n\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7e4ef085ea4b00cfc34e854edf448c729de8a0a5",
      "tree": "cc8b12d3b25e0b5a6cc2524faccc2d05dcff61c8",
      "parents": [
        "42734dafa43e453a8b6769a5ebd3a01ffc1fd116"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 22:26:56 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 12 16:09:08 2006 -0700"
      },
      "message": "[PATCH] Driver core: bus.c cleanups\n\nThis patch contains the following cleanups:\n- make the needlessly global bus_subsys static\n- #if 0 the unused find_bus()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "b9d9c82b4d081feb464f62dfc786c8621d09ecd2",
      "tree": "511d15b4d7aaba80a2c0fe49622a3224ca386122",
      "parents": [
        "23681e479129854305da1da32f7f1eaf635ef22c"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Thu Jun 15 15:31:56 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:40:49 2006 -0700"
      },
      "message": "[PATCH] Driver core: add generic \"subsystem\" link to all devices\n\nLike the SUBSYTEM\u003d key we find in the environment of the uevent, this\ncreates a generic \"subsystem\" link in sysfs for every device. Userspace\nusually doesn\u0027t care at all if its a \"class\" or a \"bus\" device. This\nprovides an unified way to determine the subsytem of a device, regardless\nof the way the driver core has created it.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\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": "53877d06d53a412d901bb323f080296c363d8b51",
      "tree": "ceffbd4dd9342e1742bf59165880888f7f961f33",
      "parents": [
        "27c0ff868f2ad3c9732ce45abbb8dd7e1723931f"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@suse.de",
        "time": "Tue Apr 04 20:42:26 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:40:47 2006 -0700"
      },
      "message": "[PATCH] Driver core: bus device event delay\n\nsplit bus_add_device() and send device uevents after sysfs population\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "372254018eb1b65ee69210d11686bfc65c8d84db",
      "tree": "d231099272446513886eeab80e94b8fb84881ed9",
      "parents": [
        "a14388904ca67197c9a531dba2358d8131697865"
      ],
      "author": {
        "name": "Ryan Wilson",
        "email": "hap9@epoch.ncsc.mil",
        "time": "Wed Mar 22 16:26:25 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 14 11:41:25 2006 -0700"
      },
      "message": "[PATCH] driver core: driver_bind attribute returns incorrect value\n\nThe manual driver \u003c-\u003e device binding attribute in sysfs doesn\u0027t return\nthe correct value on failure or success of driver_probe_device.\ndriver_probe_device returns 1 on success (the driver accepted the\ndevice) or 0 on probe failure (when the driver didn\u0027t accept the\ndevice but no real error occured). However, the attribute can\u0027t just\nreturn 0 or 1, it must return the number of bytes consumed from buf\nor an error value. Returning 0 indicates to userspace that nothing\nwas written (even though the kernel has tried to do the bind/probe and\nfailed). Returning 1 indicates that only one character was accepted in\nwhich case userspace will re-try the write with a partial string.\n\nA more correct version of driver_bind would return count (to indicate\nthe entire string was consumed) when driver_probe_device returns 1\nand -ENODEV when driver_probe_device returns 0. This patch makes that\nchange.\n\nSigned-off-by: Ryan Wilson \u003chap9@epoch.ncsc.mil\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": "2139bdd5b15a4cc450adb17da836f33c16477188",
      "tree": "16ef47b6bf3f0720fdda857ff66395b0c3634186",
      "parents": [
        "ce4b50f2fc62267eeaf331c41bc11b92d9bc7865"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@arm.linux.org.uk",
        "time": "Tue Feb 07 12:58:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:31 2006 -0800"
      },
      "message": "[PATCH] drivers/base/bus.c warning fixes\n\ndrivers/base/bus.c:166: warning: `driver_attr_unbind\u0027 defined but not used\ndrivers/base/bus.c:194: warning: `driver_attr_bind\u0027 defined but not used\n\nLooks like these two attributes and supporting functions want to be\n#ifdef HOTPLUG\u0027d\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\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": "874c6241b2e49e52680d32a50d4909c7768d5cb9",
      "tree": "815b08ab6793cd45346c3d5f6a3875f36c0bfc91",
      "parents": [
        "a96b204208443ab7e23c681f7ddabe807a741d0c"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Dec 13 15:17:34 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:09 2006 -0800"
      },
      "message": "[PATCH] Driver core: only all userspace bind/unbind if CONFIG_HOTPLUG is enabled\n\nThanks to drivers making their id tables __devinit, we can\u0027t allow\nuserspace to bind or unbind drivers from devices manually through sysfs.\nSo we only allow this if CONFIG_HOTPLUG is enabled.\n\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "bf74ad5bc41727d5f2f1c6bedb2c1fac394de731",
      "tree": "1e46f41550a9fe6df40fedeace23f5aff656b478",
      "parents": [
        "6d20b035dee4300e9786c6e1cb77a765c7f9460a"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Nov 17 16:54:12 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 04 16:18:08 2006 -0800"
      },
      "message": "[PATCH] Hold the device\u0027s parent\u0027s lock during probe and remove\n\nThis patch (as604) makes the driver core hold a device\u0027s parent\u0027s lock\nas well as the device\u0027s lock during calls to the probe and remove\nmethods in a driver.  This facility is needed by USB device drivers,\nowing to the peculiar way USB devices work:\n\n\tA device provides multiple interfaces, and drivers are bound\n\tto interfaces rather than to devices;\n\n\tNevertheless a reset, reset-configuration, suspend, or resume\n\taffects the entire device and requires the caller to hold the\n\tlock for the device, not just a lock for one of the interfaces.\n\nSince a USB driver\u0027s probe method is always called with the interface\nlock held, the locking order rules (always lock parent before child)\nprevent these methods from acquiring the device lock.  The solution\nprovided here is to call all probe and remove methods, for all devices\n(not just USB), with the parent lock already acquired.\n\nAlthough currently only the USB subsystem requires these changes, people\nhave mentioned in prior discussion that the overhead of acquiring an\nextra semaphore in all the prove/remove sequences is not overly large.\n\nUp to now, the USB core has been using its own set of private\nsemaphores.  A followup patch will remove them, relying entirely on the\ndevice semaphores provided by the driver core.\n\nThe code paths affected by this patch are:\n\n\tdevice_add and device_del: The USB core already holds the parent\n\tlock, so no actual change is needed.\n\n\tdriver_register and driver_unregister: The driver core will now\n\tlock both the parent and the device before probing or removing.\n\n\tdriver_bind and driver_unbind (in sysfs): These routines will\n\tnow lock both the parent and the device before binding or\n\tunbinding.\n\n\tbus_rescan_devices: The helper routine will lock the parent\n\tbefore probing a device.\n\nI have not tested this patch for conflicts with other subsystems.  As\nfar as I can see, the only possibility of conflict would lie in the\nbus_rescan_devices pathway, and it seems pretty remote.  Nevertheless,\nit would be good for this to get a lot of testing in -mm.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2b08c8d0468866f86da97f836c6ac14338cb81a9",
      "tree": "eca60a3b6811a825cd3642a666aa523a18fe484b",
      "parents": [
        "133747e8d1e912863edfb3869e36b97b9939d4fc"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Nov 23 15:43:50 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 23:03:06 2005 -0800"
      },
      "message": "[PATCH] Small fixes to driver core\n\nThis patch (as603) makes a few small fixes to the driver core:\n\nChange spin_lock_irq for a klist lock to spin_lock;\n\nFix reference count leaks;\n\nMinor spelling and formatting changes.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34bb61f9ddabd7a7f909cbfb05592eb775f6662a",
      "tree": "06232f6fc975bd279236fd8005c7d5528220ec68",
      "parents": [
        "df4edad1787bbfa3c9c10824e4f11e9f4a7ec5c6"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Sep 06 16:56:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 18:26:54 2005 -0700"
      },
      "message": "[PATCH] fix klist semantics for lists which have elements removed on traversal\n\nThe problem is that klists claim to provide semantics for safe traversal of\nlists which are being modified.  The failure case is when traversal of a\nlist causes element removal (a fairly common case).  The issue is that\nalthough the list node is refcounted, if it is embedded in an object (which\nis universally the case), then the object will be freed regardless of the\nklist refcount leading to slab corruption because the klist iterator refers\nto the prior element to get the next.\n\nThe solution is to make the klist take and release references to the\nembedding object meaning that the embedding object won\u0027t be released until\nthe list relinquishes the reference to it.\n\n(akpm: fast-track this because it\u0027s needed for the 2.6.13 scsi merge)\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d856f1e337782326c638c70c0b4df2b909350dec",
      "tree": "15c070e3909cbd260b2616001f0a6dde4a0c24fa",
      "parents": [
        "fef6ec8dd96205fb22e3cfe2e4abd69d89413631"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Fri Aug 19 09:14:01 2005 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 05 16:03:13 2005 -0700"
      },
      "message": "[PATCH] klist: fix klist to have the same klist_add semantics as list_head\n\nat the moment, the list_head semantics are\n\nlist_add(node, head)\n\nwhereas current klist semantics are\n\nklist_add(head, node)\n\nThis is bound to cause confusion, and since klist is the newcomer, it\nshould follow the list_head semantics.\n\nI also added missing include guards to klist.h\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d65da6eae10cc77f93ead0188cde0b45f124d912",
      "tree": "2494fac5df0711f16cd4d49cc25133ea9d99b5e7",
      "parents": [
        "67d2c36e901403bb97cb79ddb44d702c3284d0ba"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Aug 17 17:33:11 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 05 16:03:09 2005 -0700"
      },
      "message": "[PATCH] Fix manual binding infinite loop\n\nFix for manual binding of drivers to devices.  Problem is if you pass in\na valid device id, but the driver refuses to bind.  Infinite loop as\nwrite() tries to resubmit the data it just sent.\n\nThanks to Michal Ostrowski \u003cmostrows@watson.ibm.com\u003e for pointing the\nproblem out.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "518e6540831c69422faecceee8f964bd439ac9d0",
      "tree": "0b31e27c6007adac51c8e6e3a832badc1d8e2a1a",
      "parents": [
        "099d44e869f1886b5eb02a5145ca97b5e4142e28"
      ],
      "author": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Wed Aug 17 17:33:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Aug 17 22:02:25 2005 -0700"
      },
      "message": "[PATCH] Fix manual binding infinite loop\n\nFix for manual binding of drivers to devices.  Problem is if you pass in\na valid device id, but the driver refuses to bind.  Infinite loop as\nwrite() tries to resubmit the data it just sent.\n\nThanks to Michal Ostrowski \u003cmostrows@watson.ibm.com\u003e for pointing the\nproblem out.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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": "afdce75f1eaebcf358b7594ba7969aade105c3b0",
      "tree": "5374a0e85e03c8706a1dd95478b9d0a3312917e0",
      "parents": [
        "151ef38f7c0ec1b0420f04438b0316e3a30bf2e4"
      ],
      "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: Add the ability to bind drivers to devices from userspace\n\nThis adds a single file, \"bind\", to the sysfs directory of every driver\nregistered with the driver core.  To bind a device to a driver, write\nthe bus id of the device you wish to bind to that specific driver to the\n\"bind\" file (remember to not add a trailing \\n).  If that bus id matches\na device on that bus, and it does not currently have a driver bound to\nit, the probe sequence will be initiated with that driver and device.\n\nNote, this requires that the driver itself be willing and able to accept\nthat device (usually through a device id type table).  This patch does\nnot make it possible to override the driver\u0027s id table.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "151ef38f7c0ec1b0420f04438b0316e3a30bf2e4",
      "tree": "3aa6504e12c08f70cacb7f9de6ef5858b45ee86d",
      "parents": [
        "0edb586049e57c56e625536476931117a57671e9"
      ],
      "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: Add the ability to unbind drivers to devices from userspace\n\nThis adds a single file, \"unbind\", to the sysfs directory of every\ndevice that is currently bound to a driver.  To unbind the driver from\nthe device, write anything to this file and they will be disconnected\nfrom each other.\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": "d377e85b537a5e166272f937da6ba84350676b6e",
      "tree": "f3e5f347cbaa72a1479d991f7cab83228dd44bf0",
      "parents": [
        "479f6ea85e513551510ad52f37e69e1c596ad356"
      ],
      "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 22 23:01:10 2005 -0700"
      },
      "message": "[PATCH] driver core: Fix up the device_attach() error handling in bus_add_device()\n\nDon\u0027t error out if something \"bad\" happens when trying to bind a driver to a\ndevice.  We want the sysfs attributes to be present for later when we try to\ntear down the device.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ca2b94ba12f3c36fd3d6ed9d38b3798d4dad0d8b",
      "tree": "d9b85e0f423d1cd0a9ad1c72cec7464bcf50c126",
      "parents": [
        "acaefc25d21f850e47ecc5098d1e0bc442c526be"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed May 18 10:42:23 2005 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:31 2005 -0700"
      },
      "message": "[PATCH] driver core: fix error handling in bus_add_device\n\nThe error handling in bus_add_device() and device_attach() is simply\nnon-existing. This patch propagates any error from device_attach to\nthe upper layers to allow for a proper recovery.\n\nFrom: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6eded061b1263847aedac7469339e99579aec5e5",
      "tree": "849eadc1c02df67e2d327880ce2ecc20975a856f",
      "parents": [
        "d4a7537122fa47a6ce41c5fdab53d844c78d7023"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Thu Mar 24 13:02:28 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:18 2005 -0700"
      },
      "message": "[PATCH] Fix up bus code and remove use of rwsem.\n\n- Don\u0027t add devices to bus\u0027s embedded kset, since it\u0027s not used by anyone anymore.\n- Don\u0027t need to take the bus rwsem when calling {device,driver}_attach(), since\n  those functions use the klists and the klists\u0027 spinlocks.\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": "07e4a3e27fe414980ddc85a358e5a56abc48b363",
      "tree": "eb32858e7facf8b24a2f0fc2d4e829d6ee715c09",
      "parents": [
        "af70316af182f4716cc5eec7e0d27fc731d164bd"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 10:52:54 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:13 2005 -0700"
      },
      "message": "[PATCH] Move device/driver code to drivers/base/dd.c\n\nThis relocates the driver binding/unbinding code to drivers/base/dd.c. This is done\nfor two reasons: One, it\u0027s not code related to the bus_type itself; it uses some from\nthat, some from devices, and some from drivers. And Two, it will make it easier to do\nsome of the upcoming lock removal on that code..\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\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": "4a0c20bf8c0fe2116f8fd7d3da6122bf8a01f026",
      "tree": "48b6108a889f7cc007633c4d7d6f2c9fafe18082",
      "parents": [
        "c76d0abd07a9c9cf72bbb5b641e1e97f92ea8f3e"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Fri Apr 29 01:23:47 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:02 2005 -0700"
      },
      "message": "[PATCH] sysfs: (driver/base) if show/store is missing return -EIO\n\nsysfs: fix drivers/base so if an attribute doesn\u0027t implement\n       show or store method read/write will return -EIO\n       instead of 0.\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": "b2d84f078a8be40f5ae3b4d2ac001e2a7f45fe4f",
      "tree": "173f941991f1b68da820e9926a3b7ebdd3a2c8b9",
      "parents": [
        "177a4324944478f2799ce4ede2797cb0f602f274"
      ],
      "author": {
        "name": "Roman Kagan",
        "email": "rkagan@mail.ru",
        "time": "Wed Apr 13 21:40:17 2005 +0400"
      },
      "committer": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Wed May 04 23:44:38 2005 -0700"
      },
      "message": "[PATCH] drivers/base/bus.c: fix iteration in driver_detach()\n\nWith 2.6.11 and 2.6.12-rc2 (and perhaps a few versions before) usb\ndrivers for multi-interface devices, which do\nusb_driver_release_interface() in their disconnect(), make rmmod hang.\n\nIt turns out to be due to a bug in drivers/base/bus.c:driver_detach(),\nthat iterates over the list of attached devices with\nlist_for_each_safe() under an assumption that device_release_driver()\nonly releases the current device, while it may also call\ndevice_release_driver() for other devices on the same list.\n\nThe following patch fixes it.  Please consider applying.\n\nSigned-off-by: Roman Kagan \u003crkagan@mail.ru\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"
    }
  ]
}
