On 01/16/2015 12:29 PM, Haim Daniel wrote:
> It looks that "if (try_count < 20) continue" jumps to end of the  do ...
> while(0) loop and goes out.

Ah, you are right. But that is obviously not what was intended, so just removing
it is not a proper 'fix'.

Mike, can you take a look at this?

Regards,

        Hans

> 
> --hd.
> On Fri, 2015-01-16 at 11:57 +0100, Hans Verkuil wrote:
>> On 01/05/2015 11:38 PM, Haim Daniel wrote:
>>> In case a command is timed out, current flow sets the retry_flag
>>> and does nothing.
>>
>> Really? That's not how I read the code: it retries up to 20 times before
>> bailing out.
>>
>> Perhaps you missed the "if (try_count < 20) continue;" line?
>>
>> Regards,
>>
>>      Hans
>>
>>>
>>> Signed-off-by: Haim Daniel <haim.dan...@gmail.com>
>>> ---
>>>  drivers/media/usb/pvrusb2/pvrusb2-encoder.c | 15 +--------------
>>>  1 file changed, 1 insertion(+), 14 deletions(-)
>>>
>>> diff --git a/drivers/media/usb/pvrusb2/pvrusb2-encoder.c 
>>> b/drivers/media/usb/pvrusb2/pvrusb2-encoder.c
>>> index f7702ae..02028aa 100644
>>> --- a/drivers/media/usb/pvrusb2/pvrusb2-encoder.c
>>> +++ b/drivers/media/usb/pvrusb2/pvrusb2-encoder.c
>>> @@ -145,8 +145,6 @@ static int pvr2_encoder_cmd(void *ctxt,
>>>                         u32 *argp)
>>>  {
>>>     unsigned int poll_count;
>>> -   unsigned int try_count = 0;
>>> -   int retry_flag;
>>>     int ret = 0;
>>>     unsigned int idx;
>>>     /* These sizes look to be limited by the FX2 firmware implementation */
>>> @@ -213,8 +211,6 @@ static int pvr2_encoder_cmd(void *ctxt,
>>>                     break;
>>>             }
>>>  
>>> -           retry_flag = 0;
>>> -           try_count++;
>>>             ret = 0;
>>>             wrData[0] = 0;
>>>             wrData[1] = cmd;
>>> @@ -245,11 +241,9 @@ static int pvr2_encoder_cmd(void *ctxt,
>>>                     }
>>>                     if (rdData[0] && (poll_count < 1000)) continue;
>>>                     if (!rdData[0]) {
>>> -                           retry_flag = !0;
>>>                             pvr2_trace(
>>>                                     PVR2_TRACE_ERROR_LEGS,
>>> -                                   "Encoder timed out waiting for us"
>>> -                                   "; arranging to retry");
>>> +                                   "Encoder timed out waiting for us");
>>>                     } else {
>>>                             pvr2_trace(
>>>                                     PVR2_TRACE_ERROR_LEGS,
>>> @@ -269,13 +263,6 @@ static int pvr2_encoder_cmd(void *ctxt,
>>>                     ret = -EBUSY;
>>>                     break;
>>>             }
>>> -           if (retry_flag) {
>>> -                   if (try_count < 20) continue;
>>> -                   pvr2_trace(
>>> -                           PVR2_TRACE_ERROR_LEGS,
>>> -                           "Too many retries...");
>>> -                   ret = -EBUSY;
>>> -           }
>>>             if (ret) {
>>>                     del_timer_sync(&hdw->encoder_run_timer);
>>>                     hdw->state_encoder_ok = 0;
>>>
>>
> 
> 

--
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

Reply via email to