Hi Jens, Jens Axboe wrote: > held! Ugh, and the request function do_cdu535_request calls > schedule_timeout with the queue lock held (that is held when that > function is entered), that is very buggy as well. Should also use > set_current_state() right above that call, not open code it (that also > misses a memory barrier). Same function also has problems with request > handling. You should kill: > > if (!(req->flags & REQ_CMD)) > continue; /* FIXME */ > > that is very broken, make that: > > if (!blk_fs_request(req)) { > end_request(req, 0); > continue; > } > > and kill these two lines: > > if (rq_data_dir(req) != READ) > panic("Unknown SONY CD cmd"); > > they are screwy too. > > Care to fix the things I outlined above? This patch I think fixes all these, doesn't it? It applies on top of my latest cli-sti-removal patch that I sent you. The only place I'm not sure is on releasing the queue lock before calling schedule_timeout. Please apply if it looks good to you. Thanks for all your help! Felipe