From: Linus Torvalds 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.