From: Jouni Malinen (jkmaline_at_cc.hut.fi)
Date: 2002-07-23 19:50:41 UTC
On Sat, Jul 20, 2002 at 11:38:50AM +0300, Jouni Malinen wrote:
> I have planned on experimenting with quite a bit different driver
> structure as far as command completion is concerned, but this would
> change the driver quite a bit. The commands could be queued in a
> host-side list and then performed without busy waiting the command
> completion event. Interrupt handler would get the command completions
> and it would then issue the next pending command if one is in the queue.
> The interrupt handler would also call whatever code would be needed to
> finish handling the completed command.
> Changing the command completion handling completely will certainly
> require quite a bit of planning and testing, so it won't happen
> immediately.
I take that back.. ;-)
I ended up implementing this change and I think that it was certainly worthwhile. TX path is now much cleaner and couple of the ugliest parts of the driver (busy waiting for command completion and for local txfid variable) disappeared. This should also make it much easier to make sure that the code is correct. Furthemore, this should remove the reported spurious interrupts.
Most of the changes were actually limited to hfa384x_cmd* calls and interrupt handler and rest of the driver did not need to be changed. ChangeLog has more details of the changes and the new version is available from CVS snapshot at http://hostap.epitest.fi/.
I have tested the new version only with Linux 2.4 kernels, so 2.2 kernels would require testing (I only verified that the code compiles). Both UP and SMP worked fine at least with low traffic load. I try to test high load cases tomorrow to hopefully find the hang on SMP hosts that was reported earlier.
I'm hoping to keep this the last major change before next release. In other words, if you happen to know any problems, especially anything causing kernel crashes, that are still present in the latest CVS version, now would be a good time to report them. I try to go through my rather long mail queue to make sure that I haven't forgotten any known issues.
-- Jouni Malinen PGP id EFC895FA