Skip to content
  • Mintz, Yuval's avatar
    qede: Correctly map aggregation replacement pages · 9512925a
    Mintz, Yuval authored
    Driver allocates replacement buffers before-hand to make
    sure whenever an aggregation begins there would be a replacement
    for the Rx buffers, as we can't release the buffer until
    aggregation is terminated and driver logic assumes the Rx rings
    are always full.
    
    For every other Rx page that's being allocated [I.e., regular]
    the page is being completely mapped while for the replacement
    buffers only the first portion of the page is being mapped.
    This means that:
      a. Once replacement buffer replenishes the regular Rx ring,
    assuming there's more than a single packet on page we'd post unmapped
    memory toward HW [assuming mapping is actually done in granularity
    smaller than page].
      b. Unmaps are being done for the entire page, which is incorrect.
    
    Fixes: 55482edc
    
     ("qede: Add slowpath/fastpath support and enable hardware GRO")
    Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9512925a