Andi Kleen wrote:
On Wed, 04 Feb 2004 14:12:45 -0800 Michael Madore <mmadore@aslab.com> wrote:
Hi,
I received the following error in the kernel log while trying to use the 3Ware command line management utility (tw_cli):
ioctl32(tw_cli:10922): Unknown cmd fd(3) cmd(0000001f){00} arg(081892d0) on /dev/twe0
The following patch against 193 adds the missing ioctls and allows the application to work. I'm not sure if this is the proper approach, but it works for all of my testing.
The problem is that the 3ware ioctls are broken. The emulation subsystem requires unique ioctl numbers (normally generated using the _IO*() macros using a subsystem ID) but they just used 1,2,3+. It may work for you here and it's fine if you don't have anything else with similarly broken ioctl numbers, but I cannot add this to the main kernel.
Ok, thanks for the explanation. I was wondering why there where no _IO*() macros in the driver.
I hear 3ware are working on a 64bit version of the utility so that may eventually fix it. Also you can use the "3dmd" tool, which uses scsi generic and should work without emulation.
A 64 bit version would be the best solution. "3dmd" works fine, but it's nice to have a command line tool as well. Mike