Skip to content
  • Alexey Brodkin's avatar
    net: designware: Fix alignment of buffer descriptors · ed102be7
    Alexey Brodkin authored
    It's important that buffer descriptors are aligned in accordance to GMAC
    data bus width (32/64/128-bit). It's safe to align to 128-bit (16-bytes)
    for every bus width type.
    
    If buffer descriptor is improperly aligned GMAC discards lower bits of
    provided address and as a result reads from improper location that
    doesn't match expected fields.
    
    Commit ef76025a
    
     "net: Multiple
    updates/enhancements to designware.c" introduced another structure
    member "link_printed" right before buffer descriptors while "padding"
    member was left untouched. This together with alignment of structure
    itself to 16-byte boundary forces buffer descriptoprs always to be
    4-byte aligned that causes driver complete disfunction if GMAC bus width
    is 64 or 128-bit.
    
    Proposed change makes sure all buffer descriptors are 16-byte (128-bit)
    aligned.
    
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
    Patch: 277902
    ed102be7