2011-05-23 13:55:17

by Mike McCormack

[permalink] [raw]
Subject: [PATCH 7/8] rtlwifi: Use write barrier when assigning ownership

Make sure all updates to a descriptor are flushed to memory
before assigning ownship to hardware.

Signed-off-by: Mike McCormack <[email protected]>
---
drivers/net/wireless/rtlwifi/rtl8192ce/trx.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
index 54b2bd5..06d9ddb 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
@@ -932,6 +932,7 @@ void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
if (istx == true) {
switch (desc_name) {
case HW_DESC_OWN:
+ wmb();
SET_TX_DESC_OWN(pdesc, 1);
break;
case HW_DESC_TX_NEXTDESC_ADDR:
@@ -945,6 +946,7 @@ void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
} else {
switch (desc_name) {
case HW_DESC_RXOWN:
+ wmb();
SET_RX_DESC_OWN(pdesc, 1);
break;
case HW_DESC_RXBUFF_ADDR:
--
1.7.4.1




2011-05-23 19:55:34

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 7/8] rtlwifi: Use write barrier when assigning ownership

On 05/23/2011 08:54 AM, Mike McCormack wrote:
> Make sure all updates to a descriptor are flushed to memory
> before assigning ownship to hardware.
>
> Signed-off-by: Mike McCormack<[email protected]>
> ---
> drivers/net/wireless/rtlwifi/rtl8192ce/trx.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
> index 54b2bd5..06d9ddb 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
> @@ -932,6 +932,7 @@ void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
> if (istx == true) {
> switch (desc_name) {
> case HW_DESC_OWN:
> + wmb();
> SET_TX_DESC_OWN(pdesc, 1);
> break;
> case HW_DESC_TX_NEXTDESC_ADDR:
> @@ -945,6 +946,7 @@ void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
> } else {
> switch (desc_name) {
> case HW_DESC_RXOWN:
> + wmb();
> SET_RX_DESC_OWN(pdesc, 1);
> break;
> case HW_DESC_RXBUFF_ADDR:

A similar change needs to be applied to rtl8192se. I'll take care of it.

Signed-off-by: Larry Finger <[email protected]>
---

Larry