I am building my SLES 12 driver (block device driver) with 3.x kernel on SLES 12 SP2 which has kernel version 4.4.2 . Now I am facing problem with few things:
struct bvec_merge_data
is not available in kernel 4.3.0 onwards in include/linux/blkdev.h
struct bvec_merge_data { struct block_device *bi_bdev;
sector_t bi_sector;
unsigned bi_size;
unsigned long bi_rw; };from 4.2.8 onward this funtion pointer is not present. What might be the alternative method is provided in 4.3 or higher versions.
typedef int (merge_bvec_fn) (struct request_queue *, struct bvec_merge_data *, struct bio_vec *);
- In the request_queue structure the below structure elements are removed form 4.2.8 where these elemments are handled struct request_queue {
unprep_rq_fn *unprep_rq_fn;
merge_bvec_fn *merge_bvec_fn;
Any idea where can I look for these changes and and any alternative for those?