[Bridge] Re: oops with recent wireless-dev tree
Stephen Hemminger
shemminger at linux-foundation.org
Thu Aug 30 07:49:49 PDT 2007
On Thu, 30 Aug 2007 14:05:30 +0200
Johannes Berg <johannes at sipsolutions.net> wrote:
> Hi Jochen,
>
> [added CCs since it affects bridge code]
>
> > If I read this correctly, the EIP in the last line corresponds to
> > net/bridge/br_if.c, line 36:
> >
> > static int port_cost(struct net_device *dev)
> > {
> > if (dev->ethtool_ops->get_settings) {
> > ^^^^
> >
> > As far as I can figure out, dev->ethtool_ops is NULL and the crash
> > happens while trying to derefernce ...->get_settings.
> >
> > Is dev->ethtool_ops allowed to be NULL? In this case the appended
> > patch might be the correct fix. At least it makes the oops disappear
> > for me. Another possible fix would be to add an ethtool_ops structure
> > to the device created by b43.
>
> I don't think adding ethtool_ops in mac80211 should be necessary.
> Stephen?
Devices aren't required to have ethtool_ops. The code there used to
call ethtool directly, and it would handle the error cases. I'll rollup
a fix this morning.
The bug was introduced by this:
commit 61a44b9c4b20d40c41fd1b70a4ceb13b75ea79a4
Author: Matthew Wilcox <matthew at wil.cx>
Date: Tue Jul 31 14:00:02 2007 -0700
[NET]: ethtool ops are the only way
During the transition to the ethtool_ops way of doing things, we supported
calling the device's ->do_ioctl method to allow unconverted drivers to
continue working. Those days are long behind us, all in-tree drivers
use the ethtool_ops way, and so we no longer need to support this.
The bonding driver is the biggest beneficiary of this; it no longer
needs to call ioctl() as a fallback if ethtool_ops aren't supported.
Also put a proper copyright statement on ethtool.c.
Signed-off-by: Matthew Wilcox <matthew at wil.cx>
Signed-off-by: David S. Miller <davem at davemloft.net>
--
Stephen Hemminger <shemminger at linux-foundation.org>
More information about the Bridge
mailing list