Re: [Ipw2100-devel] ipw2100: race between isr_indicate_associated and rx path

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Helmut Schaa
Date: Wednesday, February 25, 2009 - 5:39 am

Am Mittwoch, 25. Februar 2009 schrieb Zhu Yi:

Yep.


Argh! Just found out why dev_activate is called such late after
netif_carrier_on:

ipw2100 calls netif_carrier_on followed by netif_wake_queue when the driver
moves from associating to associated state. netif_carrier_on will then
call linkwatch_fire_event. However the carrier_on event is not treated as
urgent and as such the event is delayed (and thus dev_activate too).

An event is considered urgent if the netdev is running, has a carrier
_and_ any of the TX qdiscs changed. Since ipw2100 first calls carrier_on,
the last condition is not met and thus the event is not considered urgent
and gets delayed.

Just changing the order to first wake up the queues followed by the
carrier_on results in an urgent event. I ran a few tests with that change
(+ frame buffering patch) and wasn't able to trigger the race again.

I'll fold that into the frame buffer patch and send it to ipw2100-devel
once I finished the tests.

Helmut
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [Ipw2100-devel] ipw2100: race between isr_indicate_ass ..., Helmut Schaa, (Wed Feb 25, 5:39 am)