I'm a bit closer to working UDF writing on Yamaha CRW2100S. I've added explicit cache syncing to the beginning of pkt_gather_data and now I'm able to mount a disc, do a bit of writing and umount it cleanly. If I write too much, it fails: pkt_request: cmd=1, rq=c49f3b40, rq->sector=18304, rq->nr_sectors=128 wake up wait queue handle_queue do_request: bh=7864335, nr_sectors=128, size=128, cmd=1 __pkt_inject_request: list_empty == 1, size=4, cmd=1 (scsi0:A:3:0): data overrun detected in Data-in phase. Tag == 0x3. (scsi0:A:3:0): Have seen Data Phase. Length = 2048. NumSGs = 1. sg[0] - Addr 0x04836000 : Length 2048 (scsi0:A:3:0): data overrun detected in Data-in phase. Tag == 0x3. (scsi0:A:3:0): Have seen Data Phase. Length = 2048. NumSGs = 1. sg[0] - Addr 0x04836000 : Length 2048 (scsi0:A:3:0): data overrun detected in Data-in phase. Tag == 0x3. (scsi0:A:3:0): Have seen Data Phase. Length = 2048. NumSGs = 1. sg[0] - Addr 0x04836000 : Length 2048 Does anybody know what does it mean? Where can be the problem now? To Petr O.: Will you patch the pktdcvd.c to pkt_adjust_speed(248) instead of 255? It makes a huge difference for me and presumably for others. Petr