On 5/14/25 20:31, Tasos Sahanidis wrote: > The controller has a hardware bug that can hard hang the system when > doing ATAPI DMAs without any trace of what happened. Depending on the > device attached, it can also prevent the system from booting. > > In this case, the system hangs when reading the ATIP from optical media > with cdrecord -vvv -atip on an _NEC DVD_RW ND-4571A 1-01 and an > Optiarc DVD RW AD-7200A 1.06 attached to an ASRock 990FX Extreme 4, > running at UDMA/33. > > The issue can be reproduced by running the same command with a cygwin > build of cdrecord on WinXP, although it requires more attempts to cause > it. The hang in that case is also resolved by forcing PIO. It doesn't > appear that VIA has produced any drivers for that OS, thus no known > workaround exists. > > HDDs attached to the controller do not suffer from any DMA issues. > > Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/916677 > Signed-off-by: Tasos Sahanidis <tasos@xxxxxxxxxxxx> > --- > drivers/ata/pata_via.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c > index 696b99720dcb..11dce43c6b7c 100644 > --- a/drivers/ata/pata_via.c > +++ b/drivers/ata/pata_via.c > @@ -368,7 +368,7 @@ static unsigned int via_mode_filter(struct ata_device *dev, unsigned int mask) > } > > if (dev->class == ATA_DEV_ATAPI && > - dmi_check_system(no_atapi_dma_dmi_table)) { > + (dmi_check_system(no_atapi_dma_dmi_table) || config->id == PCI_DEVICE_ID_VIA_6415)) { Long line. Please split it after "||". > ata_dev_warn(dev, "controller locks up on ATAPI DMA, forcing PIO\n"); > mask &= ATA_MASK_PIO; > } -- Damien Le Moal Western Digital Research