From d9f5b4d57c3c01ff590cb76cc02b36003652c014 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sun, 1 Aug 2004 20:16:52 -0700 Subject: [PATCH] [PATCH] fix cdrom cdda rip single frame dma fall back There's a stupid error in the fall back logic, it fails to increment the user pointer so the wave file is corrupt. We should also clear last_sense just to be sure. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds --- drivers/cdrom/cdrom.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 5a08b536444c7..4c271524ea648 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c @@ -1921,6 +1921,8 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf, struct packet_command cgc; int nr, ret; + cdi->last_sense = 0; + memset(&cgc, 0, sizeof(cgc)); /* @@ -1972,6 +1974,8 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf, if (!q) return -ENXIO; + cdi->last_sense = 0; + while (nframes) { nr = nframes; if (cdi->cdda_method == CDDA_BPC_SINGLE) @@ -2019,6 +2023,7 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf, nframes -= nr; lba += nr; + ubuf += len; } return ret; -- 2.53.0