Subject: cardbus code without busy wait
To: None <tech-kern@netbsd.org>
From: Hayakawa Koichi <haya@arch.sony.co.jp>
List: tech-kern
Date: 01/19/2000 17:44:09
Hi,

I made a patch to remove most busy wait loops on CardBus-PCI
bridge codes under kernel thread context.  This patch
affects not only CardBus cards, but also 16-bit PCcards.

This code is not beautiful, because in interrupt context we
must use busy wait.  Unfortunately, PCcard probe routine may
be called in interrupt context.


Comments?
-- 
begin 644 usetsleep.diff.gz
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
7$BI.?ZPL^70FSN<7YO\!D>32D^Q4   #
 
end
--