The macb driver hasn't been updated to use net_device_ops and as such
should select COMPAT_NET_DEV_OPS to avoid build breakage.
Of course really macb should be updated but in the mean time, this at
least avoid randconfig problems.
Signed-off-by: Ben Nizette <[email protected]>
---
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 9e7baec..dfe1254 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -221,6 +221,7 @@ config MACB
tristate "Atmel MACB support"
depends on AVR32 || ARCH_AT91SAM9260 || ARCH_AT91SAM9263 || ARCH_AT91SAM9G20 || ARCH_AT91CAP9
select PHYLIB
+ select COMPAT_NET_DEV_OPS
help
The Atmel MACB ethernet interface is found on many AT32 and AT91
parts. Say Y to include support for the MACB chip.
Ben Nizette wrote:
>
> The macb driver hasn't been updated to use net_device_ops and as such
> should select COMPAT_NET_DEV_OPS to avoid build breakage.
Hmmm...no other drivers do that...
> Of course really macb should be updated but in the mean time, this at
> least avoid randconfig problems.
It doesn't look all that difficult. Could you try the below instead?
Haavard
=============[cut here]=====================
From: Haavard Skinnemoen <[email protected]>
Date: Fri, 17 Apr 2009 09:43:14 +0200
Subject: [PATCH] macb: convert to net_device_ops
Signed-off-by: Haavard Skinnemoen <[email protected]>
---
drivers/net/macb.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index d473540..5656e02 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -1084,6 +1084,18 @@ static int macb_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
return phy_mii_ioctl(phydev, if_mii(rq), cmd);
}
+static const struct net_device_ops macb_netdev_ops = {
+ .ndo_open = macb_open,
+ .ndo_stop = macb_close,
+ .ndo_start_xmit = macb_start_xmit,
+ .ndo_get_stats = macb_get_stats,
+ .ndo_set_multicast_list = macb_set_rx_mode,
+ .ndo_do_ioctl = macb_ioctl,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+ .ndo_set_mac_address = eth_mac_addr,
+};
+
static int __init macb_probe(struct platform_device *pdev)
{
struct eth_platform_data *pdata;
@@ -1159,12 +1171,7 @@ static int __init macb_probe(struct platform_device *pdev)
goto err_out_iounmap;
}
- dev->open = macb_open;
- dev->stop = macb_close;
- dev->hard_start_xmit = macb_start_xmit;
- dev->get_stats = macb_get_stats;
- dev->set_multicast_list = macb_set_rx_mode;
- dev->do_ioctl = macb_ioctl;
+ dev->netdev_ops = &macb_netdev_ops;
netif_napi_add(dev, &bp->napi, macb_poll, 64);
dev->ethtool_ops = &macb_ethtool_ops;
--
1.6.0.4
From: Ben Nizette <[email protected]>
Date: Fri, 17 Apr 2009 17:24:05 +1000
> The macb driver hasn't been updated to use net_device_ops and as such
> should select COMPAT_NET_DEV_OPS to avoid build breakage.
>
> Of course really macb should be updated but in the mean time, this at
> least avoid randconfig problems.
>
> Signed-off-by: Ben Nizette <[email protected]>
There's about 26 drivers that fall into this category, it's senseless
to pepper the tree over with this kind of annotation that we'll just
release come next release.
We do have enough drivers converted that powerpc, sparc64, and x86
allmodconfig and allyesconfig builds pass even with the compat option
disabled.
And I think the others can just cope with this for now.
Actually, in the net-next-2.6 tree this driver has in fact been
converted :-)
Haavard Skinnemoen wrote:
> > Of course really macb should be updated but in the mean time, this at
> > least avoid randconfig problems.
>
> It doesn't look all that difficult. Could you try the below instead?
Better yet, try this one:
http://patchwork.ozlabs.org/patch/25861/
which is the one that has been applied to -next.
Haavard
On Fri, 2009-04-17 at 00:54 -0700, David Miller wrote:
> Actually, in the net-next-2.6 tree this driver has in fact been
> converted :-)
Ah trufax, thx.
--Ben.