lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Thu, 16 Aug 2007 14:14:40 +0200
From:	Zoltan Boszormenyi <zboszor@...aweb.hu>
To:	IDE/ATA development list <linux-ide@...r.kernel.org>
Cc:	Michal Piotrowski <michal.k.k.piotrowski@...il.com>,
	linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: Bad CD disk disables IDE DMA

Zoltan Boszormenyi írta:
> Michal Piotrowski írta:
>> Hi Zoltan,
>>
>> On 15/08/07, Zoltan Boszormenyi <zboszor@...aweb.hu> wrote:
>>  
>>> Hi,
>>>
>>> I noticed that a bad CD of mine makes DMA disabled:
>>>
>>> hda: selected mode 0x44
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: DMA disabled
>>> hda: ide_intr: huh? expected NULL handler on exit
>>> hda: ATAPI reset complete
>>>
>>> Every time I put the said CD into to drive and DMA is on, I get the
>>> above messages.
>>>     
>>
>> This might be intended.
>>   
>
> Might be. Note however, that there are no "cdrom_decode_status: " lines
> when the drive is not using DMA. The disk is the same in both cases.
> I don't know too much about ATAPI, but shouldn't it report the same
> errors no matter how the commands are passed to the drive?
> I tried to make it using DMA after mounting the "faulty" disk and 
> copying it.
> The same errors occured in the logs when dd started reading but it 
> actually
> finished reading:
>
> $ LANG=C dd if=/dev/hda of=image.iso bs=2048
> dd: reading `/dev/hda': Input/output error
> 298106+0 records in
> 298106+0 records out
> 610521088 bytes (611 MB) copied, 144.349 seconds, 4.2 MB/s
>
> The file is a bit larger than what isosize reports about it but IIRC 
> it's expected.
> So, if the disk is actually faulty dd would drop dead and not able to 
> read the disk.
> Or something is not quite right in the ide-cd driver. The "DMA 
> disabled" message
> comes when the drive should spin up the disk. Isn't there a timeout 
> error somewhere?
> Hm. Thinking about it a bit more upon mount the same is happening - 
> before
> the disk is spun up the error shows up in the logs and it switches to 
> PIO.
> Does it ring a bell to someone?

Another data point: the other disks I tried up to now were DVDs
and DMA remains turned on for those. It's even true for empty
DVDs and the label side of a Labelflash disk. On the other hand,
another CD and two other CDRW disks (no visible faults, scratches
on either btw) give me the same error when they are mounted,
DMA gets disabled.

... some more tests and researching ...

TADA! The solution was to tune down the drive to only use UDMA3
with "hdparm -X67". Now although dd didn't get any faster, DMA
remained enabled. Actually the drive is originally a Pioneer 111D
that was reflashed to 111L to get the Labelflash feature.
Can it be a firmware bug? BTW the drive has a 80w cable.

>>> Two things are interesting: first, it gets mounted correctly and
>>> readable and
>>> second, when DMA was already disabled no such messages occur in the 
>>> logs.
>>> Anyhow, I would need DMA to correctly burn CDs/DVDs...
>>> What can I do besides manually re-enable DMA?
>>> All other disks I have tried behave perfectly.
>>> This happened on 2.6.22[-rcX], 2.6.23-rc3-git1 and 2.6.20-1.2962.fc6.
>>> This is on a Fedora Core 6 system. CD/DVD is using the old IDE drivers:
>>>
>>> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
>>> ide: Assuming 33MHz system bus speed for PIO modes; override with 
>>> idebus=xx
>>> NFORCE-MCP55: IDE controller at PCI slot 0000:00:04.0
>>> NFORCE-MCP55: chipset revision 161
>>> NFORCE-MCP55: not 100% native mode: will probe irqs later
>>> NFORCE-MCP55: BIOS didn't set cable bits correctly. Enabling 
>>> workaround.
>>> NFORCE-MCP55: 0000:00:04.0 (rev a1) UDMA133 controller
>>>     ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
>>> Probing IDE interface ide0...
>>> hda: PIONEER DVD-RW DVR-111L, ATAPI CD/DVD-ROM drive
>>> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
>>> Probing IDE interface ide1...
>>> ide-floppy driver 0.99.newide
>>>
>>> $ cat /proc/ide/amd74xx
>>> ----------AMD BusMastering IDE Configuration----------------
>>> Driver Version:                     2.13
>>> South Bridge:                       0000:00:04.0
>>> Revision:                           IDE 0xa1
>>> Highest DMA rate:                   UDMA133
>>> BM-DMA base:                        0xf000
>>> PCI clock:                          33.3MHz
>>> -----------------------Primary IDE-------Secondary IDE------
>>> Prefetch Buffer:              yes                 yes
>>> Post Write Buffer:            yes                 yes
>>> Enabled:                      yes                  no
>>> Simplex only:                  no                 yes
>>> Cable Type:                   80w                 80w
>>> -------------------drive0----drive1----drive2----drive3-----
>>> Transfer Mode:        PIO       DMA       DMA       DMA
>>> Address Setup:       30ns      90ns      90ns      90ns
>>> Cmd Active:          90ns      90ns     300ns     300ns
>>> Cmd Recovery:        30ns      30ns     300ns     300ns
>>> Data Active:         90ns     330ns     330ns     330ns
>>> Data Recovery:       30ns     270ns     270ns     270ns
>>> Cycle Time:         120ns     600ns     600ns     600ns
>>> Transfer Rate:   16.6MB/s   3.3MB/s   3.3MB/s   3.3MB/s
>>>
>>> Best regards,
>>> Zoltán Böszörményi
>>>     
>>
>> Regards,
>> Michal
>>
>>   
>
> Best regards,
> Zoltán
>
>
>


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ