Major changes for hardware interrupt handling

Jouni Malinen jkmaline
Thu Nov 21 07:30:58 PST 2002


I just finished committing major changes to hardware interrupt handling
in the Host AP driver. Please do note, that the new code has not been
tested throughly, so there may well be problems with it. I have been
using 2.5.47 kernel in my tests and thus far haven't even once compiled
new code for 2.2.x kernels..

The driver is now trying to get out of the hw irq context as soon as
possible. This means that RX, info, TX, and TX Exc event processing only
schedules a tasklet to take care of the event, masks these events from
generating new interrupts during processing, and ACKs hw irq. Then data
is read in tasklet (SoftIRQ) and queued in a driver queue and a new
tasklet is scheduled to take care of rest of the processing (including
802.11 to Ethernet header conversion, possible host-based decryption,
etc.). This will hopefully help with platforms that may have had
problems with missed or delayed irqs.

These changes remove all hardware irq context from the AP code
(hostap_ap.c), so it can use lighter locking. In addition, I removed
some hardware specific code from hostap_ap.c and hopefully will get rest
of it removed at some point in the future. Most of the code in
hostap_hw.c is now running in softirq context, so locking is lighter
also in this file and hw irqs should not be disabled for long periods of
time anymore.

-- 
Jouni Malinen                                            PGP id EFC895FA




More information about the Hostap mailing list