On Fri, 2009-12-04 at 23:58 +1100, Finn Thain wrote: > On Wed, 2 Dec 2009, David Miller wrote: > > ... > > > > Can you explain why the esp_slave_configure() part of your patch is > > necessary? > > > > > Index: linux-2.6.31/drivers/scsi/esp_scsi.c > > > =================================================================== > > > --- linux-2.6.31.orig/drivers/scsi/esp_scsi.c 2009-11-23 12:52:45.000000000 +1100 > > > +++ linux-2.6.31/drivers/scsi/esp_scsi.c 2009-11-23 12:53:30.000000000 +1100 > > > @@ -2405,12 +2405,6 @@ static int esp_slave_configure(struct sc > > > struct esp_target_data *tp = &esp->target[dev->id]; > > > int goal_tags, queue_depth; > > > > > > - if (esp->flags & ESP_FLAG_DISABLE_SYNC) { > > > - /* Bypass async domain validation */ > > > - dev->ppr = 0; > > > - dev->sdtr = 0; > > > - } > > > - > > > goal_tags = 0; > > > > > > if (dev->tagged_supported) { > > > @@ -2433,6 +2427,11 @@ static int esp_slave_configure(struct sc > > > } > > > tp->flags |= ESP_TGT_DISCONNECT; > > > > > > + if (esp->flags & ESP_FLAG_DISABLE_SYNC) { > > > + dev->wdtr = spi_support_wide(dev->sdev_target) = 0; > > > + dev->sdtr = spi_support_sync(dev->sdev_target) = 0; > > > + } > > > + > > > if (!spi_initial_dv(dev->sdev_target)) > > > spi_dv_device(dev); > > > > > The aim is that domain validation will not test for sync when we know it > can't work (in PIO mode). This is the result: So this isn't the correct way to handle the problem. You're altering the disk capability flags to trick the transport class. What you want to be doing is updating esp_set_period so it won't go under whatever you deem to be a correct period setting (or if it's really async then it won't set the period at all). James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html