[PATCH 3/3] ath10k: add explicit memory barrier for ring index update
Kalle Valo
kvalo at qca.qualcomm.com
Fri May 16 05:32:11 PDT 2014
Michal Kazior <michal.kazior at tieto.com> writes:
> Avery reported he had some issues related to
> instructions being re-ordered on his ARM test
> system resulting in firmware crashes.
>
> This makes sure that data is in place before CE
> ring index is updated telling firmware it can
> fetch the data.
>
> Reported-By: Avery Pennarun <apenwarr at gmail.com>
> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
> ---
[...]
> --- a/drivers/net/wireless/ath/ath10k/ce.c
> +++ b/drivers/net/wireless/ath/ath10k/ce.c
> @@ -63,6 +63,7 @@ static inline void ath10k_ce_dest_ring_write_index_set(struct ath10k *ar,
> u32 ce_ctrl_addr,
> unsigned int n)
> {
> + mb();
> ath10k_pci_write32(ar, ce_ctrl_addr + DST_WR_INDEX_ADDRESS, n);
> }
>
> @@ -76,6 +77,7 @@ static inline void ath10k_ce_src_ring_write_index_set(struct ath10k *ar,
> u32 ce_ctrl_addr,
> unsigned int n)
> {
> + mb();
> ath10k_pci_write32(ar, ce_ctrl_addr + SR_WR_INDEX_ADDRESS, n);
> }
I see two new checkpatch warnings:
drivers/net/wireless/ath/ath10k/ce.c:66: CHECK: memory barrier without comment
drivers/net/wireless/ath/ath10k/ce.c:80: CHECK: memory barrier without comment
--
Kalle Valo
More information about the ath10k
mailing list