From: Tomas Henzl Date: Mon, 1 Feb 2016 14:12:04 +0000 (+0100) Subject: megaraid_sas: Add an i/o barrier X-Git-Tag: v4.1.12-92~186^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e05f90c6789662900468bb7d536731c5116f9ab5;p=users%2Fjedix%2Flinux-maple.git megaraid_sas: Add an i/o barrier Orabug: 22620626 A barrier should be added to ensure proper ordering of memory mapped writes. Signed-off-by: Tomas Henzl Reviewed-by: Kashyap Desai Acked-by: Kashyap Desai Signed-off-by: Martin K. Petersen (cherry picked from commit b99dbe56d511eb07de33bfa1b99ac5a6ff76ae08) Signed-off-by: Martin K. Petersen Orabug : 22620626 Signed-off-by: Manjunath Govindashetty --- diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 063c57ec179ef..6b9c247487d2f 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -750,6 +750,7 @@ megasas_fire_cmd_skinny(struct megasas_instance *instance, &(regs)->inbound_high_queue_port); writel((lower_32_bits(frame_phys_addr) | (frame_count<<1))|1, &(regs)->inbound_low_queue_port); + mmiowb(); spin_unlock_irqrestore(&instance->hba_lock, flags); } diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index b1a3b87b657b5..151769cea6067 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -204,6 +204,7 @@ megasas_fire_cmd_fusion(struct megasas_instance *instance, &instance->reg_set->inbound_low_queue_port); writel(le32_to_cpu(req_desc->u.high), &instance->reg_set->inbound_high_queue_port); + mmiowb(); spin_unlock_irqrestore(&instance->hba_lock, flags); #endif }