Re: LibPATA code issues / 2.6.15.4
From: Justin Piszcz <hidden>
Date: 2006-02-25 17:45:10
Also in:
lkml
Second patch fails for me. On a clean 2.6.15.4 source tree: p34:/usr/src# ls -ld linux lrwxrwxrwx 1 root src 14 2006-02-25 12:41 linux -> linux-2.6.15.4/ The one from your e-mail earlier: p34:/usr/src/linux# patch -p1 < /tmp/patch1 patching file drivers/scsi/libata-scsi.c Hunk #1 succeeded at 404 (offset -16 lines). Hunk #2 succeeded at 414 (offset -16 lines). Hunk #3 succeeded at 493 (offset -16 lines). Hunk #4 succeeded at 505 (offset -16 lines). Hunk #5 succeeded at 547 (offset -16 lines). Hunk #6 succeeded at 622 (offset -16 lines). p34:/usr/src/linux# patch -p1 < /tmp/12_libata_ata_opcode.patch patching file drivers/scsi/libata-core.c Hunk #1 succeeded at 245 (offset -8 lines). Hunk #2 succeeded at 267 (offset -8 lines). Hunk #3 succeeded at 288 (offset -8 lines). Hunk #4 succeeded at 310 (offset -8 lines). Hunk #5 succeeded at 500 (offset -8 lines). Hunk #6 FAILED at 626. 1 out of 6 hunks FAILED -- saving rejects to file drivers/scsi/libata-core.c.rej patching file drivers/scsi/libata-scsi.c Hunk #1 succeeded at 414 (offset -24 lines). Hunk #2 succeeded at 493 (offset -24 lines). Hunk #3 FAILED at 505. Hunk #4 succeeded at 547 (offset -24 lines). Hunk #5 succeeded at 622 (offset -24 lines). Hunk #6 succeeded at 1308 (offset -29 lines). 1 out of 6 hunks FAILED -- saving rejects to file drivers/scsi/libata-scsi.c.rej patching file include/linux/ata.h Hunk #1 succeeded at 239 (offset -5 lines). patching file include/linux/libata.h Hunk #1 succeeded at 368 (offset -52 lines). Hunk #2 succeeded at 452 (offset -60 lines). p34:/usr/src/linux# Should I be using 2.6.16-rcX? On Sat, 25 Feb 2006, Mark Lord wrote:
David Greaves wrote: ..quoted
Thanks Mark - I've finally gotten this patch applied. With smartd disabled and no smart commands issued, a readonly badblocks scan of /dev/sdb2 shows no problems and now gives: Feb 25 10:38:31 haze kernel: ata2: status=0x51 { DriveReady SeekComplete Error } Feb 25 10:38:32 haze kernel: ata2: no sense translation for op=0x28 status: 0x51 Feb 25 10:38:32 haze kernel: ata2: status=0x51 { DriveReady SeekComplete Error } Feb 25 10:38:35 haze kernel: ata2: no sense translation for op=0x28 status: 0x51 hundreds of times... Mmmm.. okay, it's happening due to a SCSI READ_10 opcode, which means it isn't being triggered by any of the FUA stuff. But there's still no obvious reason for the error. The drive is basically just saying "command rejected", and libata-scsi is translating that into "medium error" for some unknown reason. Unfortunately, the design of the current libata is such that we no longer have access to the actual ATA opcode that was rejected. It gets overwritten by the returned drive status on completion. So.. I need to generate another patch for you now, to save/show the real ATA opcode that was used to cause the errors. My theory is that we'll discover that it is one that your drive legitimately is rejecting (unsupported LBA48 or something..). But we won't know until we see the output. Second patch is attached: apply *in addition* to the first one. Cheers