ATA/IDE: fix platform driver hotplug/coldplug
PATCH 1/2 ATA/IDE: fix platform driver hotplug/coldplug
From: Kay Sievers <[email protected]>
Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable ATA and IDE platform drivers, to re-enable auto loading.
NOTE: both ata/pata_platform.c and ide/legacy/ide_platform.c claim to provide "the" platform_pata driver, and there's no build-time mutual exclusion mechanism. This means that configs which enable both drivers will make some trouble when hotplugging...
---
drivers/ata/pata_at32.c | 3 +++ drivers/ata/pata_bf54x.c | 1 + drivers/ata/pata_ixp4xx_cf.c | 1 + drivers/ata/pata_platform.c | 1 + drivers/ata/pata_rb500_cf.c | 3 +++ drivers/ata/sata_mv.c | 2 +- drivers/ide/arm/palm_bk3710.c | 4 ++++ drivers/ide/legacy/ide_platform.c | 2 ++ 8 files changed, 16 insertions(+), 1 deletion(-)
drivers/ata/pata_at32.c renamed from drivers/ata/pata_at32.c~ata-ide-fix-platform-driver-hotplug-coldplug +3 -0
@@ -381,6 +381,9 @@ static int __exit pata_at32_remove(strucreturn 0 ; } +/* work with hotplug and coldplug */ +MODULE_ALIAS ("platform:at32_ide" ); +static struct platform_driver pata_at32_driver = { .remove =__exit_p (pata_at32_remove), .driver = {
drivers/ata/pata_bf54x.c renamed from drivers/ata/pata_bf54x.c~ata-ide-fix-platform-driver-hotplug-coldplug +1 -0
@@ -1601,3 +1601,4 @@ MODULE_AUTHOR("Sonic Zhang <sonic.zhang@MODULE_DESCRIPTION ("PATA driver for blackfin 54x ATAPI controller" );MODULE_LICENSE ("GPL" );MODULE_VERSION (DRV_VERSION ); +MODULE_ALIAS ("platform:" DRV_NAME );
drivers/ata/pata_ixp4xx_cf.c renamed from drivers/ata/pata_ixp4xx_cf.c~ata-ide-fix-platform-driver-hotplug-coldplug +1 -0
@@ -221,6 +221,7 @@ MODULE_AUTHOR("Alessandro Zummo <a.zummoMODULE_DESCRIPTION ("low-level driver for ixp4xx Compact Flash PATA" );MODULE_LICENSE ("GPL" );MODULE_VERSION (DRV_VERSION ); +MODULE_ALIAS ("platform:" DRV_NAME );module_init (ixp4xx_pata_init);module_exit (ixp4xx_pata_exit);
drivers/ata/pata_platform.c renamed from drivers/ata/pata_platform.c~ata-ide-fix-platform-driver-hotplug-coldplug +1 -0
@@ -277,3 +277,4 @@ MODULE_AUTHOR("Paul Mundt");MODULE_DESCRIPTION ("low-level driver for platform device ATA" );MODULE_LICENSE ("GPL" );MODULE_VERSION (DRV_VERSION ); +MODULE_ALIAS ("platform:" DRV_NAME );
drivers/ata/pata_rb500_cf.c renamed from drivers/ata/pata_rb500_cf.c~ata-ide-fix-platform-driver-hotplug-coldplug +3 -0
@@ -239,6 +239,9 @@ static __devexit int rb500_pata_driver_rreturn 0 ; } +/* work with hotplug and coldplug */ +MODULE_ALIAS ("platform:" DRV_NAME ); +static struct platform_driver rb500_pata_platform_driver = { .probe = rb500_pata_driver_probe, .remove =__devexit_p (rb500_pata_driver_remove),
drivers/ata/sata_mv.c renamed from drivers/ata/sata_mv.c~ata-ide-fix-platform-driver-hotplug-coldplug +1 -1
@@ -3122,7 +3122,7 @@ MODULE_DESCRIPTION("SCSI low-level driveMODULE_LICENSE ("GPL" );MODULE_DEVICE_TABLE (pci, mv_pci_tbl);MODULE_VERSION (DRV_VERSION ); -MODULE_ALIAS ("platform:sata_mv" ); +MODULE_ALIAS ("platform:" DRV_NAME );#ifdef CONFIG_PCI module_param (msi, int,0444 );
drivers/ide/arm/palm_bk3710.c renamed from drivers/ide/arm/palm_bk3710.c~ata-ide-fix-platform-driver-hotplug-coldplug +4 -0
@@ -409,9 +409,13 @@ out:return -ENODEV ; } +/* work with hotplug and coldplug */ +MODULE_ALIAS ("platform:palm_bk3710" ); +static struct platform_driver platform_bk_driver = { .driver = { .name ="palm_bk3710" , + .owner =THIS_MODULE , }, .probe = palm_bk3710_probe, .remove =NULL ,
drivers/ide/legacy/ide_platform.c renamed from drivers/ide/legacy/ide_platform.c~ata-ide-fix-platform-driver-hotplug-coldplug +2 -0
@@ -130,6 +130,7 @@ static int __devexit plat_ide_remove(strstatic struct platform_driver platform_ide_driver = { .driver = { .name ="pata_platform" , + .owner =THIS_MODULE , }, .probe = plat_ide_probe, .remove =__devexit_p (plat_ide_remove),
@@ -147,6 +148,7 @@ static void __exit platform_ide_exit(voiMODULE_DESCRIPTION ("Platform IDE driver" );MODULE_LICENSE ("GPL" ); +MODULE_ALIAS ("platform:pata_platform" );module_init (platform_ide_init);module_exit (platform_ide_exit);
_
Jeff Garzik
AppliedQuoted 124 lines · [email protected] wrote:
From: Kay Sievers <[email protected]>
Since
43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". AddMODULE_ALIAS()to the hotpluggable ATA and IDE platform drivers, to re-enable auto loading.NOTE: both
ata/pata_platform.candide/legacy/ide_platform.cclaim to provide "the"platform_patadriver, and there's no build-time mutual exclusion mechanism. This means that configs which enable both drivers will make some trouble when hotplugging...[[email protected]: more drivers, registration fixes]Signed-off-by Kay Sievers <[email protected]>Signed-off-by David Brownell <[email protected]>Cc Jeff Garzik <[email protected]>Cc Tejun Heo <[email protected]>Signed-off-by Andrew Morton <[email protected]>---
drivers/ata/pata_at32.c | 3 +++ drivers/ata/pata_bf54x.c | 1 + drivers/ata/pata_ixp4xx_cf.c | 1 + drivers/ata/pata_platform.c | 1 + drivers/ata/pata_rb500_cf.c | 3 +++ drivers/ata/sata_mv.c | 2 +- drivers/ide/arm/palm_bk3710.c | 4 ++++ drivers/ide/legacy/ide_platform.c | 2 ++ 8 files changed, 16 insertions(+), 1 deletion(-)diff -puN
drivers/ata/pata_at32.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ata/pata_at32.cdrivers/ata/pata_at32.c renamed from drivers/ata/pata_at32.c~ata-ide-fix-platform-driver-hotplug-coldplug +3
-0@@ -381,6 +381,9 @@ static int __exit pata_at32_remove(strucreturn 0 ; } +/* work with hotplug and coldplug */ +MODULE_ALIAS ("platform:at32_ide" ); +static struct platform_driver pata_at32_driver = { .remove =__exit_p (pata_at32_remove), .driver = {diff -puN
drivers/ata/pata_bf54x.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ata/pata_bf54x.cdrivers/ata/pata_bf54x.c renamed from drivers/ata/pata_bf54x.c~ata-ide-fix-platform-driver-hotplug-coldplug +1
-0@@ -1601,3 +1601,4 @@ MODULE_AUTHOR("Sonic Zhang <sonic.zhang@MODULE_DESCRIPTION ("PATA driver for blackfin 54x ATAPI controller" );MODULE_LICENSE ("GPL" );MODULE_VERSION (DRV_VERSION ); +MODULE_ALIAS ("platform:" DRV_NAME );diff -puN
drivers/ata/pata_ixp4xx_cf.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ata/pata_ixp4xx_cf.cdrivers/ata/pata_ixp4xx_cf.c renamed from drivers/ata/pata_ixp4xx_cf.c~ata-ide-fix-platform-driver-hotplug-coldplug +1
-0@@ -221,6 +221,7 @@ MODULE_AUTHOR("Alessandro Zummo <a.zummoMODULE_DESCRIPTION ("low-level driver for ixp4xx Compact Flash PATA" );MODULE_LICENSE ("GPL" );MODULE_VERSION (DRV_VERSION ); +MODULE_ALIAS ("platform:" DRV_NAME );module_init (ixp4xx_pata_init);module_exit (ixp4xx_pata_exit);diff -puN
drivers/ata/pata_platform.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ata/pata_platform.cdrivers/ata/pata_platform.c renamed from drivers/ata/pata_platform.c~ata-ide-fix-platform-driver-hotplug-coldplug +1
-0@@ -277,3 +277,4 @@ MODULE_AUTHOR("Paul Mundt");MODULE_DESCRIPTION ("low-level driver for platform device ATA" );MODULE_LICENSE ("GPL" );MODULE_VERSION (DRV_VERSION ); +MODULE_ALIAS ("platform:" DRV_NAME );diff -puN
drivers/ata/pata_rb500_cf.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ata/pata_rb500_cf.cdrivers/ata/pata_rb500_cf.c renamed from drivers/ata/pata_rb500_cf.c~ata-ide-fix-platform-driver-hotplug-coldplug +3
-0@@ -239,6 +239,9 @@ static __devexit int rb500_pata_driver_rreturn 0 ; } +/* work with hotplug and coldplug */ +MODULE_ALIAS ("platform:" DRV_NAME ); +static struct platform_driver rb500_pata_platform_driver = { .probe = rb500_pata_driver_probe, .remove =__devexit_p (rb500_pata_driver_remove),diff -puN
drivers/ata/sata_mv.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ata/sata_mv.cdrivers/ata/sata_mv.c renamed from drivers/ata/sata_mv.c~ata-ide-fix-platform-driver-hotplug-coldplug +1
-1@@ -3122,7 +3122,7 @@ MODULE_DESCRIPTION("SCSI low-level driveMODULE_LICENSE ("GPL" );MODULE_DEVICE_TABLE (pci, mv_pci_tbl);MODULE_VERSION (DRV_VERSION ); -MODULE_ALIAS ("platform:sata_mv" ); +MODULE_ALIAS ("platform:" DRV_NAME );#ifdef CONFIG_PCI module_param (msi, int,0444 );diff -puN
drivers/ide/arm/palm_bk3710.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ide/arm/palm_bk3710.cdrivers/ide/arm/palm_bk3710.c renamed from drivers/ide/arm/palm_bk3710.c~ata-ide-fix-platform-driver-hotplug-coldplug +4
-0@@ -409,9 +409,13 @@ out:return -ENODEV ; } +/* work with hotplug and coldplug */ +MODULE_ALIAS ("platform:palm_bk3710" ); +static struct platform_driver platform_bk_driver = { .driver = { .name ="palm_bk3710" , + .owner =THIS_MODULE , }, .probe = palm_bk3710_probe, .remove =NULL ,diff -puN
drivers/ide/legacy/ide_platform.c~ata-ide-fix-platform-driver-hotplug-coldplugdrivers/ide/legacy/ide_platform.cdrivers/ide/legacy/ide_platform.c renamed from drivers/ide/legacy/ide_platform.c~ata-ide-fix-platform-driver-hotplug-coldplug +1
-0@@ -130,6 +130,7 @@ static int __devexit plat_ide_remove(strstatic struct platform_driver platform_ide_driver = { .driver = { .name ="pata_platform" , + .owner =THIS_MODULE , }, .probe = plat_ide_probe, .remove =__devexit_p (plat_ide_remove),
drivers/ide/legacy/ide_platform.c static void __exit platform_ide_exit(voi · line 154
Quoted 7 lines
drivers/ide/legacy/ide_platform.c renamed from drivers/ide/legacy/ide_platform.c~ata-ide-fix-platform-driver-hotplug-coldplug +1
-0@@ -147,6 +148,7 @@ static void __exit platform_ide_exit(voiMODULE_DESCRIPTION ("Platform IDE driver" );MODULE_LICENSE ("GPL" ); +MODULE_ALIAS ("platform:pata_platform" );module_init (platform_ide_init);module_exit (platform_ide_exit);
applied