On Sun, Jan 06, 2019 at 10:08:20AM +0200, Leon Romanovsky wrote: > > > I wanted, but didn't find proper API for that in include/linux/xarray.h. > > > > Use xa_alloc > > I considered it, but it didn't play well with current IB/core code. > > We are performing allocation of IDs in the begging of all ib_alloc_XXX() > functions, while adding to restrack DB after successful return from > those functions in central place, applicable for whole stack. You'd need a multi-state flow where the core code did the 'add' but that doesn't do everything until the driver assigns an ID to the restrack object.. non-id objects would live in some purgatory where they can't be searched, but otherwise work OK. This is possibly a simpler patch flow process than updating every driver at once in a giant single patch.. Jason