> + * @lru: The LRU from which pages are reclaimed. > + * @nr_to_scan: Pointer to the target number of pages to scan, must be less > than > + * SGX_NR_TO_SCAN. > + * Return: Number of pages reclaimed. > */ > -static void sgx_reclaim_pages(void) > +unsigned int sgx_reclaim_pages(struct sgx_epc_lru_list *lru, unsigned > +int *nr_to_scan) Since the function is now returning the number of reclaimed pages, why do you need to make the @nr_to_scan as pointer? Cannot the caller just adjust @nr_to_scan when calling this function based on how many pages have reclaimed? I am not even sure whether you need @nr_to_scan at all because as we discussed I think it's just extremely rare you need to pass "< SGX_NR_TO_SCAN" to this function. Even if you need, you can always choose to try to reclaim SGX_NR_TO_SCAN pages. [...] > > +static void sgx_reclaim_pages_global(void) { > + unsigned int nr_to_scan = SGX_NR_TO_SCAN; > + > + sgx_reclaim_pages(&sgx_global_lru, &nr_to_scan); } > + I think this function doesn't look sane at all when you have @nr_to_scan being a pointer? I am also not sure whether this function is needed -- if we don't add @nr_to_scan to sgx_reclaim_pages(), then this function is basically: sgx_reclaim_pages(&sgx_global_lru);