NAK.
On Tue, Jul 10, 2018 at 2:56 AM Wei Wang <wei.w.wang@xxxxxxxxx> wrote:
+Stop this garbage.
+ buf_page = list_first_entry_or_null(pages, struct page, lru);
+ if (!buf_page)
+ return -EINVAL;
+ buf = (__le64 *)page_address(buf_page);
Why the hell would you pass in some crazy "liost of pages" that uses
that lru list?
That's just insane shit.
Just pass in a an array to fill in. No idiotic games like this with
odd list entries (what's the locking?) and crazy casting to
So if you want an array of page addresses, pass that in as such. If
you want to do it in a page, do it with
u64 *array = page_address(page);
int nr = PAGE_SIZE / sizeof(u64);
and now you pass that array in to the thing. None of this completely
insane crazy crap interfaces.
Plus, I still haven't heard an explanation for why you want so many
pages in the first place, and why you want anything but MAX_ORDER-1.