device model: Do a quickcheck for driver binding before doing an expensive check
[safe/jmp/linux-2.6] / drivers / base / dd.c
index 3ac443b..20febc0 100644 (file)
@@ -257,6 +257,9 @@ static int __driver_attach(struct device *dev, void *data)
         * is an error.
         */
 
+       if (drv->bus->match && !drv->bus->match(dev, drv))
+               return 0;
+
        if (dev->parent)        /* Needed for USB */
                down(&dev->parent->sem);
        down(&dev->sem);