Messages in this thread Patch in this message | | | Date | Tue, 25 Sep 2007 21:21:02 -0400 | From | Jeff Garzik <> | Subject | Re: 2.6.23-rc7-mm1 AHCI ATA errors -- won't boot |
| |
Berck E. Nash wrote: > Jeff Garzik wrote: >> Once the blame has been squared fixed upon me :) you can use git-bisect >> to locate the precise change that broke your setup. > > Okay, here's the problem: > > 268fe6f9f15551be9abedd44a237392675d529d5 is first bad commit > commit 268fe6f9f15551be9abedd44a237392675d529d5 > Author: Jeff Garzik <jeff@garzik.org> > Date: Fri Sep 21 07:09:36 2007 -0400 > > [libata] SCSI: simple TEST UNIT READY simulation > > It's trivial to ping the device, and that's a much more sane behavior > than no-op. > > Signed-off-by: Jeff Garzik <jeff@garzik.org> > > :040000 040000 44d34cdad073bd623545b8239aca9a113652c6d0 > df6d21f7ce56a4e796f8f856c1f647b0395ab4df M drivers
Does the attached patch change behavior at all? You should be able to apply it on top of libata-dev.git#upstream or -mm.
If there are still problems, an updated dmesg (w/ the attached patch) and output from enabling ATA_DEBUG (include/linux/libata.h) would be very helpful.
Thanks!
Jeff
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 3882c72..c9838f1 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -2800,7 +2800,9 @@ static inline ata_xlat_func_t ata_get_xlat_func(struct ata_device *dev, u8 cmd) return ata_scsi_start_stop_xlat; case TEST_UNIT_READY: - return ata_scsi_tur_xlat; + if (ata_id_has_pm(dev->id)) + return ata_scsi_tur_xlat; + return NULL; } return NULL; @@ -3021,6 +3023,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd, case REZERO_UNIT: case SEEK_6: case SEEK_10: + case TEST_UNIT_READY: /* only for !PM devices */ ata_scsi_rbuf_fill(&args, ata_scsiop_noop); break; | |