In module code:
unsigned char buf[20];
struct file *device;
device = filp_open(...);
device->f_op->read(device,buf,20,&device->f_pos);
In signature(interface) of read() of struct file, buf should came from user-space. I fed my buffer, and I get correct data from that, Is that correct? Shouldn't I provide a user-space buffer to that ?