Could someone provide a replacement for kmap_load_page(page) or kmap_atomic(page) so that page memory can be read with an offset, i.e. how can the following be done in the BPF program?
struct request *req;
struct bio *bio = req->bio;
struct bio_vec *bi_ivec = bio->bio->bi_io_vec;
void *page;
page = kmap_local_page(bi_ivec->bv_page);
bpf_probe_read(&curr_io->data, bi_ivec->bv_len,
page + bi_ivec->bv_offset);
kunmap(bi_ivec->bv_page);
Above code gives error currently because I think kernel code can not be called from a BPF program just by including the header file.