Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.
Hi, I'm using this patch and it solves problems with a Powercam HD v3.1 Thank you for the commit as soon as possible. I would be easier for libdvben50221 users. -- Ludovic -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.
Stephan Trebels wrote, On 11/02/2010 11:38 AM: > Hi Brice, > > I did not find more things to be changed, and it works fine for me now. > Given, that the responsiveness on this list is a bit underwhelming, I > wonder whether we can find someone with commit privileges, to push this > change. > Hi, I've tested this patch too and it solves problems with two different cams. (powercam v4 and cryptoworks by philips) Commiting it would be great. -- Pierre > Stephan > > On Tue, 2010-11-02 at 11:15 +0100, DUBOST Brice wrote: >> On 08/08/2010 23:53, DUBOST Brice wrote: >>> On 15/07/2010 15:20, Stephan Trebels wrote: The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish the session holding non-MMI resources if using the lowlevel interface. The session_number was recorded on open, but not freed on close (which IMO is an bug in the code, I attach the scaled down hg changeset). With this change, the SMIT CAM with a showtime card works fine according to tests so far. The effect was, that the CAM tried to constantly close and re-open the session and the LIBDVBEN50221 kept telling it, that the resource is already allocated to a different session. Additionally this caused the library to use the _old_ session number in communications with the CAM, which did not even exist anymore, so caused all writes of CA PMTs to fail with EINTR. Stephan >>> >>> Hello >>> >>> Just to inform that this patch solves problems with CAM PowerCAM v4.3, >>> so I think it can interest more people. >>> >>> Before gnutv -cammenu (and other applications using libdvben50221) was >>> returning ti;eout (-3) errors constantly after the display of the system >>> IDs. >>> >>> Now, the menu is working flawlessly >>> >>> I cannot test the descrambling for the moment but it improved quite a >>> lot the situation (communication with th CAM is now possible). >>> >>> One note concerning the patch itself, the last "else if (resource_id == >>> EN50221_APP_MMI_RESOURCEID)" is useless. >>> >>> Best regards >>> >>> >> >> >> Hello >> >> >> After more testing this Patches allow several CAM models to work and >> don't seem to make any regression. >> >> Is there anything to be improved/tested for having it included upstream ? >> >> Thank you >> >> Regards >> > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.
Hi Brice, I did not find more things to be changed, and it works fine for me now. Given, that the responsiveness on this list is a bit underwhelming, I wonder whether we can find someone with commit privileges, to push this change. Stephan On Tue, 2010-11-02 at 11:15 +0100, DUBOST Brice wrote: > On 08/08/2010 23:53, DUBOST Brice wrote: > > On 15/07/2010 15:20, Stephan Trebels wrote: > >> > >> The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish > >> the session holding non-MMI resources if using the lowlevel interface. > >> The session_number was recorded on open, but not freed on close (which > >> IMO is an bug in the code, I attach the scaled down hg changeset). With > >> this change, the SMIT CAM with a showtime card works fine according to > >> tests so far. > >> > >> The effect was, that the CAM tried to constantly close and re-open the > >> session and the LIBDVBEN50221 kept telling it, that the resource is > >> already allocated to a different session. Additionally this caused the > >> library to use the _old_ session number in communications with the CAM, > >> which did not even exist anymore, so caused all writes of CA PMTs to > >> fail with EINTR. > >> > >> Stephan > >> > > > > Hello > > > > Just to inform that this patch solves problems with CAM PowerCAM v4.3, > > so I think it can interest more people. > > > > Before gnutv -cammenu (and other applications using libdvben50221) was > > returning ti;eout (-3) errors constantly after the display of the system > > IDs. > > > > Now, the menu is working flawlessly > > > > I cannot test the descrambling for the moment but it improved quite a > > lot the situation (communication with th CAM is now possible). > > > > One note concerning the patch itself, the last "else if (resource_id == > > EN50221_APP_MMI_RESOURCEID)" is useless. > > > > Best regards > > > > > > > Hello > > > After more testing this Patches allow several CAM models to work and > don't seem to make any regression. > > Is there anything to be improved/tested for having it included upstream ? > > Thank you > > Regards > signature.asc Description: This is a digitally signed message part
Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.
On 08/08/2010 23:53, DUBOST Brice wrote: On 15/07/2010 15:20, Stephan Trebels wrote: The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish the session holding non-MMI resources if using the lowlevel interface. The session_number was recorded on open, but not freed on close (which IMO is an bug in the code, I attach the scaled down hg changeset). With this change, the SMIT CAM with a showtime card works fine according to tests so far. The effect was, that the CAM tried to constantly close and re-open the session and the LIBDVBEN50221 kept telling it, that the resource is already allocated to a different session. Additionally this caused the library to use the _old_ session number in communications with the CAM, which did not even exist anymore, so caused all writes of CA PMTs to fail with EINTR. Stephan Hello Just to inform that this patch solves problems with CAM PowerCAM v4.3, so I think it can interest more people. Before gnutv -cammenu (and other applications using libdvben50221) was returning ti;eout (-3) errors constantly after the display of the system IDs. Now, the menu is working flawlessly I cannot test the descrambling for the moment but it improved quite a lot the situation (communication with th CAM is now possible). One note concerning the patch itself, the last "else if (resource_id == EN50221_APP_MMI_RESOURCEID)" is useless. Best regards Hello After more testing this Patches allow several CAM models to work and don't seem to make any regression. Is there anything to be improved/tested for having it included upstream ? Thank you Regards -- Brice A: Yes. >Q: Are you sure? >>A: Because it reverses the logical flow of conversation. >>>Q: Why is top posting annoying in email? -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.
On 15/07/2010 15:20, Stephan Trebels wrote: The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish the session holding non-MMI resources if using the lowlevel interface. The session_number was recorded on open, but not freed on close (which IMO is an bug in the code, I attach the scaled down hg changeset). With this change, the SMIT CAM with a showtime card works fine according to tests so far. The effect was, that the CAM tried to constantly close and re-open the session and the LIBDVBEN50221 kept telling it, that the resource is already allocated to a different session. Additionally this caused the library to use the _old_ session number in communications with the CAM, which did not even exist anymore, so caused all writes of CA PMTs to fail with EINTR. Stephan Hello Just to inform that this patch solves problems with CAM PowerCAM v4.3, so I think it can interest more people. Before gnutv -cammenu (and other applications using libdvben50221) was returning ti;eout (-3) errors constantly after the display of the system IDs. Now, the menu is working flawlessly I cannot test the descrambling for the moment but it improved quite a lot the situation (communication with th CAM is now possible). One note concerning the patch itself, the last "else if (resource_id == EN50221_APP_MMI_RESOURCEID)" is useless. Best regards -- Brice A: Yes. >Q: Are you sure? >>A: Because it reverses the logical flow of conversation. >>>Q: Why is top posting annoying in email? -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[libdvben50221] stack leaks resources on non-MMI session reconnect
The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish the session holding non-MMI resources if using the lowlevel interface. The session_number was recorded on open, but not freed on close (which IMO is an bug in the code, I attach the scaled down hg changeset). With this change, the SMIT CAM with a showtime card works fine according to tests so far. The effect was, that the CAM tried to constantly close and re-open the session and the LIBDVBEN50221 kept telling it, that the resource is already allocated to a different session. Additionally this caused the library to use the _old_ session number in communications with the CAM, which did not even exist anymore, so caused all writes of CA PMTs to fail with EINTR. Stephan P.S. If there is a better place to report user-space library bugs for linuxtv, please let me know. # HG changeset patch # User Stephan Trebels # Date 1279192697 -3600 # Node ID 12928658e57ea046b35dfab485f23559b3036d42 # Parent 4ba933ff13fbd619be9bdbbf097b8dbfe0fbf679 Correctly free resources when a session is closed. This allows a CAM module to re-open a session. diff -r 4ba933ff13fb -r 12928658e57e lib/libdvben50221/en50221_stdcam_llci.c --- a/lib/libdvben50221/en50221_stdcam_llci.c Sat Jul 03 15:25:16 2010 +0200 +++ b/lib/libdvben50221/en50221_stdcam_llci.c Thu Jul 15 12:18:17 2010 +0100 @@ -374,14 +374,21 @@ } else if (resource_id == EN50221_APP_MMI_RESOURCEID) { llci->stdcam.mmi_session_number = session_number; } + break; + case S_SCALLBACK_REASON_CLOSE: + if (resource_id == EN50221_APP_MMI_RESOURCEID) { + llci->stdcam.mmi_session_number = -1; + } else if (resource_id == EN50221_APP_DATETIME_RESOURCEID) { + llci->datetime_session_number = -1; + } else if (resource_id == EN50221_APP_AI_RESOURCEID) { + llci->stdcam.ai_session_number = -1; + } else if (resource_id == EN50221_APP_CA_RESOURCEID) { + llci->stdcam.ca_session_number = -1; + } else if (resource_id == EN50221_APP_MMI_RESOURCEID) { + llci->stdcam.mmi_session_number = -1; + } break; -case S_SCALLBACK_REASON_CLOSE: -if (resource_id == EN50221_APP_MMI_RESOURCEID) { -llci->stdcam.mmi_session_number = -1; -} - -break; } return 0; } signature.asc Description: This is a digitally signed message part