Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Guntsche Michael wrote:
>> I just browsed through the linux-ide archives and found this patch. I am
>> wondering if this also helps with a problem I am facing on one of my
>> router
>> boxes since a few kernel versions.
>>
>> I have an ancient router box with a  "Intel Corporation 82371SB PIIX3 IDE
>> [Natoma/Triton II]" controller. I switched to the new libata code a long
>> time ago using the ata_piix driver. I have one harddisk and a CD-burner i
>> not use very often. The Harddisk is on Primary master the burner on
>> secondary master. with at least the last two kernel versions, I see this
>> during bootup
>>
>> ata_piix 0000:00:07.1: version 2.12
>> scsi0 : ata_piix
>> scsi1 : ata_piix
>> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
>> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
>> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
>> ata1.00: 66055248 sectors, multi 16: LBA
>> ata1.00: configured for MWDMA2
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
>>
>> As you can see for some reason ata2.01 (secondary slave??) gets
>> probed during startup although there is nothing attached to it. It
>> is tried three times with a 5 seconds pause in between. I did not
>> notice this in the past since a do not reboot that machine very
>> often.  For testing purposes I just recently did this a few times
>> in a row and noticed this. It is not a biggie since harddisk and
>> burner are working but nevertheless it wasn't happening with older
>> kernel versions so I though you should know.

Looks like our phantom device detection logic is somehow broken.  Can
you please apply the attached patch and report boot log?

Thanks.

-- 
tejun
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 4b47394..709bbb4 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1226,6 +1226,8 @@ fsm_start:
 		} else {
 			/* ATA PIO protocol */
 			if (unlikely((status & ATA_DRQ) == 0)) {
+				ata_dev_printk(qc->dev, KERN_INFO,
+					       "XXX status=0x%x\n", status);
 				/* handle BSY=0, DRQ=0 as error */
 				if (likely(status & (ATA_ERR | ATA_DF)))
 					/* device stops HSM for abort/error */

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux