On Thursday 16 October 2008, Sergei Shtylyov wrote: > Hello, I wrote: > > >> Apparently, 'xcount' being 0 does not mean 0 bytes for TRM290; it > >> means 4 bytes, judging from the code immediately preceding this > >> check. So, we must never try > >> to "split" the PRD for TRM290. > >> > >> This is probably never hit anyway -- with the DMA buffers aligned to > >> at least > >> 512 bytes and ATAPI DMA not being used for non block I/O commands... > >> > >> Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> > >> > > > > Bart, unfortunately, drivers/ide/ide-dma-sff.c has the same mistake > > -- you probably forgot to modify the patch splitting it from > > ide-dma.c... :-/ > > Even the one cleaning up ide_build_dmatable() actually... Thanks for noticing and sorry for that. From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> Subject: [PATCH] ide: re-add TRM290 fix lost during ide_build_dmatable() cleanup commit 14c123f37187aba0b4e0e893a969efc6820c4170 ("ide: cleanup ide_build_dmatable()") accidentally reverted TRM290 fix introduced by commit 22e05b4549bf2405d6aca128540b20cd2dd33f1f ("ide-dma: fix ide_build_dmatable() for TRM290"). Reported-by: Sergei Shtylylov <sshtylyov@xxxxxxxxxxxxx> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> --- drivers/ide/ide-dma-sff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: b/drivers/ide/ide-dma-sff.c =================================================================== --- a/drivers/ide/ide-dma-sff.c +++ b/drivers/ide/ide-dma-sff.c @@ -130,7 +130,7 @@ int ide_build_dmatable(ide_drive_t *driv xcount = bcount & 0xffff; if (is_trm290) xcount = ((xcount >> 2) - 1) << 16; - if (xcount == 0x0000) { + else if (xcount == 0x0000) { if (count++ >= PRD_ENTRIES) goto use_pio_instead; *table++ = cpu_to_le32(0x8000); -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html