On 06/17/2010 01:18 PM, Wayne Boyer wrote: > @@ -7448,20 +7448,25 @@ static int ipr_reset_bist_done(struct ip > static int ipr_reset_start_bist(struct ipr_cmnd *ipr_cmd) > { > struct ipr_ioa_cfg *ioa_cfg = ipr_cmd->ioa_cfg; > - int rc; > + int rc = PCIBIOS_SUCCESSFUL; > > ENTER; > pci_block_user_cfg_access(ioa_cfg->pdev); > - rc = pci_write_config_byte(ioa_cfg->pdev, PCI_BIST, PCI_BIST_START); > > - if (rc != PCIBIOS_SUCCESSFUL) { > - pci_unblock_user_cfg_access(ipr_cmd->ioa_cfg->pdev); > - ipr_cmd->s.ioasa.hdr.ioasc = cpu_to_be32(IPR_IOASC_PCI_ACCESS_ERROR); > - rc = IPR_RC_JOB_CONTINUE; > - } else { > + if (ioa_cfg->ipr_chip->bist_method == IPR_MMIO) > + writel(IPR_UPROCI_SIS64_START_BIST, > + ioa_cfg->regs.sense_uproc_interrupt_reg32); This should be writing to ioa_cfg->regs.set_uproc_interrupt_reg32 instead. > + else > + rc = pci_write_config_byte(ioa_cfg->pdev, PCI_BIST, PCI_BIST_START); > + > + if (rc == PCIBIOS_SUCCESSFUL) { > ipr_cmd->job_step = ipr_reset_bist_done; > ipr_reset_start_timer(ipr_cmd, IPR_WAIT_FOR_BIST_TIMEOUT); > rc = IPR_RC_JOB_RETURN; > + } else { > + pci_unblock_user_cfg_access(ipr_cmd->ioa_cfg->pdev); > + ipr_cmd->s.ioasa.hdr.ioasc = cpu_to_be32(IPR_IOASC_PCI_ACCESS_ERROR); > + rc = IPR_RC_JOB_CONTINUE; > } > -- Brian King Linux on Power Virtualization IBM Linux Technology Center -- 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