netdev
[Top] [All Lists]

Q: Using dev_queue_xmit to insert packets to a driver

To: <netdev@xxxxxxxxxxx>
Subject: Q: Using dev_queue_xmit to insert packets to a driver
From: Bas Vermeulen <bvermeul@xxxxxxxxxxxx>
Date: Wed, 2 May 2001 10:47:30 +0200 (CEST)
Sender: owner-netdev@xxxxxxxxxxx
Hi,

I'm writing a driver for a couple of PCMCIA Wireless ethernet drivers.
These cards have some quirks, one of them being that they are configured
with ethernet packages sent to the card. In order to do that, I use
dev_queue_xmit to insert packages into the cards queue.
This all works wonderfully well, except when I either bring the card down
and up, or when I use cardctl to change the scheme. When I do that, I only
have to wait a minute to have my box hang. I've made a stack trace with
SysRQ-P, and that points to qdisc_restart:

Apr 25 19:26:21 laptop kernel: EIP: 0010:[<ccbeaec67>] CPU: 0 EFLAGS: 00000216
Using defaults from ksymoops -t elf32-i386
Apr 25 19:26:21 laptop kernel: EAX: 00000020 EBX: 00000107 ECX: 00007fa0 EDX: 
00000107
Apr 25 19:26:21 laptop kernel: ESI: 00000107 EDI: 00007f96 EBP: c4528000 DS: 
0018 ES: 0018
Apr 25 19:26:21 laptop kernel: CR0: 8005003b CR2: 40015000 CR3: 03d63000 CR4: 
00000690
Apr 25 19:26:21 laptop kernel: Call Trace: [<c011a217>] [<c011a417>] 
[<c022e60e>] [<c92287f7>] [<c01171ae>] [<c011141c>] [<c02287f7>] [<c01171ae>] 
[<c0106ba5>]
Warning (Oops_read): Code line not seen, dumping what data is available

>>EIP; 0000000ccbeaec67 <END_OF_CODE+bff2cc1e4/????>   <=====
Trace; c011a217 <update_wall_time+b/3c>
Trace; c011a417 <timer_bh+27/258>
Trace; c022e60e <qdisc_restart+4e/c8>
Trace; c92287f7 <_end+8eb468b/c834e94>
Trace; c01171ae <do_softirq+4e/74>
Trace; c011141c <schedule+38c/41c>
Trace; c02287f7 <net_tx_action+83/a0>
Trace; c01171ae <do_softirq+4e/74>
Trace; c0106ba5 <reschedule+5/c>

I've been able to narrow it down to my use of dev_queue_xmit in my device
event handler.

Anyways, if any of you can give me hints/tips/DON'T DO THAT's/do it this
ways, I'd be very gratefull. The device driver can be found at
http://www.xs4all.nl/~bvermeul/swallow

Regards, and thanks in advance,

Bas Vermeulen


<Prev in Thread] Current Thread [Next in Thread>
  • Q: Using dev_queue_xmit to insert packets to a driver, Bas Vermeulen <=