From: Linus Torvalds <torvalds@g5.osdl.org>
Date: Wed, 21 Jun 2006 18:18:25 +0000 (-0700)
Subject: Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
X-Git-Tag: firefly_0821_release~35469
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=28e4b224955cbe30275b2a7842e729023a4f4b03;p=firefly-linux-kernel-4.4.55.git

Merge /pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (85 commits)
  [SCSI] 53c700: remove reliance on deprecated cmnd fields
  [SCSI] hptiop: don't use cmnd->bufflen
  [SCSI] hptiop: HighPoint RocketRAID 3xxx controller driver
  [SCSI] aacraid: small misc. cleanups
  [SCSI] aacraid: Update supported product information
  [SCSI] aacraid: Fix return code interpretation
  [SCSI] scsi_transport_sas: fix panic in sas_free_rphy
  [SCSI] remove RQ_SCSI_* flags
  [SCSI] remove scsi_request infrastructure
  [SCSI] mptfusion: change driver revision to 3.03.10
  [SCSI] mptfc: abort of board reset leaves port dead requiring reboot
  [SCSI] mptfc: fix fibre channel infinite request/response loop
  [SCSI] mptfc: set fibre channel fw target missing timers to one second
  [SCSI] mptfusion: move fc event/reset handling to mptfc
  [SCSI] spi transport: don't allow dt to be set on SE or HVD buses
  [SCSI] aic7xxx: expose the bus setting to sysfs
  [SCSI] scsi: remove Documentation/scsi/cpqfc.txt
  [SCSI] drivers/scsi: Use ARRAY_SIZE macro
  [SCSI] Remove last page_address from dc395x.c
  [SCSI] hptiop: HighPoint RocketRAID 3xxx controller driver
  ...

Fixed up conflicts in drivers/message/fusion/mptbase.c manually (due to
the sparc interrupt cleanups)
---

28e4b224955cbe30275b2a7842e729023a4f4b03
diff --cc drivers/message/fusion/mptbase.c
index 59690cbabfca,08779d79a1f0..12dd8d493ee2
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@@ -1722,6 -1697,48 +1694,36 @@@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u
  		}
  	}
  
+ 	/*
+ 	 * Device is reset now. It must have de-asserted the interrupt line
+ 	 * (if it was asserted) and it should be safe to register for the
+ 	 * interrupt now.
+ 	 */
+ 	if ((ret == 0) && (reason == MPT_HOSTEVENT_IOC_BRINGUP)) {
+ 		ioc->pci_irq = -1;
+ 		if (ioc->pcidev->irq) {
+ 			if (mpt_msi_enable && !pci_enable_msi(ioc->pcidev))
+ 				printk(MYIOC_s_INFO_FMT "PCI-MSI enabled\n",
+ 					ioc->name);
+ 			rc = request_irq(ioc->pcidev->irq, mpt_interrupt,
+ 					SA_SHIRQ, ioc->name, ioc);
+ 			if (rc < 0) {
 -#ifndef __sparc__
+ 				printk(MYIOC_s_ERR_FMT "Unable to allocate "
+ 					"interrupt %d!\n", ioc->name,
+ 					ioc->pcidev->irq);
 -#else
 -				printk(MYIOC_s_ERR_FMT "Unable to allocate "
 -					"interrupt %s!\n", ioc->name,
 -					__irq_itoa(ioc->pcidev->irq));
 -#endif
+ 				if (mpt_msi_enable)
+ 					pci_disable_msi(ioc->pcidev);
+ 				return -EBUSY;
+ 			}
+ 			irq_allocated = 1;
+ 			ioc->pci_irq = ioc->pcidev->irq;
+ 			pci_set_master(ioc->pcidev);		/* ?? */
+ 			pci_set_drvdata(ioc->pcidev, ioc);
 -#ifndef __sparc__
+ 			dprintk((KERN_INFO MYNAM ": %s installed at interrupt "
+ 				"%d\n", ioc->name, ioc->pcidev->irq));
 -#else
 -			dprintk((KERN_INFO MYNAM ": %s installed at interrupt "
 -				"%s\n", ioc->name,
 -				__irq_itoa(ioc->pcidev->irq)));
 -#endif
+ 		}
+ 	}
+ 
  	/* Prime reply & request queues!
  	 * (mucho alloc's) Must be done prior to
  	 * init as upper addresses are needed for init.