From: Tejun Heo <htejun@gmail.com>
To: "\"J.A. Magallón\"" <jamagallon@ono.com>
Cc: Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>,
Jeff Garzik <jgarzik@pobox.com>
Subject: Re: Lost DVD-RW [Was Re: 2.6.18-rc5-mm1]
Date: Thu, 07 Sep 2006 11:34:39 +0200 [thread overview]
Message-ID: <44FFE7AF.8010808@gmail.com> (raw)
In-Reply-To: <20060905002600.51c5e73b@werewolf.auna.net>
[-- Attachment #1: Type: text/plain, Size: 3226 bytes --]
J.A. Magallón wrote:
> libata version 2.00 loaded.
> ata_piix 0000:00:1f.1: version 2.00ac7
> ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 16
> PCI: Setting latency timer of device 0000:00:1f.1 to 64
> ata1: PATA max UDMA/100 cmd 0x1F0 ctl 0x3F6 bmdma 0xF000 irq 14
> ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xF008 irq 15
> scsi0 : ata_piix
> ata1.00: XXX class=3 is_ata=0 is_cfa=1
> ata1.00: failed to IDENTIFY (device reports illegal type, err_mask=0x0)
Magallón, does the attached patch fix the problem?
Alan, it seems that 0x848a indicates CFA device iff the ID data is from
IDENTIFY DEVICE. When the command is IDENTIFY PACKET DEVICE, 0x848a
seems to indicate a valid ATAPI device.
From ATA8-ACS, 7.17 is IDENTIFY DEVICE.
> 7.17.7.1 Word 0: General configuration
>
> Devices that conform to this standard shall clear bit 15 to zero. If
> bit 7 is set to one, the device is a removable media device. Bit 6 is
> obsolete.
>
> If bit 2 is set to one it indicates that the content of the IDENTIFY
> DEVICE data is incomplete. This will occur if the device supports the
> Power-up in Standby feature set and required data is contained on the
> device media. In this case the content of at least word 0 and word 2
> shall be valid.
>
> Devices supporting the CFA feature set shall place the value 848Ah in
^^^^^
> word 0. In this case, the above definitions for the bits in word 0
> are not valid.
And, 7.18 is on IDENTIFY PACKET DEVICE.
> 7.18.6.2 Word 0: General configuration
>
> Bits (15:14) of word 0 indicate the type of device. Bit 15 shall be
> set to one and bit 14 shall be cleared to zeroto indicate the device
> implements the PACKET Command feature set.
>
> Bits (12:8) of word 0 indicate the command packet set implemented by
> the device. This value follows the peripheral device type value as
> defined in SCSI Primary Commands, ANSI INCITS 301:1997.
>
> Bit 7 if set to one indicates that the device has removable media.
>
> Bits (6:5) of word 0 indicate the DRQ response time when a PACKET
> command is received. A value of 00b indicates a maximum time of 3 ms
> from receipt of PACKET to the setting of DRQ to one. A value of 10b
> indicates a maximum time of 50 μs from the receipt of PACKET to the
> setting of DRQ to one. The value 11b is reserved.
>
> If bit 2 is set to one it indicates that the content of the IDENTIFY
> DEVICE data is incomplete. This will occur if the device supports the
> Power-up in Standby feature set and required data is contained on the
> device media. In this case the content of at least word 0 and word 2
> shall be valid.
>
> Bits (1:0) of word 0 indicate the packet size the device supports. A
> value of 00b indicates that a 12-byte packet is supported; a value of
> 01b indicates a 16 byte packet. The values 10b and 11b are reserved.
So, when the output is from IDENTIFY PACKET DEVICE, 0x848a doesn't have
any special meaning. It indicates a valid write-once, removable media,
ATAPI device with 16bytes CDB.
The attached patch makes sanity checking logic in ata_dev_read_id()
check for CFA only if IDENTIFY DEVICE is used.
Thanks.
--
tejun
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 702 bytes --]
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 73dd6c8..427b73a 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -1256,10 +1256,15 @@ int ata_dev_read_id(struct ata_device *d
swap_buf_le16(id, ATA_ID_WORDS);
/* sanity check */
- if ((class == ATA_DEV_ATA) != (ata_id_is_ata(id) | ata_id_is_cfa(id))) {
- rc = -EINVAL;
- reason = "device reports illegal type";
- goto err_out;
+ rc = -EINVAL;
+ reason = "device reports illegal type";
+
+ if (class == ATA_DEV_ATA) {
+ if (!ata_id_is_ata(id) && !ata_id_is_cfa(id))
+ goto err_out;
+ } else {
+ if (ata_id_is_ata(id))
+ goto err_out;
}
if (post_reset && class == ATA_DEV_ATA) {
next prev parent reply other threads:[~2006-09-07 9:34 UTC|newest]
Thread overview: 143+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-01 8:58 2.6.18-rc5-mm1 Andrew Morton
2006-09-01 9:53 ` 2.6.18-rc5-mm1 Manuel Lauss
2006-09-01 10:44 ` 2.6.18-rc5-mm1 Grant Wilson
2006-09-01 13:50 ` [-mm patch] drivers/md/Kconfig: fix BLOCK dependency Adrian Bunk
2006-09-01 13:50 ` Adrian Bunk
2006-09-01 14:15 ` David Howells
2006-09-01 14:26 ` Jens Axboe
2006-09-01 16:00 ` 2.6.18-rc5-mm1: drivers/infiniband/hw/amso1100/c2.c compile error Adrian Bunk
2006-09-01 17:13 ` Andrew Morton
2006-09-01 17:34 ` Roland Dreier
2006-09-01 18:23 ` Andrew Morton
2006-09-01 19:53 ` Roland Dreier
2006-09-01 20:04 ` Andrew Morton
2006-09-01 20:20 ` Tom Tucker
2006-09-01 20:43 ` Russell King
2006-09-01 20:54 ` Roland Dreier
2006-09-01 21:01 ` [openib-general] " Bryan O'Sullivan
2006-09-01 20:59 ` Andrew Morton
2006-09-01 21:05 ` Roland Dreier
2006-09-01 21:26 ` Andrew Morton
2006-09-01 22:42 ` Roland Dreier
2006-09-01 20:51 ` Roland Dreier
2006-09-01 21:03 ` Andrew Morton
2006-09-01 20:45 ` [openib-general] " Bryan O'Sullivan
2006-09-01 20:59 ` Roland Dreier
2006-09-01 21:03 ` Bryan O'Sullivan
2006-09-01 16:40 ` 2.6.18-rc5-mm1 Maciej Rutecki
2006-09-05 16:16 ` 2.6.18-rc5-mm1 Bjorn Helgaas
2006-09-06 16:55 ` 2.6.18-rc5-mm1 Maciej Rutecki
2006-09-07 3:08 ` 2.6.18-rc5-mm1 Andrew Morton
2006-09-07 3:08 ` 2.6.18-rc5-mm1 Andrew Morton
2006-09-07 17:33 ` 2.6.18-rc5-mm1 keith mannthey
2006-09-07 17:33 ` 2.6.18-rc5-mm1 keith mannthey
2006-09-01 19:58 ` [-mm patch] fs/reiser4/: possible cleanups Adrian Bunk
2006-09-01 23:13 ` 2.6.18-rc5-mm1 (IDE resume regression) Rafael J. Wysocki
2006-09-02 0:08 ` Andrew Morton
2006-09-02 1:00 ` 2.6.18-rc5-mm1 Matthias Hentges
2006-09-02 1:30 ` 2.6.18-rc5-mm1 Andrew Morton
[not found] ` <44F93EB3.8050500@goop.org>
2006-09-02 8:37 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 8:44 ` 2.6.18-rc5-mm1 Greg KH
2006-09-02 8:47 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 8:52 ` 2.6.18-rc5-mm1 Greg KH
2006-09-02 9:36 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 9:38 ` 2.6.18-rc5-mm1 Jeff Garzik
2006-09-02 9:47 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-02 9:56 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-09 23:47 ` 2.6.18-rc5-mm1 Jeremy Fitzhardinge
2006-09-10 16:24 ` 2.6.18-rc5-mm1 Matthias Hentges
2006-09-02 1:06 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 1:12 ` 2.6.18-rc5-mm1 Dmitry Torokhov
2006-09-02 1:33 ` 2.6.18-rc5-mm1 Dmitry Torokhov
2006-09-02 2:10 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 1:39 ` 2.6.18-rc5-mm1 Andrew Morton
2006-09-02 3:51 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 20:20 ` 2.6.18-rc5-mm1 Grant Coady
2006-09-02 20:38 ` "VGER BF report:.." ? Matti Aarnio
2006-09-03 15:06 ` Jan Engelhardt
2006-09-03 19:59 ` Grant Coady
2006-09-02 9:05 ` 2.6.18-rc5-mm1 Philippe Gramoullé
2006-09-02 11:40 ` 2.6.18-rc5-mm1 Stefan Richter
2006-09-02 11:51 ` 2.6.18-rc5-mm1 Philippe Gramoullé
2006-09-03 9:09 ` [2.6.18-rc5-mm1 ACPI] Unknown exception code: 0xFFFFFFEA Mike Galbraith
2006-09-03 9:09 ` Mike Galbraith
2006-09-05 16:18 ` Bjorn Helgaas
2006-09-03 17:25 ` 2.6.18-rc5-mm1: sysfs_init() related compile error Adrian Bunk
2006-09-03 22:17 ` 2.6.18-rc5-mm1: MMU=n " Adrian Bunk
2006-09-04 7:44 ` Peter Zijlstra
2006-09-04 15:44 ` Adrian Bunk
2006-09-03 23:34 ` Lost DVD-RW [Was Re: 2.6.18-rc5-mm1] J.A. Magallón
2006-09-04 1:12 ` Andrew Morton
2006-09-04 2:42 ` Tejun Heo
2006-09-04 22:26 ` J.A. Magallón
2006-09-07 9:34 ` Tejun Heo [this message]
2006-09-07 11:13 ` J.A. Magallón
2006-09-07 11:32 ` [PATCH libata-dev#upstream-fixes] libata: ignore CFA signature while sanity-checking an ATAPI device Tejun Heo
2006-09-07 20:27 ` Andrew Morton
2006-09-07 21:03 ` Jeff Garzik
2006-09-08 7:56 ` Tejun Heo
2006-09-09 14:46 ` Lost DVD-RW [Was Re: 2.6.18-rc5-mm1] Alan Cox
2006-09-04 11:41 ` 2.6.18-rc5-mm1: is_init() parisc compile error Adrian Bunk
2006-09-04 13:48 ` [parisc-linux] " Matthew Wilcox
2006-09-04 18:24 ` [PATCH] Fix conflict with the is_init identifier on parisc Eric W. Biederman
2006-09-04 18:41 ` Adrian Bunk
2006-09-04 19:18 ` Andrew Morton
2006-09-04 18:24 ` [parisc-linux] " Eric W. Biederman
2006-09-04 17:03 ` [-mm patch] drivers/infiniband/hw/amso1100/: possible cleanups Adrian Bunk
2006-09-04 17:03 ` [-mm patch] make fs/lockd/host.c:nlm_lookup_host() static Adrian Bunk
2006-09-04 17:04 ` 2.6.18-rc5-mm1: ARCH_DISCONTIGMEM_ENABLE=y, SMP=n compile error Adrian Bunk
2006-09-04 19:04 ` Andrew Morton
2006-09-04 19:24 ` Adrian Bunk
2006-09-04 17:04 ` [-mm patch] fix kernel_execve() related compile errors Adrian Bunk
2006-09-04 17:04 ` [-mm patch] lib/ioremap.c must #include <linux/mm.h> Adrian Bunk
2006-09-04 18:41 ` [-mm patch] mm/memory_hotplug.c must #include <linux/cpuset.h> Adrian Bunk
2006-09-04 22:17 ` [-mm patch] arch/m68knommu/kernel/sys_m68k.c must #include <asm/unistd.h> Adrian Bunk
2006-09-05 13:03 ` lockdep oddity Heiko Carstens
2006-09-05 18:12 ` Ingo Molnar
2006-09-05 18:57 ` Hua Zhong
2006-09-05 18:52 ` Ingo Molnar
2006-09-05 19:08 ` Ingo Molnar
2006-09-05 19:37 ` Ingo Molnar
2006-09-06 6:54 ` Heiko Carstens
2006-09-06 10:05 ` Ingo Molnar
2006-09-06 7:20 ` Heiko Carstens
2006-09-06 7:47 ` Andrew Morton
2006-09-06 8:01 ` Heiko Carstens
2006-09-06 8:23 ` Hua Zhong
2006-09-06 8:40 ` Ingo Molnar
2006-09-06 14:19 ` Daniel Walker
2006-09-06 14:29 ` Heiko Carstens
2006-09-06 14:34 ` Daniel Walker
2006-09-05 20:07 ` Daniel Walker
2006-09-06 7:18 ` Heiko Carstens
2006-09-06 11:58 ` Heiko Carstens
2006-09-05 13:25 ` 2.6.18-rc5-mm1: {dis,en}able_irq_lockdep_irqrestore compile error Adrian Bunk
2006-09-05 15:21 ` [PATCH] FRV: Fix " David Howells
2006-09-06 12:50 ` Ingo Molnar
2006-09-05 15:27 ` [PATCH] NOMMU: Move the fallback arch_vma_name() to a sensible place David Howells
2006-09-05 15:29 ` [PATCH] NOMMU: Provide page_mkclean() for NOMMU David Howells
2006-09-05 15:31 ` [PATCH] NOMMU: Make lib/ioremap.c conditional David Howells
2006-09-05 15:35 ` [PATCH] FRV: do_gettimeofday() should no longer use tickadj David Howells
2006-09-06 1:46 ` john stultz
2006-09-06 9:27 ` David Howells
2006-09-06 9:43 ` Ingo Molnar
2006-09-06 12:30 ` David Howells
2006-09-06 12:56 ` Ingo Molnar
2006-09-06 14:46 ` David Howells
2006-09-06 23:01 ` Benjamin Herrenschmidt
2006-09-07 9:55 ` David Howells
2006-09-07 10:26 ` Ingo Molnar
2006-09-07 13:34 ` David Howells
2006-09-07 22:53 ` Benjamin Herrenschmidt
2006-09-08 10:25 ` David Howells
2006-09-08 11:05 ` Benjamin Herrenschmidt
2006-09-08 12:24 ` David Howells
2006-09-08 12:29 ` David Howells
2006-09-11 4:06 ` Benjamin Herrenschmidt
2006-09-09 5:46 ` Ingo Molnar
2006-09-11 10:46 ` David Howells
2006-09-05 16:00 ` 2.6.18-rc5-mm1 dependency on curses devel still there Steve Fox
2006-09-06 23:06 ` [-mm patch] ATA_JMICRON: remove the superfluous ATA dependency Adrian Bunk
2006-09-06 23:07 ` [-mm patch] ACPI_SONY shouldn't default m Adrian Bunk
2006-09-07 3:30 ` Andrew Morton
2006-09-07 4:41 ` Randy.Dunlap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44FFE7AF.8010808@gmail.com \
--to=htejun@gmail.com \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jamagallon@ono.com \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.