Skip to contentSkip to conversation

ahci_platform: Remove unneeded ahci_driver.probe assignment

PATCH Applied Anton Vorontsov 2 participants 2 messages Jun 25, 2010 – Jul 1, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ahci_platform: Remove unneeded ahci_driver.probe assignment

The driver is using platform_driver_probe() during initialization, so ahci_driver.probe hook is never used.

But it causes the following (harmless, luckily) section mismatch:

WARNING: vmlinux.o(.data+0x2fb20): Section mismatch in reference from the variable ahci_driver to the function .init.text:ahci_probe()

This patch removes the ahci_driver.probe assignment, thus fixes the warning.

p.s. Note that there's another patch[1] from Rene Bolldorf that tried to solve the same issue by __refdata annotation. __refdata says that this reference is actually OK, but in fact it is not OK, because dereferencing .probe() will cause problems. So the proper fix is to remove the assignment.

[1] http://kerneltrap.org/mailarchive/linux-kernel/2010/3/18/4549547

---
 drivers/ata/ahci_platform.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/ata/ahci_platform.c +0 -1
index 5e11b16..8070615 100644
@@ -166,7 +166,6 @@ static int __devexit ahci_remove(struct platform_device *pdev)
 }
 
 static struct platform_driver ahci_driver = {
-	.probe = ahci_probe,
 	.remove = __devexit_p(ahci_remove),
 	.driver = {
 		.name = "ahci",
Signature · 1 line
1.7.0.5
Applied
#1 lore raw
Quoted 17 lines · Anton Vorontsov

The driver is using platform_driver_probe() during initialization, so ahci_driver.probe hook is never used.

But it causes the following (harmless, luckily) section mismatch:

WARNING: vmlinux.o(.data+0x2fb20): Section mismatch in reference from the variable ahci_driver to the function .init.text:ahci_probe()

This patch removes the ahci_driver.probe assignment, thus fixes the warning.

p.s. Note that there's another patch[1] from Rene Bolldorf that tried to solve the same issue by __refdata annotation. __refdata says that this reference is actually OK, but in fact it is not OK, because dereferencing .probe() will cause problems. So the proper fix is to remove the assignment.

Quoted 6 lines

[1] http://kerneltrap.org/mailarchive/linux-kernel/2010/3/18/4549547

---
  drivers/ata/ahci_platform.c |    1 -
  1 files changed, 0 insertions(+), 1 deletions(-)

applied