Hello, here is another patch for cdu31a driver. I've modified the locking to use a semaphore (as suggested by Alan Cox), converted MODULE_PARM to module_param and also done various cleanups and formatting changes. I hope that the locking is OK - testing shows no problems - so it might be. Changing the drive speed ("eject -x 1 /dev/cdu31a") now waits on the semaphore until the drive is not in use. The "dd if=/dev/cdu31a ..." is still broken. Interrupt-driven mode is untested (there's still one cli() remaining there - any suggestions how to get rid of that?) Sorry for the attachment (Thunderbird is broken). Signed-off-by: Ondrej Zary -- Ondrej Zary