This fixes a bug in i810_ioctl(), which made the GETOSPACE ioctl return
a different value than that checked against in i810_write.
>From i810_write():
| cnt = dmabuf->dmasize - dmabuf->fragsize - dmabuf->count;
| // this is to make the copy_from_user simpler below
| if(cnt > (dmabuf->dmasize - swptr))
| cnt = dmabuf->dmasize - swptr;
| spin_unlock_irqrestore(&state->card->lock, flags);
|
|#ifdef DEBUG2
| printk(KERN_INFO "i810_audio: i810_write: %d bytes available spa
|ce\n", cnt);
|#endif
where cnt is the space available.
Please apply
--- linux-2.4.10-ac12/drivers/sound/i810_audio.c Wed Nov 7 19:15:31 2001
+++ linux-2.4.10-ifia/drivers/sound/i810_audio.c Wed Nov 7 19:02:10 2001
@@ -1860,7 +1860,7 @@
if(dmabuf->mapped)
abinfo.bytes = dmabuf->count;
else
- abinfo.bytes = dmabuf->dmasize - dmabuf->count;
+ abinfo.bytes = dmabuf->dmasize - dmabuf->fragsize - dmabuf->count;
abinfo.fragments = abinfo.bytes / dmabuf->userfragsize;
spin_unlock_irqrestore(&state->card->lock, flags);
#ifdef DEBUG
-- Tobias PGP: 0x9AC7E0BC Hannover Fantreffen ML: mailto:fantreffen-request@mantrha.de?subject=subscribe Manga & Anime Treff Hannover: http://www.mantrha.de/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/