Apperent Bug In Kernel 2.2.5-13

From: gmccrea@uswest.net
Date: Sat Apr 22 2000 - 00:54:30 EST


I am using Redhat 6.0 with kernel release 2.2.5-13

I have acquired an VME bus loadable char device module
driver that utilizes standard ANSI C file management calls
i.e. open(), close() ioctl() and close() to manage the VME
bus as a device.

After much debugging the module driver with printk calls;
when the close(fd) function in the user code is called the
kernel does not call the drivername_release() function, it
is calling the drivername_flush(). The file_operations
structure located in fs.h shows flush() located between
open() and close().

It should be noted the VME module did not have a drivername
flush() function and close(fd) was returning a, zero meaning
no errors. The file_operations struct drivername_fops used
a NULL character placed between the open and release fields
as done in many examples. I ended up writing a stub
function for drivername_flush() and put a printk in it and
found out it was being called when close was called.

I have scratched the hard disk and rebuilt the kernel to no
avail.

As I understand somewhere between kernel 2.0.xx and 2.1xx
this structure was changed too the current format used
kernel 2.2.5-13.

Thus am I dealing with a bad kernel version, a kernel bug of
some slight of hand I don't understand.

Thank you for your help,

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:20 EST