Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] vfree during spin_lock hold (Was: (In)consistency of DMX/DVR buffers and OSD ioctls)



Dr. Werner Fink writes:
 >      during seeking for a better protection against dropouts of
 > of a PES filter for DMX_PES_OTHER (AC3) using DMX_OUT_TAP caused
 > by OSD popups, I've seen that within DmxDevSetBufferSize() in
 > dmxdev.c that vfree() is called within a spin_lock_irq/spin_unlock_irq
 > pair.  This seems to be a bug.  Enclosed a patch which changes this.

Correct, that is a bug.
But 

+	void *mem=buffer->data;

should be

+	void *mem=buf->data;



 > Also changed in this patch: hold spin_lock in DmxDevTSCallback()
 > during copy buffers (seems to decrease dropouts caused by other
 > activities on the system), 

OK, this also sounds fine.

Regarding the dropouts, do you really hear differences?
Do you have an SMP system?
On non-SMP systems spin_(un)lock() does nothing at all and 
cannot make a difference.


use reparent_to_init() for the
 > kernel threads "arm_mon" and "fe_thread".


For the frontend stuff this is fine, but does the ARM firmware 
reloading in case of a firmware crash still work with this patch?



Ralph


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.


Home | Main Index | Thread Index