From 07c5d8409a6cd97a979e71519b242452762d48fb Mon Sep 17 00:00:00 2001 From: Pradeep Gopanapalli Date: Mon, 5 Jun 2017 16:29:03 -0700 Subject: [PATCH] xsigo: UEK4-master:poor performance discovering 256 FC LUNs w/4 paths per LUN Orabug: 26199177 Current sense_len checks for size of cp->sense_buffer which is of type pointer. Passing truncated sense data(size of pointer) to upper scsi layers(aula) is causing delay in discovering FC LUN's. Fixed sense_len assignment to SCSI_SENSE_BUFFERSIZE, this resolved delay in discovering FC LUN's. Reviewed-by: sajid.zia@oracle.com Signed-off-by: Pradeep Gopanapalli Signed-off-by: said.zia@oracle.com --- drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c b/drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c index 2ae9a805d8d1..1a394a2fe917 100644 --- a/drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c +++ b/drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c @@ -455,8 +455,8 @@ void process_status_entry(struct virtual_hba *vhba, struct sts_entry_24xx *sts) if (!(scsi_status & SS_SENSE_LEN_VALID)) break; - if (sense_len >= sizeof(cp->sense_buffer)) - sense_len = sizeof(cp->sense_buffer); + if (sense_len >= SCSI_SENSE_BUFFERSIZE) + sense_len = SCSI_SENSE_BUFFERSIZE; sp->request_sense_length = sense_len; sp->request_sense_ptr = cp->sense_buffer; @@ -505,8 +505,8 @@ void process_status_entry(struct virtual_hba *vhba, struct sts_entry_24xx *sts) if (!(scsi_status & SS_SENSE_LEN_VALID)) break; - if (sense_len >= sizeof(cp->sense_buffer)) - sense_len = sizeof(cp->sense_buffer); + if (sense_len >= SCSI_SENSE_BUFFERSIZE) + sense_len = SCSI_SENSE_BUFFERSIZE; sp->request_sense_length = sense_len; sp->request_sense_ptr = cp->sense_buffer; -- 2.50.1