Modify

Opened 9 years ago

Closed 4 years ago

#2559 closed defect (invalid)

AR7: acx-mac80211 driver often hangs on insmod

Reported by: Wodin Owned by: developers
Priority: normal Milestone:
Component: packages Version:
Keywords: Cc:

Description

TI AR7 (TNETD7200) with a TNETW1350A wireless chip running Kamikaze (/trunk) r9339.

The following:

root@OpenWrt:~# while :; do insmod acx; rmmod acx; done

seems to work OK without causing the device to hang. (I only let it run for a short while.)

However, doing the same with the acx-mac80211 driver hangs the box reliably.

root@OpenWrt:~# COUNT=1; while :; do echo $COUNT; insmod acx-mac80211; rmmod acx-mac80211; COUNT=$((COUNT+1)); done
1
root@OpenWrt:~# COUNT=1; while :; do echo $COUNT; insmod acx-mac80211; rmmod acx-mac80211; COUNT=$((COUNT+1)); done
1
root@OpenWrt:~# COUNT=1; while :; do echo $COUNT; insmod acx-mac80211; rmmod acx-mac80211; COUNT=$((COUNT+1)); done
1
2
3
4
root@OpenWrt:~# COUNT=1; while :; do echo $COUNT; insmod acx-mac80211; rmmod acx-mac80211; COUNT=$((COUNT+1)); done
1
2
3
4
5
6
7

This is what is printed on the serial console when the module is inserted:

acx: this driver is still EXPERIMENTAL
acx: reading README file and/or Craig's HOWTO is recommended, visit http://acx100.sourceforge.net/wiki in case of further questions/discussion
acx: compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them
acx: running on a little-endian CPU
acx: PCI/VLYNQ module v0.3.36-mac80211 initialized, waiting for cards to probe...

Also, neither the acx, nor the acx-mac80211 driver ever seems to find the card, but I think that's a separate issue.

Attachments (0)

Change History (12)

comment:1 Changed 9 years ago by nabcore

I'm not seeing any issues here: r9337 Netgear DG834G v2

root@Bunny:~# COUNT=1; while :; do echo $COUNT; insmod acx-mac80211; rmmod acx-mac80211; COUNT=$((COUNT+1)); done
1
2
.
<snip>
.
41
ad-infinitum

comment:2 Changed 9 years ago by Wodin

For acx.ko I got up to 90358 before pressing Ctrl-C, but acx-mac80211 kills it very reliably. :(

Of course it seems that TNETW1350A is not supported by the acx driver anyway, or at least there's no mention in the source of that version of the chip.

comment:3 Changed 8 years ago by Wodin

vlynq.c:vlynq_device_match() loops through the devices on the bus. For each one it calls __vlynq_enable_device(). For the first one it always returns -ENODEV. For the second one (which I believe is the TNETW1350A) it sometimes returns -ENODEV and sometimes returns 0.

When __vlynq_enable_device() returns -ENODEV, the acx-mac80211.ko module is inserted without error and the router is happy (except that wireless doesn't work, of course.)

When __vlynq_enable_device() returns 0, the router hangs at this point:

                        id = vlynq_reg_read(vdev->remote->chip);

comment:4 Changed 8 years ago by Wodin

I don't know where I was looking when I posted the comment on 10/17/07 18:32:39, because of course the acx code does mention TNETW1350. (Just not TNETW1350A.)

comment:5 Changed 8 years ago by nabcore

Are you still seeing this with recent trunk?

comment:6 Changed 8 years ago by Wodin

I didn't notice anything in the SVN changelogs that would obviously fix this, so I haven't tried again. I will try again soon.

comment:7 Changed 8 years ago by Wodin

I've just tried again with r10170. The router still hangs solid and needs a power cycle when I insmod acx-mac80211.

It seems that if I put printks in the right places, the whole process slows down enough so that __vlynq_enable_device() returns -ENODEV and the router does not hang. Also, if I ping flood the router via ethernet while it is running the insmod, it is less likely to hang.

i.e. when something is slowing the router down it can't find the device and does not crash. When it does find the device, it hangs and needs to be power cycled.

Now that kmod-acx has been updated to support VLYNQ it seems to be suffering from the same problem. i.e. if I try to insmod it, the router hangs.

I don't know if I just haven't tried enough times now, but it seems to hang the first time through the insmod/rmmod loop now, unless I am flooding the router at the same time. Before it sometimes got through the loop several times before hanging.

comment:8 Changed 8 years ago by Wodin

I see acx was updated in r10178 so I compiled r10189 and tested it with acx.ko and acx-mac80211.ko.

The symptoms are the same. The router hangs when either of those modules is inserted (unless I ping-flood it at the same time, in which case the driver does not detect the wireless card anyway.)

comment:9 Changed 8 years ago by Wodin

nabcode asked for the debug output, so here it is:

acx: this driver is still EXPERIMENTAL
acx: reading README file and/or Craig's HOWTO is recommended, visit http://acx100.sourceforge.net/wiki in case of further questions/discussion
94942048 ==> acxpci_e_init_module
acx: compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them
acx: running on a little-endian CPU
acx: PCI/VLYNQ module v0.3.36-mac80211 initialized, waiting for cards to probe...
acx: DEBUG: before vlynq_register_driver()

This has printk()s added before and after the call to vlynq_register_driver(), so you can see it doesn't return from that function.

comment:10 Changed 7 years ago by florian

  • Resolution set to fixed
  • Status changed from new to closed

I am closing the ticket since the driver evolved a lot since then.

comment:11 Changed 4 years ago by anonymous

  • Resolution fixed deleted
  • Status changed from closed to reopened

still driver does not detect the tnetv1350a wifi on the latest trunk....

[code]
acx: this driver is still EXPERIMENTAL
acx: reading README file and/or Craig's HOWTO is recommended, visit http://acx100.sf.net in case of further questions/discussion
acx: compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them
acx: running on a little-endian CPU
acx: PCI/VLYNQ module v0.3.37 initialized, waiting for cards to probe...
Driver found for VLYNQ device: 00000029
acx: found TI TNETW1350-based wireless network card at vlynq0, irq:80, phymem:0x4000000, mem:0xa4000000
code

there is no interface being created

comment:12 Changed 4 years ago by florian

  • Resolution set to invalid
  • Status changed from reopened to closed

Which has nothing to do the issue originaly reported, so open up a new ticket for this please.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.