diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index f0bd242e030f2e0f45b1bdf45cb99ae0c3e33b79..78e3e7b24d7d62fb12bb2736f001d95894b1d42b 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -1932,8 +1932,11 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
 
 		/*
 		 * check if dma is safe
+		 *
+		 * NOTE! The "len" and "addr" checks should possibly have
+		 * separate masks.
 		 */
-		if ((rq->data_len & 3) || (addr & mask))
+		if ((rq->data_len & mask) || (addr & mask))
 			info->dma = 0;
 	}