> From: linux-rdma-owner@xxxxxxxxxxxxxxx <linux-rdma- > owner@xxxxxxxxxxxxxxx> On Behalf Of Jason Gunthorpe > > On Mon, Sep 23, 2019 at 09:36:01AM +0000, Michal Kalderon wrote: > > > > + * will use the key to retrieve information such as address to > > > > + * be mapped and how. > > > > + * > > > > + * Return: unique key or RDMA_USER_MMAP_INVALID if entry was > not > > > added. > > > > + */ > > > > +u64 rdma_user_mmap_entry_insert(struct ib_ucontext *ucontext, > > > > + struct rdma_user_mmap_entry *entry, > > > > + size_t length) > > > > > > The similarly we don't need to return a u64 here and the sort of > > > ugly RDMA_USER_MMAP_INVALID can go away > > > > So you mean add a return code here ? and on failure driver will delete > > the Allocated xx_user_mmap_entry and not store it in xx_key ? > > I'm not sure what this means > Before fixing: driver allocated rdma_user_mmap_entry, receives a key and stores The key, if the key received is INVALID the driver frees the allocated entry. Wanted to make sure I understand correctly that you're requesting I change the Function to return an error code, and on success the driver will store the pointer To the mmap_entry structure and on failure free it ? And the driver will not hold the value of the key, instead call a helper function if it is required ? Thanks, Michal > Jason