Re: Debian kernel 2.6.38-5

Christian T. Steigies
2011-05-09T20:24:38Z

On Mon, May 09, 2011 at 09:16:16AM +0200, Geert Uytterhoeven wrote:
> On Mon, May 9, 2011 at 01:14, Finn Thain <fthain@telegraphics.com.au> wrote:
> > On Sun, 8 May 2011, Christian T. Steigies wrote:
> >> PS 2.6.28 did not boot: kernel too old. When was TLS introduced? I'll try to
> >> apply the patch you mentioned in your other message.
> >
> > I sometimes test network cards with busybox. It can be built without
> > linking in glibc and doesn't need TLS.
> >
> >
> >> [  130.870000] eth0: trigger_send() called with the transmitter busy.
> >> [  132.240000] ------------[ cut here ]------------
> >> [  132.240000] WARNING: at net/sched/sch_generic.c:256 dev_watchdog+0x1ac/0x1cc()
> >> [  132.250000] NETDEV WATCHDOG: eth0 (): transmit queue 0 timed out
> >
> > Looks a lot like this problem:
> >
> > http://patchwork.ozlabs.org/patch/27774/
>
> Yeah, that's a very likely culprit. Thx!

I applied the following patch and it works! apt-get update that is, there is
no sshd on this freshly installed system yet...

I also changed this line to have 4 underscores at the beginning:

{ 0xec940559, "____alloc_ei_netdev" },

it does not show up in git diff, so I am not sure if this is a leftover from
a previous checkout, or if it is also needed. And if it is needed, if it
should be two underscores or four or none, and if so why or why not...
Looking at the other drivers, there does not seem to be a lot of consistency?

thanks Finn!
Christian

diff --git a/drivers/net/zorro8390.c b/drivers/net/zorro8390.c
index b78a38d9..8c7c522 100644
--- a/drivers/net/zorro8390.c
+++ b/drivers/net/zorro8390.c
@@ -126,7 +126,7 @@ static int __devinit zorro8390_init_one(struct zorro_dev *z,

board = z->resource.start;
ioaddr = board+cards[i].offset;
- dev = alloc_ei_netdev();
+ dev = ____alloc_ei_netdev(0);
if (!dev)
return -ENOMEM;
if (!request_mem_region(ioaddr, NE_IO_EXTENT*2, DRV_NAME)) {
@@ -146,15 +146,15 @@ static int __devinit zorro8390_init_one(struct zorro_dev *z,
static const struct net_device_ops zorro8390_netdev_ops = {
.ndo_open = zorro8390_open,
.ndo_stop = zorro8390_close,
- .ndo_start_xmit = ei_start_xmit,
- .ndo_tx_timeout = ei_tx_timeout,
- .ndo_get_stats = ei_get_stats,
- .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_start_xmit = __ei_start_xmit,
+ .ndo_tx_timeout = __ei_tx_timeout,
+ .ndo_get_stats = __ei_get_stats,
+ .ndo_set_multicast_list = __ei_set_multicast_list,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = eth_mac_addr,
.ndo_change_mtu = eth_change_mtu,
#ifdef CONFIG_NET_POLL_CONTROLLER
- .ndo_poll_controller = ei_poll,
+ .ndo_poll_controller = __ei_poll,
#endif
};