On Dienstag 07 Juni 2005 17:44, Johannes Stezenbach wrote: > Why don't you just fix the problem with the b0rked error > handling in Load/BlitBitmap and be done with it? OK, here comes my first try. I hope this propagates all ERESTARTSYS, not only in OSDSetBlock yesterday I said these problems do not happen with a non preempting kernel. Wrong, they do happen, but only rarely. about OSDSetBlock: If it is interrupted, it starts all over again until it can finish. I don't know how big the risk of endless trying is. Actually I think it can be neglected. Otherwise, possible solutions: 1. remember how much has been done: add a counter to struct av7110 which is incremented in relevant places. On next try, dry-run these places (i.e. do not pass anything to the card). 2. at the second time, use wait_event instead of wait_event_interruptible If OSDSetBlock times out, -ETIMEDOUT is returned. Most other timeouts will return -1. Could this be made more consistent? Also, the return codes in <dvb/osd.h> don't match what the driver does. I don't know what should be done. -- Wolfgang -------------- next part -------------- A non-text attachment was scrubbed... Name: restart.patch Type: text/x-diff Size: 11118 bytes Desc: not available Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20050608/1581a7b9/restart.bin