On 12/28/21 3:37 PM, Jarkko Sakkinen wrote: > On Mon, Dec 20, 2021 at 09:46:40AM -0800, Kristen Carlson Accardi wrote: >> +int sgx_encl_lookup_backing(struct sgx_encl *encl, unsigned long page_index, >> + struct sgx_backing *backing) >> +{ >> + return sgx_encl_get_backing(encl, page_index, backing); >> +} > Is this wrapping necessary? Yes, I think so. > Also, there is ambiguous terminology: > > 1. Local function: "get_backing" > 2. Exported function: "lookup_backing" I'm not sure what you're getting at. There are three important things that you do with backing storage: 1. Allocate it 2. Find it 3. De-allocate (free) it Right now, the code has a pattern where it does: get_backing(); // do something put_backing(); That sure as heck looks like it is allocating and freeing it. But, it's actually *maybe* doing an allocation. The "find it" path also looks *EXACTLY* the same as the actual allocation path. You might also recall that the original code didn't even *have* a (real) free path. The "wrapping" is really just naming the two different operations that use the "get" function: lookup and allocate. It's not just wrapping, it's clarify the logical behavior.