[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <11d0860f-b8dd-61a4-ac32-3ce6da208d74@linux.vnet.ibm.com>
Date: Mon, 8 Aug 2016 17:53:12 -0500
From: Brian King <brking@...ux.vnet.ibm.com>
To: Michael Ellerman <mpe@...erman.id.au>,
James Bottomley <James.Bottomley@...senPartnership.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-scsi <linux-scsi@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
"aneesh.kumar@...ux.vnet.ibm.com" <aneesh.kumar@...ux.vnet.ibm.com>
Subject: [PATCH] ipr: Fix sync scsi scan
On 08/08/2016 05:02 AM, Michael Ellerman wrote:
> James Bottomley <James.Bottomley@...senPartnership.com> writes:
>
>> This is seven basic fixes (plus one MAINTAINERS update) which came in
>> close to the merge window.
>>
>> The patch is available here:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-misc
>>
>> The short changelog is:
>>
>> Brian King (1):
>> ipr: Wait to do async scan until scsi host is initialized
>
> This commit seems to be causing a ~10 minute pause during boot on my
> powerpc boxes which have an IPR, eg:
Sorry about that. I fixed up async scan and managed to break sync scan...
This patch fixes it on my box. Does it fix the issue for you as well?
Thanks,
Brian
--
Brian King
Power Linux I/O
IBM Linux Technology Center
8<
Commit b195d5e2bffd3de3f07e8683e6abddf099ea0822 fixed async scan
for ipr, but broke sync scan for ipr. This fixes sync scan back up.
Signed-off-by: Brian King <brking@...ux.vnet.ibm.com>
---
drivers/scsi/ipr.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff -puN drivers/scsi/ipr.c~ipr_async_scan_fixup_again drivers/scsi/ipr.c
--- linux-2.6.git/drivers/scsi/ipr.c~ipr_async_scan_fixup_again 2016-08-08 17:48:51.637984104 -0500
+++ linux-2.6.git-bjking1/drivers/scsi/ipr.c 2016-08-08 17:48:51.643984056 -0500
@@ -10410,8 +10410,11 @@ static int ipr_probe(struct pci_dev *pde
__ipr_remove(pdev);
return rc;
}
+ spin_lock_irqsave(ioa_cfg->host->host_lock, flags);
+ ioa_cfg->scan_enabled = 1;
+ schedule_work(&ioa_cfg->work_q);
+ spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags);
- scsi_scan_host(ioa_cfg->host);
ioa_cfg->iopoll_weight = ioa_cfg->chip_cfg->iopoll_weight;
if (ioa_cfg->iopoll_weight && ioa_cfg->sis64 && ioa_cfg->nvectors > 1) {
@@ -10421,10 +10424,8 @@ static int ipr_probe(struct pci_dev *pde
}
}
- spin_lock_irqsave(ioa_cfg->host->host_lock, flags);
- ioa_cfg->scan_enabled = 1;
- schedule_work(&ioa_cfg->work_q);
- spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags);
+ scsi_scan_host(ioa_cfg->host);
+
return 0;
}
_
Powered by blists - more mailing lists