Linux DVB frontend issue
A message that is not in the archive (sent off-list or not yet received): [email protected]
Dear Mauro,
We are using the Linux DVB frontend module on our platform and we are facing an issue when having concurrent calls with FE_SET_FRONTEND and FE_GET_FRONTEND ioctl.
Issue is that both ioctls are using the same dtv_property_cache buffer. If a FE_SET_FRONTEND ioctl is interrupted by a FE_GET_FRONTEND then the dtv_property_cache is overwritten with the result of the FE_GET_FRONTEND. When the FE_SET_FRONTEND operation resumes, the dtv_property_cache may not be accurate anymore.
Did you already face this issue?
Up to now I tried, without success, to think on a fix that does not impact too much the existing code.
One solution could be to have one cache for reading properties and one other cache for writing properties, but this will impact all the drivers below the DVB frontend.
Do you see another less impacting solution?
Best regards,
Romain Baeriswyl
Abilis Systems
3, chemin Pré Fleuri
CH-1228 Plan-Les-Ouates
Geneva
Hi Romain,
Em Mon, 26 May 2014 16:17:48 +0200 (CEST) Romain Baeriswyl <[email protected]> escreveu:
Quoted 6 lines
Dear Mauro,
We are using the Linux DVB frontend module on our platform and we are facing an issue when having concurrent calls with
FE_SET_FRONTENDandFE_GET_FRONTENDioctl.
Quoted 7 lines
Issue is that both ioctls are using the same
dtv_property_cachebuffer. If aFE_SET_FRONTENDioctl is interrupted by aFE_GET_FRONTENDthen thedtv_property_cacheis overwritten with the result of theFE_GET_FRONTEND. When theFE_SET_FRONTENDoperation resumes, thedtv_property_cachemay not be accurate anymore.Did you already face this issue?
No. Never tried to do it in practice, but I don't think it is even possible to have two concurrent ioctl calls ATM, because there is a semaphore at dvb_frontend_ioctl() preventing it.
Quoted 8 lines
Up to now I tried, without success, to think on a fix that does not impact too much the existing code.
One solution could be to have one cache for reading properties and one other cache for writing properties, but this will impact all the drivers below the DVB frontend.
Do you see another less impacting solution?
Are you sure that the corruption you're seeing is not at userspace sharing the same buffer for both ioctl's?
Quoted 17 lines
Best regards,
Romain Baeriswyl
Abilis Systems
3, chemin Pré Fleuri
CH-1228 Plan-Les-Ouates
Geneva--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html