On 1/12/2017 9:17 AM, Jerin Jacob wrote:
<...>
>  #define B_CP_DB_REARM(cpr, raw_cons)                                 \
> -             (*(uint32_t *)((cpr)->cp_doorbell) = (DB_CP_REARM_FLAGS | \
> -                             RING_CMP(cpr->cp_ring_struct, raw_cons)))
> +     rte_write32((DB_CP_REARM_FLAGS |                                \

Just asking, can this be rte_write32_relaxed() since there is explicit
memory barrier defined for B_CP_DIS_DB but not for here?

> +                 RING_CMP(((cpr)->cp_ring_struct), raw_cons)),       \
> +                 ((cpr)->cp_doorbell))
>  
>  #define B_CP_DIS_DB(cpr, raw_cons)                                   \
> -             rte_smp_wmb();                                          \
> -             (*(uint32_t *)((cpr)->cp_doorbell) = (DB_CP_FLAGS |     \
> -                             RING_CMP(cpr->cp_ring_struct, raw_cons)))
> +     rte_write32((DB_CP_FLAGS |                                      \
> +                 RING_CMP(((cpr)->cp_ring_struct), raw_cons)),       \
> +                 ((cpr)->cp_doorbell))
>  

<...>

> @@ -80,11 +82,12 @@ static int bnxt_hwrm_send_message_locked(struct bnxt *bp, 
> void *msg,
>       for (; i < bp->max_req_len; i += 4) {
>               bar = (uint8_t *)bp->bar0 + i;
>               *(volatile uint32_t *)bar = 0;

Should this line be removed?

> +             rte_write32(0, bar);
>       }
>  
>       /* Ring channel doorbell */
>       bar = (uint8_t *)bp->bar0 + 0x100;
> -     *(volatile uint32_t *)bar = 1;
> +     rte_write32(1, bar);
>  
>       /* Poll for the valid bit */
>       for (i = 0; i < HWRM_CMD_TIMEOUT; i++) {
<...>

Reply via email to