提交 06c3fd6a 编写于 作者: H Haavard Skinnemoen 提交者: David S. Miller

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: NHaavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: NJeff Garzik <jeff@garzik.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 e87ceea1
......@@ -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 @@ static int __devinit macb_probe(struct platform_device *pdev)
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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册