diff mbox

[v2] megaraid_sas: add an i/o barrier

Message ID 56AF67B4.2010702@redhat.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Tomas Henzl Feb. 1, 2016, 2:12 p.m. UTC
A barrier should be added to ensure proper
ordering of memory mapped writes.

V2: - added the barrier also to megasas_fire_cmd_skinny,
as suggested by Kashyap Desai

Signed-off-by: Tomas Henzl <thenzl@redhat.com>
---
 drivers/scsi/megaraid/megaraid_sas_base.c   | 1 +
 drivers/scsi/megaraid/megaraid_sas_fusion.c | 1 +
 2 files changed, 2 insertions(+)

Comments

Greg KH Feb. 1, 2016, 8:41 p.m. UTC | #1
On Mon, Feb 01, 2016 at 03:12:04PM +0100, Tomas Henzl wrote:
> A barrier should be added to ensure proper
> ordering of memory mapped writes.
> 
> V2: - added the barrier also to megasas_fire_cmd_skinny,
> as suggested by Kashyap Desai
> 
> Signed-off-by: Tomas Henzl <thenzl@redhat.com>
> ---
>  drivers/scsi/megaraid/megaraid_sas_base.c   | 1 +
>  drivers/scsi/megaraid/megaraid_sas_fusion.c | 1 +
>  2 files changed, 2 insertions(+)

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read Documentation/stable_kernel_rules.txt
for how to do this properly.

</formletter>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin K. Petersen Feb. 10, 2016, 5:25 p.m. UTC | #2
>>>>> "Tomas" == Tomas Henzl <thenzl@redhat.com> writes:

Tomas> A barrier should be added to ensure proper ordering of memory
Tomas> mapped writes.

Tomas> V2: - added the barrier also to megasas_fire_cmd_skinny, as
Tomas> suggested by Kashyap Desai

Sumit, Kashyap: Please review this patch.
Kashyap Desai Feb. 10, 2016, 6:56 p.m. UTC | #3
> -----Original Message-----
> From: Martin K. Petersen [mailto:martin.petersen@oracle.com]
> Sent: Wednesday, February 10, 2016 10:55 PM
> To: Tomas Henzl
> Cc: 'linux-scsi@vger.kernel.org'; Sumit.Saxena@avagotech.com; Desai,
> Kashyap; Uday Lingala; stable@vger.kernel.org
> Subject: Re: [PATCH v2] megaraid_sas: add an i/o barrier
>
> >>>>> "Tomas" == Tomas Henzl <thenzl@redhat.com> writes:
>
> Tomas> A barrier should be added to ensure proper ordering of memory
> Tomas> mapped writes.
>
> Tomas> V2: - added the barrier also to megasas_fire_cmd_skinny, as
> Tomas> suggested by Kashyap Desai

Reviewed-by: Kashyap Desai <kashyap.desai@broadcom.com>
Acked-by: Kashyap Desai <kashyap.desai@broadcom.com>

>
> Sumit, Kashyap: Please review this patch.
>
> --
> Martin K. Petersen	Oracle Linux Engineering
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin K. Petersen Feb. 11, 2016, 12:17 a.m. UTC | #4
>>>>> "Tomas" == Tomas Henzl <thenzl@redhat.com> writes:

Tomas> A barrier should be added to ensure proper ordering of memory
Tomas> mapped writes.

Applied to 4.6/scsi-queue.
diff mbox

Patch

diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index cc92c8198d..9f7689515c 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -749,6 +749,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 d9d0029fb1..98a848bdfd 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
 }