> driver_bar(file, struct video_bar *b) > { > struct file_data *fh = file->priv_data; > struct driver_data *drv = fh->driver_data; Why do you need those when you can pass them in ? > I fail to see why the second is much better. The somewhat > ugly void pointer for arg is hidden in the core code, but > that's all. Is that really worth the effort? Im not sure, Linus thinks yes