diff options
Diffstat (limited to 'drivers/scsi/aacraid/rx.c')
| -rw-r--r-- | drivers/scsi/aacraid/rx.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c index dada38aeacc..5c6a8703f53 100644 --- a/drivers/scsi/aacraid/rx.c +++ b/drivers/scsi/aacraid/rx.c @@ -480,7 +480,7 @@ static int aac_rx_ioremap(struct aac_dev * dev, u32 size)  static int aac_rx_restart_adapter(struct aac_dev *dev, int bled)  { -	u32 var; +	u32 var = 0;  	if (!(dev->supplement_adapter_info.SupportedOptions2 &  	  AAC_OPTION_MU_RESET) || (bled >= 0) || (bled == -2)) { @@ -500,13 +500,14 @@ static int aac_rx_restart_adapter(struct aac_dev *dev, int bled)  		if (bled && (bled != -ETIMEDOUT))  			return -EINVAL;  	} -	if (bled || (var == 0x3803000F)) { /* USE_OTHER_METHOD */ +	if (bled && (var == 0x3803000F)) { /* USE_OTHER_METHOD */  		rx_writel(dev, MUnit.reserved2, 3);  		msleep(5000); /* Delay 5 seconds */  		var = 0x00000001;  	} -	if (var != 0x00000001) +	if (bled && (var != 0x00000001))  		return -EINVAL; +	ssleep(5);  	if (rx_readl(dev, MUnit.OMRx[0]) & KERNEL_PANIC)  		return -ENODEV;  	if (startup_timeout < 300) @@ -646,7 +647,7 @@ int _aac_rx_init(struct aac_dev *dev)  	dev->sync_mode = 0;	/* sync. mode not supported */  	dev->msi = aac_msi && !pci_enable_msi(dev->pdev);  	if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, -			IRQF_SHARED|IRQF_DISABLED, "aacraid", dev) < 0) { +			IRQF_SHARED, "aacraid", dev) < 0) {  		if (dev->msi)  			pci_disable_msi(dev->pdev);  		printk(KERN_ERR "%s%d: Interrupt unavailable.\n",  | 
