Hi Jens, On Thu, 11 Jan 2007 09:34:31 +0100, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote: > > +static int cdrom_newpc_intr_dma_callback(void *arg) > > +{ > > + void **argv = (void **)arg; > > + struct request *rq = (struct request *)*argv++; > > + ide_drive_t *drive = (ide_drive_t *)argv++; > > + spinlock_t *ide_lock = (spinlock_t *)argv; > > + > > + rq->data_len = 0; > > + > > + cdrom_newpc_intr_callback_common(rq, drive, ide_lock); > > + > > + return 0; > > +} > > And this is why, down right horrible. The callback should be correctly > typed, pass down a request pointer ALWAYS. OK. I think everything such callbacks need can be obtained through struct request. (e.g. ide_drive_t can get by rq->q->queuedata and ide_lock can get by rq->q->queue_lock.) So I'll change the callback to pass a pointer to the request instead of void *. Thanks, Kiyoshi Ueda -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel