#include <linux/uio.h>
#include <linux/bvec.h>
#include <linux/folio_queue.h>
+#include <linux/minmax.h>
#include <kunit/test.h>
MODULE_DESCRIPTION("iov_iter testing");
static inline u8 pattern(unsigned long x)
{
- return x & 0xff;
+ return (u8)x + (u8)(x >> 8) + (u8)(x >> 16);
}
static void iov_kunit_unmap(void *data)
struct page **pages;
unsigned long got;
void *buffer;
+ unsigned int i;
pages = kzalloc_objs(struct page *, npages, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pages);
kvfree(pages);
KUNIT_ASSERT_EQ(test, got, npages);
}
+ /* Make sure that we don't get a physically contiguous buffer. */
+ for (i = 0; i < npages / 4; ++i)
+ swap(pages[i], pages[i + npages / 2]);
buffer = vmap(pages, npages, VM_MAP | VM_MAP_PUT_PAGES, PAGE_KERNEL);
if (buffer == NULL) {