On Wed, 2019-09-25 at 16:48 +0300, Jarkko Sakkinen wrote: [...] > + data_page = alloc_page(GFP_HIGHUSER); > + if (!data_page) > + return -ENOMEM; > + > + data_ptr = kmap(data_page); I don't think this is such a good idea. On 64 bit it's no different from GFP_KERNEL and on 32 bit where we do have highmem, kmap space is at a premium, so doing a highmem allocation + kmap is more wasteful of resources than simply doing GFP_KERNEL. In general, you should only do GFP_HIGHMEM if the page is going to be mostly used by userspace, which really isn't the case here. James