Skip to content
  • Grzegorz Daniluk's avatar
    modules/swcore: bugfix in allocator, read new free page sooner when there are... · b1ff9b89
    Grzegorz Daniluk authored
    modules/swcore: bugfix in allocator, read new free page sooner when there are again some pages available
    
    This one fixes the situation when allocFSM in one of the input blocks requests
    usecount set and new allocation (S_PCKSTART_SET_AND_REQ state) while out_nomem
    is just before the transition from high to low. In that case arbiter grants
    access to this Input Block request (because setting usecount does not require
    out_nomem to be '0'). Then, we expect first allocation immediatelly after
    out_nomem is 0, but reading next page happens only when out_nomem_d1 is '0'.
    That's too late and the same page address was given to two subsequent allocation
    requests.
    The fix forces q_read aligned to out_nomem_d0 to read earlier next allocation
    address. In addition, _done_ for allocation is now generated only if there was a
    valid page address read in advance from the memory (to prevent double
    allocations of the same page).
    b1ff9b89