From: Pradeep Gopanapalli Date: Mon, 5 Jun 2017 23:29:03 +0000 (-0700) Subject: xsigo: UEK4-master:poor performance discovering 256 FC LUNs w/4 paths per LUN X-Git-Tag: v4.1.12-104.0.20170618_1145~234 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=07c5d8409a6cd97a979e71519b242452762d48fb;p=users%2Fjedix%2Flinux-maple.git 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 --- diff --git a/drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c b/drivers/infiniband/ulp/xsigo/xsvhba/vhba_init.c index 2ae9a805d8d13..1a394a2fe9173 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;