Changeset 35941


Ignore:
Timestamp:
2013-03-10T19:25:11+01:00 (5 years ago)
Author:
nbd
Message:

cns3xxx: fix ethernet driver memory barrier usage

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/cns3xxx/files/drivers/net/ethernet/cavium/cns3xxx_eth.c

    r35917 r35941  
    517517                buf = kzalloc(RX_SEGMENT_ALLOC_SIZE, GFP_ATOMIC); 
    518518                if (!buf) 
    519                         goto out; 
     519                        break; 
    520520 
    521521                phys = dma_map_single(NULL, buf + SKB_HEAD_ALIGN, 
     
    523523                if (dma_mapping_error(NULL, phys)) { 
    524524                        kfree(buf); 
    525                         goto out; 
     525                        break; 
    526526                } 
    527527 
    528528                desc->sdl = RX_SEGMENT_MRU; 
    529529                desc->sdp = phys; 
     530 
     531                wmb(); 
    530532 
    531533                /* put the new buffer on RX-free queue */ 
     
    544546                } 
    545547        } 
    546 out: 
     548 
    547549        rx_ring->alloc_count = received; 
    548550        rx_ring->alloc_index = i; 
     
    714716        } 
    715717 
     718        wmb(); 
    716719        enable_rx_dma(sw); 
    717720 
     
    740743                config0 |= LAST_SEGMENT; 
    741744 
    742         mb(); 
     745        wmb(); 
    743746        tx_desc->config0 = config0; 
    744747} 
     
    813816                     config0 | FIRST_SEGMENT, pmap); 
    814817 
    815         mb(); 
     818        wmb(); 
    816819 
    817820        spin_lock(&tx_lock); 
Note: See TracChangeset for help on using the changeset viewer.