On Wed, Jun 08, 2005 at 11:56:24AM +0200, Dr. Werner Fink wrote: > On Tue, Jun 07, 2005 at 09:53:55PM +0200, Wolfgang Rohdewald wrote: > > On Dienstag 07 Juni 2005 21:04, Oliver Endriss wrote: > > > If I understood this -ERESTARTSYS thing correctly, the interrupted ioctl > > > will be automagically restarted when the user space signal handler has > > > completed. > > > > > > Signals can occur anytime, so the driver is broken and has to be fixed. > > > > > > The easiest and most robust fix would be to abort OSDSetBlock and > > > restart from the beginning. Can we tell the firmware to abort the > > > current bitmap transfer? > > > > My idea would be: on entry of OSDSetBlock: if there is a current transfer, > > wait for it to finish, call ReleaseBitmap and start all over. > > This does not work. The OSD commands are queued by the > firmware upto the point where the data load is done. I think it does. "wait for current transfer to finish" just waits for the fw to ack to last DMA, ReleaseBitmap() then aborts the upload (this wasn't intended, hence the "paranoia" comment in the fw source in bitmap_loading_finished()), but it should work nevertheless. Johannes