HAL changes wireless interface (net.80211) to wired (net.80203) in info.category after suspend

Bug #55809 reported by Constantine Evans
6
Affects Status Importance Assigned to Milestone
hal (Ubuntu)
Invalid
Undecided
Unassigned
network-manager (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

On a Dell D600 running Edgy with an Intel 2200BG, HAL changes the information published on the network device after coming out of suspend. Instead of listing it as a wireless device, it changes info.category and info.capabilities to advertise it as net.80203.

Network Manager thus detects the card as a wired interface instead of a wireless interface after suspending (everything is fine before suspending). It then goes on to claim that it is connected to a wired connection, but it does not actually configure the interface correctly, since it is using ZeroConf.

Revision history for this message
Constantine Evans (cevans) wrote :

Confirming, as others have reported this as well.

Changed in network-manager:
status: Unconfirmed → Confirmed
Revision history for this message
Constantine Evans (cevans) wrote :

This actually appears to be a bug in hal - I'll move it as soon as I get more information on it. Hal seems to be changing the information it publishes after a suspend. Restarting hal fixes the problem.

I'm attaching the NM log. Search for "Going to sleep" to find point where suspend occurs.

Revision history for this message
Constantine Evans (cevans) wrote :

rejecting - this is a hal bug. oops.

description: updated
Changed in network-manager:
status: Confirmed → Rejected
Revision history for this message
Constantine Evans (cevans) wrote :

I'm attaching a log of hald's verbose output when this happens, but it doesn't appear to have any obviously useful information on the problem.

Search for "event is 'button/sleep" to get to what I believe is the relevant portion.

Revision history for this message
Ben Roberts (ben-l-roberts) wrote :

I seem to have exactly this problem with a Toshiba Portege m300/ ipw2200

Revision history for this message
Crispin Flowerday (crispin-flowerday-deactivatedaccount) wrote :

It seems there is a monster race condition, at line 220 of classdev.c (where it opens /proc/net/wireless), /proc/net/wireless is totally empty:

Inter-| sta-| Quality | Discarded packets | Missed | WE
 face | tus | link level noise | nwid crypt frag retry misc | beacon | 20

investigations continue ...

Revision history for this message
Crispin Flowerday (crispin-flowerday-deactivatedaccount) wrote :

Further investigations show that when hal is invoked, nothing in /proc/net is setup yet (seems especially to be a problem for the ipw2200 driver, my other e100 driver works fine).

However, the stuff in /sys/class/net/eth* is setup fine. If I put a tiny sleep (not a real solution I know) in the classdev.c file just before it reads /proc/net/wireless everything works fine.

There is some code in classdev.c that just looks for the /sys/class/net/wireless directory. I don't claim to know why it isn't used, but if I use that code instead (patch attached) everything works fine for me.

Perhaps this should be given to the kernel people to work out why there is this race condition ? I would have thought /proc should be as up to date as /sys when the notification occurs

Revision history for this message
Soren Hansen (soren) wrote :

Marked as duplicate of 59981. In the comments for 59981 there are links to packages for testing a patch which is basically identical to the one attached to this bug report. :-)

Revision history for this message
Constantine Evans (cevans) wrote :

Rejecting hal part as well.

Changed in hal:
status: Unconfirmed → Rejected
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.