diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-01-31 13:10:22 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-03 04:26:00 -0800 |
commit | 06c3fd6ad546f7e6e996ca1fc2cddd9c7aee8176 (patch) | |
tree | 317f74d203f852960916734a2c25b02fcc21b843 /drivers/net/macb.c | |
parent | e87ceea13e84a0748487ed0f9ccbfbc646966339 (diff) | |
download | linux-06c3fd6ad546f7e6e996ca1fc2cddd9c7aee8176.tar.gz linux-06c3fd6ad546f7e6e996ca1fc2cddd9c7aee8176.tar.bz2 linux-06c3fd6ad546f7e6e996ca1fc2cddd9c7aee8176.zip |
macb: Fix section mismatch and shrink runtime footprint
macb devices are only found integrated on SoCs, so they can't be
hotplugged. Thus, the probe() and exit() functions can be __init and
__exit, respectively. By using platform_driver_probe() instead of
platform_driver_register(), there won't be any references to the
discarded probe() function after the driver has loaded.
This also fixes a section mismatch due to macb_probe(), defined as
__devinit, calling macb_get_hwaddr, defined as __init.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/macb.c')
-rw-r--r-- | drivers/net/macb.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/macb.c b/drivers/net/macb.c index e10528ed9081..81bf005ff280 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -1084,7 +1084,7 @@ static int macb_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) return phy_mii_ioctl(phydev, if_mii(rq), cmd); } -static int __devinit macb_probe(struct platform_device *pdev) +static int __init macb_probe(struct platform_device *pdev) { struct eth_platform_data *pdata; struct resource *regs; @@ -1248,7 +1248,7 @@ err_out: return err; } -static int __devexit macb_remove(struct platform_device *pdev) +static int __exit macb_remove(struct platform_device *pdev) { struct net_device *dev; struct macb *bp; @@ -1276,8 +1276,7 @@ static int __devexit macb_remove(struct platform_device *pdev) } static struct platform_driver macb_driver = { - .probe = macb_probe, - .remove = __devexit_p(macb_remove), + .remove = __exit_p(macb_remove), .driver = { .name = "macb", }, @@ -1285,7 +1284,7 @@ static struct platform_driver macb_driver = { static int __init macb_init(void) { - return platform_driver_register(&macb_driver); + return platform_driver_probe(&macb_driver, macb_probe); } static void __exit macb_exit(void) |