powerpc/macio: Fix probing of macio devices by using the right of match table
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 2 Jun 2010 07:09:18 +0000 (17:09 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 2 Jun 2010 07:50:38 +0000 (17:50 +1000)
Grant patches added an of mach table to struct device_driver. However,
while he changed the macio device code to use that, he left the match
table pointer in struct macio_driver and didn't update drivers to use
the "new" one, thus breaking the probing.

This completes the change by moving all drivers to setup the "new"
one, removing all traces of the old one, and while at it (since it
changes the exact same locations), I also remove two other duplicates
from struct driver which are the name and owner fields.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
14 files changed:
arch/powerpc/include/asm/macio.h
drivers/ata/pata_macio.c
drivers/block/swim3.c
drivers/ide/pmac.c
drivers/macintosh/macio_asic.c
drivers/macintosh/mediabay.c
drivers/macintosh/rack-meter.c
drivers/net/bmac.c
drivers/net/mace.c
drivers/net/wireless/orinoco/airport.c
drivers/scsi/mac53c94.c
drivers/scsi/mesh.c
drivers/serial/pmac_zilog.c
sound/aoa/soundbus/i2sbus/core.c

index 19a661b4cb98205f6304c3c449062e6ca20e3c94..675e159b5ef42decbf2617870963547f07016870 100644 (file)
@@ -123,10 +123,6 @@ static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev)
  */
 struct macio_driver
 {
-       char                    *name;
-       struct of_device_id     *match_table;
-       struct module           *owner;
-
        int     (*probe)(struct macio_dev* dev, const struct of_device_id *match);
        int     (*remove)(struct macio_dev* dev);
 
index 76640ac76888ff88ae7a330423d6bf475149282a..75b49d01780bbf1933b59852abbca49d88fa29d5 100644 (file)
@@ -1355,8 +1355,11 @@ static struct of_device_id pata_macio_match[] =
 
 static struct macio_driver pata_macio_driver =
 {
-       .name           = "pata-macio",
-       .match_table    = pata_macio_match,
+       .driver = {
+               .name           = "pata-macio",
+               .owner          = THIS_MODULE,
+               .of_match_table = pata_macio_match,
+       },
        .probe          = pata_macio_attach,
        .remove         = pata_macio_detach,
 #ifdef CONFIG_PM
@@ -1366,9 +1369,6 @@ static struct macio_driver pata_macio_driver =
 #ifdef CONFIG_PMAC_MEDIABAY
        .mediabay_event = pata_macio_mb_event,
 #endif
-       .driver = {
-               .owner          = THIS_MODULE,
-       },
 };
 
 static const struct pci_device_id pata_macio_pci_match[] = {
index 52f2d11bc7b975e55c49881f42e49f5552fc4371..ed6fb91123abb67577f6f309f0171a6d7e0cb142 100644 (file)
@@ -1159,8 +1159,10 @@ static struct of_device_id swim3_match[] =
 
 static struct macio_driver swim3_driver =
 {
-       .name           = "swim3",
-       .match_table    = swim3_match,
+       .driver = {
+               .name           = "swim3",
+               .of_match_table = swim3_match,
+       },
        .probe          = swim3_attach,
 #if 0
        .suspend        = swim3_suspend,
index 183fa38760d85be4e520529c0747b6d88a614365..ebcf8e470a97b2685a1bf9b63b2e16c7a0b3b581 100644 (file)
@@ -1400,8 +1400,11 @@ static struct of_device_id pmac_ide_macio_match[] =
 
 static struct macio_driver pmac_ide_macio_driver = 
 {
-       .name           = "ide-pmac",
-       .match_table    = pmac_ide_macio_match,
+       .driver = {
+               .name           = "ide-pmac",
+               .owner          = THIS_MODULE,
+               .of_match_table = pmac_ide_macio_match,
+       },
        .probe          = pmac_ide_macio_attach,
        .suspend        = pmac_ide_macio_suspend,
        .resume         = pmac_ide_macio_resume,
index 40390ac01309b237af6c6bfc63d2b04a37546747..b6e7ddc09d76573eb0b423747bb613ce16599a7d 100644 (file)
@@ -526,7 +526,6 @@ static void macio_pci_add_devices(struct macio_chip *chip)
 int macio_register_driver(struct macio_driver *drv)
 {
        /* initialize common driver fields */
-       drv->driver.name = drv->name;
        drv->driver.bus = &macio_bus_type;
 
        /* register with core */
index 288acce76b74ec36d8324d2284439c9592cbd3c7..2fd435bc542e0db14a8488cbe97dc9380768dc72 100644 (file)
@@ -728,8 +728,10 @@ static struct of_device_id media_bay_match[] =
 
 static struct macio_driver media_bay_driver =
 {
-       .name           = "media-bay",
-       .match_table    = media_bay_match,
+       .driver = {
+               .name           = "media-bay",
+               .of_match_table = media_bay_match,
+       },
        .probe          = media_bay_attach,
        .suspend        = media_bay_suspend,
        .resume         = media_bay_resume
index 12946c5f583f53526654b58a41138595f0f0afc9..53cce3a5da2336b97fd94e0bd55123be2968adbf 100644 (file)
@@ -584,9 +584,11 @@ static struct of_device_id rackmeter_match[] = {
 };
 
 static struct macio_driver rackmeter_driver = {
-       .name = "rackmeter",
-       .owner = THIS_MODULE,
-       .match_table = rackmeter_match,
+       .driver = {
+               .name = "rackmeter",
+               .owner = THIS_MODULE,
+               .of_match_table = rackmeter_match,
+       },
        .probe = rackmeter_probe,
        .remove = __devexit_p(rackmeter_remove),
        .shutdown = rackmeter_shutdown,
index 39250b2ca886e9c7216ffcc956870c1320f85d0e..959add2410bf1787f8dff73ff786582be105831e 100644 (file)
@@ -1654,8 +1654,11 @@ MODULE_DEVICE_TABLE (of, bmac_match);
 
 static struct macio_driver bmac_driver =
 {
-       .name           = "bmac",
-       .match_table    = bmac_match,
+       .driver = {
+               .name           = "bmac",
+               .owner          = THIS_MODULE,
+               .of_match_table = bmac_match,
+       },
        .probe          = bmac_probe,
        .remove         = bmac_remove,
 #ifdef CONFIG_PM
index b6855a6476f8eaa3480135d65096c05b870ed101..1c5221f79d6faf3fdc055e728c9498f28e9f5d8d 100644 (file)
@@ -997,8 +997,11 @@ MODULE_DEVICE_TABLE (of, mace_match);
 
 static struct macio_driver mace_driver =
 {
-       .name           = "mace",
-       .match_table    = mace_match,
+       .driver = {
+               .name           = "mace",
+               .owner          = THIS_MODULE,
+               .of_match_table = mace_match,
+       },
        .probe          = mace_probe,
        .remove         = mace_remove,
 };
index 9bcee10c9308f861089843ccfe7c9b3009907e6d..4a0a0e5265c9bc068ee7116a240b5f8fa7560487 100644 (file)
@@ -239,8 +239,11 @@ static struct of_device_id airport_match[] =
 MODULE_DEVICE_TABLE(of, airport_match);
 
 static struct macio_driver airport_driver = {
-       .name           = DRIVER_NAME,
-       .match_table    = airport_match,
+       .driver = {
+               .name           = DRIVER_NAME,
+               .owner          = THIS_MODULE,
+               .of_match_table = airport_match,
+       },
        .probe          = airport_attach,
        .remove         = airport_detach,
        .suspend        = airport_suspend,
index 18735b39b3d39c8547e27b8037fbef033a0df76a..3ddb4dc62d5d5eed49ecc1a1228ddbdfbecd1f47 100644 (file)
@@ -542,8 +542,11 @@ MODULE_DEVICE_TABLE (of, mac53c94_match);
 
 static struct macio_driver mac53c94_driver = 
 {
-       .name           = "mac53c94",
-       .match_table    = mac53c94_match,
+       .driver = {
+               .name           = "mac53c94",
+               .owner          = THIS_MODULE,
+               .of_match_table = mac53c94_match,
+       },
        .probe          = mac53c94_probe,
        .remove         = mac53c94_remove,
 };
index a1c97e88068ae961ce3605ecfe1143f2c80af7b3..1f784fde25109b53ef86f2b79fd975ed5cc2bf38 100644 (file)
@@ -2036,8 +2036,11 @@ MODULE_DEVICE_TABLE (of, mesh_match);
 
 static struct macio_driver mesh_driver = 
 {
-       .name           = "mesh",
-       .match_table    = mesh_match,
+       .driver = {
+               .name           = "mesh",
+               .owner          = THIS_MODULE,
+               .of_match_table = mesh_match,
+       },
        .probe          = mesh_probe,
        .remove         = mesh_remove,
        .shutdown       = mesh_shutdown,
index cabbdc7ba5838bf62e1fa799a6ed2678eb650864..5b9cde79e4eaf5c3f686f7b056952e04b1eef027 100644 (file)
@@ -2005,8 +2005,11 @@ static struct of_device_id pmz_match[] =
 MODULE_DEVICE_TABLE (of, pmz_match);
 
 static struct macio_driver pmz_driver = {
-       .name           = "pmac_zilog",
-       .match_table    = pmz_match,
+       .driver = {
+               .name           = "pmac_zilog",
+               .owner          = THIS_MODULE,
+               .of_match_table = pmz_match,
+       },
        .probe          = pmz_attach,
        .remove         = pmz_detach,
        .suspend        = pmz_suspend,
index 67893372173581601fbcd5c71ca9c30cab0b5a7a..3ff8cc5f487a832c6620b656cb477797695c2f70 100644 (file)
@@ -437,9 +437,11 @@ static int i2sbus_shutdown(struct macio_dev* dev)
 }
 
 static struct macio_driver i2sbus_drv = {
-       .name = "soundbus-i2s",
-       .owner = THIS_MODULE,
-       .match_table = i2sbus_match,
+       .driver = {
+               .name = "soundbus-i2s",
+               .owner = THIS_MODULE,
+               .of_match_table = i2sbus_match,
+       },
        .probe = i2sbus_probe,
        .remove = i2sbus_remove,
 #ifdef CONFIG_PM