Messages in this thread | | | Date | Mon, 18 Feb 2008 14:44:29 +0100 (CET) | From | Jiri Kosina <> | Subject | Re: My system stops during startup with curretn git tree of 2.6.25-rc2 |
| |
On Mon, 18 Feb 2008, Laszlo Attila Toth wrote:
> Okay, but I can't figure out what's the problem with it. I don't have > wireless card on my linux box also I can't test it but everything else > works. Swap is mounted. The concurrency cannot be a problem because the > write operation is protected by a lock.
- write_lock_bh(&dev_base_lock); - dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]); - write_unlock_bh(&dev_base_lock); + if (dev->link_mode != nla_get_u8(tb[IFLA_LINKMODE])) { + write_lock_bh(&dev_base_lock); + dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]); + write_lock_bh(&dev_base_lock); + modified = 1; + } }
1) you are accessing dev->link_mode and tb[] outside the dev_base_lock 2) there is obvious and immediate deadlock -- you acquire the dev_base_lock twice, without any unlock, just look at the chunk above 3) even with this deadlock fixed, Rafael states that either NM or wpa_supplicant (I don't recall from top of my head) still don't work
-- Jiri Kosina SUSE Labs
| |