From mboxrd@z Thu Jan 1 00:00:00 1970
From: Pat LaVarre
Subject: Re: [PATCH] atapi request sense work
Date: 21 May 2004 17:24:21 -0600
Sender: linux-ide-owner@vger.kernel.org
Message-ID: <1085181861.3266.11.camel@patibmrh9>
References: <1084717146.3576.3.camel@patibmrh9> <40AD7FB2.10506@pobox.com><1
085153750.6103.33.camel@patibmrh9><200405211746.35015.bzolnier@elka.pw.edu
. pl><1085162347.4791.24.camel@patibmrh9> <1085170025.3083.91.camel@patibm
r h9><40AE79E1.9020005@pobox.com>
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Return-path:
Received: from email-out2.iomega.com ([147.178.1.83]:1473 "EHLO
email.iomega.com") by vger.kernel.org with ESMTP id S264622AbUEUXYb
(ORCPT );
Fri, 21 May 2004 19:24:31 -0400
Received: from royntex01.iomegacorp.com (franklin [10.1.1.83])
by email.iomega.com (Postfix) with ESMTP id 4D1B31A1E
for ; Fri, 21 May 2004 17:24:27 -0600 (MDT)
In-Reply-To: <40AE79E1.9020005@pobox.com>
List-Id: linux-ide@vger.kernel.org
To: linux-ide@vger.kernel.org
In linux-2.6.6-bk8 plus my bk8.good.always.patch,
One way to hang ata-piix.ko is ...
... for the device to refuse to copy the last bytes of a write.
In the example here, we tell the host to expect to copy out x1000 = 4 Ki
bytes, but we tell the device to agree to copy out only x0001 blocks
i.e. x800 = 2 Ki bytes.
The "ata2: unknown timeout, cmd 0xa0 stat 0xd0" message suggest we
didn't end clean, but to confirm that appearance we follow up with a
standard op x12 "INQUIRY" that indeed does not complete at all.
Pat LaVarre
P.S. This example I logged more carefully, but I first stumbled into
this with stimulus more like:
plscsi -o xC0 -x "3B 02 00:00:00:00 00 00:24 00" // "WRITE BUFFER" // Do < Ho
// Stimulus:
export PLSCSI='/dev/sg0 -X time 5 0'
plscsi -o x1000 -x "2A 00 00:00:00:10 00 00:01 00"
plscsi -i x24 -x "12 00:00:00 24 00"
Ctrl+C
sudo modprobe -r ata-piix
# FATAL: Module ata_piix is in use.
reboot
// Result:
kernel: ata_scsi_dump_cdb: CDB (2:0,0,0) 2a 00 00 00 00 10 00 00 01
kernel: ata_scsi_translate: ENTER
kernel: atapi_xlat: direction: write
kernel: ata_sg_setup_one: mapped buffer of 4096 bytes for write
kernel: ata_fill_sg: PRD[0] = (0x133B8000, 0x1000)
kernel: ata_dev_select: ENTER, ata2: device 0, wait 1
kernel: ata_tf_load_pio: feat 0x1 nsect 0x0 lba 0x0 0x0 0x0
kernel: ata_tf_load_pio: device 0xA0
kernel: ata_exec_command_pio: ata2: cmd 0xA0
kernel: ata_scsi_translate: EXIT
kernel: atapi_packet_task: busy wait
kernel: atapi_packet_task: send cdb
kernel: ata_scsi_error: ENTER
kernel: ata_eng_timeout: ENTER
kernel: ata2: unknown timeout, cmd 0xa0 stat 0xd0
kernel: ata_sg_clean: unmapping 1 sg elements
kernel: ata_eng_timeout: EXIT
kernel: ata_scsi_error: EXIT
kernel: ata_scsi_dump_cdb: CDB (2:0,0,0) 12 00 00 00 24 00 00 00 00
kernel: ata_scsi_translate: ENTER
kernel: ata_sg_setup_one: mapped buffer of 36 bytes for read
kernel: ata_fill_sg: PRD[0] = (0x133B8000, 0x24)
kernel: ata_dev_select: ENTER, ata2: device 0, wait 1
kernel: ATA: abnormal status 0xD0 on port 0xE007
kernel: ATA: abnormal status 0xD0 on port 0xE007
kernel: ata_tf_load_pio: feat 0x5 nsect 0x0 lba 0x0 0x0 0x0
kernel: ata_tf_load_pio: device 0xA0
kernel: ATA: abnormal status 0xD0 on port 0xE007
kernel: ata_exec_command_pio: ata2: cmd 0xA0
kernel: ata_scsi_translate: EXIT
kernel: atapi_packet_task: busy wait
kernel: ata2 is slow to respond, please be patient
kernel: ata2 failed to respond (30 secs)
kernel: ata_sg_clean: unmapping 1 sg elements