lkml.org 
[lkml]   [2018]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 458/496] net: stmmac: ensure that the device has released ownership before reading data
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Niklas Cassel <niklas.cassel@axis.com>

    [ Upstream commit a6b25da5e7ba212af5826a662e6a035a79bffabd ]

    According to Documentation/memory-barriers.txt, we need to use a
    dma_rmb() after reading the status/own bit, to ensure that all
    descriptor fields are read after reading the own bit.

    This way, we ensure that the DMA engine is done with the DMA
    descriptor before we read the other descriptor fields, e.g. reading
    the tx hardware timestamp (if PTP is enabled).

    Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 +++++
    1 file changed, 5 insertions(+)

    --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
    +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
    @@ -1829,6 +1829,11 @@ static void stmmac_tx_clean(struct stmma
    if (unlikely(status & tx_dma_own))
    break;

    + /* Make sure descriptor fields are read after reading
    + * the own bit.
    + */
    + dma_rmb();
    +
    /* Just consider the last segment and ...*/
    if (likely(!(status & tx_not_ls))) {
    /* ... verify the status error condition */

    \
     
     \ /
      Last update: 2018-05-28 13:03    [W:4.016 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site