diff options
Diffstat (limited to 'drivers/staging/vme/vme.c')
-rw-r--r-- | drivers/staging/vme/vme.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/staging/vme/vme.c b/drivers/staging/vme/vme.c index 8ee11925b19..d6ad12e3cb5 100644 --- a/drivers/staging/vme/vme.c +++ b/drivers/staging/vme/vme.c @@ -1302,9 +1302,17 @@ static int vme_bus_match(struct device *dev, struct device_driver *drv) while((driver->bind_table[i].bus != 0) || (driver->bind_table[i].slot != 0)) { - if ((bridge->num == driver->bind_table[i].bus) && - (num == driver->bind_table[i].slot)) - return 1; + if (bridge->num == driver->bind_table[i].bus) { + if (num == driver->bind_table[i].slot) + return 1; + + if (driver->bind_table[i].slot == VME_SLOT_ALL) + return 1; + + if ((driver->bind_table[i].slot == VME_SLOT_CURRENT) && + (num == vme_slot_get(dev))) + return 1; + } i++; } |