Shawn wrote: >>List: linux-kernel >>Subject: 2.5.66-bk5 spinlock warnings/errors >From: Narayan Desai >>Date: 2003-04-02 4:01:02 > >>hda: dma_timer_expiry: dma status == 0x24 >>drivers/ide/ide-io.c:109: spin_lock(drivers/ide/ide.c:c037abe8) already >>locked by drivers/ide/ide-io.c/948 drivers/ide/ide-io.c:990: >>spin_unlock(drivers/ide/ide.c:c037abe8) not locked >>hda: lost interrupt >>hda: dma_intr: bad DMA status (dma_stat=30) >>hda: dma_intr: status=0x50 { DriveReady SeekComplete } > >I had this problem last night while making a huge debian package (tar.bz2 >stage). It occured once. > > The attached patch should fix the problem: the dma_timer_expiry handler calls HWGROUP(drive)->handler in the wrong context. Instead of calling ->handler directly, the ->expiry handler must inform the caller that ->handler must be called, and then the caller must do some setup before calling ->handler. -- Manfred