>> diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
>> index 7ae2ced..71e901d 100644
>> --- a/drivers/media/rc/redrat3.c
>> +++ b/drivers/media/rc/redrat3.c
>> @@ -723,10 +723,10 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, 
>> unsigned *txbuf,
>>  {
>>      struct redrat3_dev *rr3 = rcdev->priv;
>>      struct device *dev = rr3->dev;
>> -    struct redrat3_irdata *irdata = NULL;
>> +    struct redrat3_irdata *irdata;
>>      int ret, ret_len;
>>      int lencheck, cur_sample_len, pipe;
>> -    int *sample_lens = NULL;
>> +    int *sample_lens;
>>      u8 curlencheck;
>>      unsigned i, sendbuf_len;
>>  
>> @@ -747,7 +747,7 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, 
>> unsigned *txbuf,
>>      irdata = kzalloc(sizeof(*irdata), GFP_KERNEL);
>>      if (!irdata) {
>>              ret = -ENOMEM;
>> -            goto out;
>> +            goto free_sample;
>>      }
>>  
>>      /* rr3 will disable rc detector on transmit */
>> @@ -776,7 +776,7 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, 
>> unsigned *txbuf,
>>                              curlencheck++;
>>                      } else {
>>                              ret = -EINVAL;
>> -                            goto out;
>> +                            goto reset_member;
>>                      }
>>              }
>>              irdata->sigdata[i] = lencheck;
>> @@ -811,14 +811,12 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, 
>> unsigned *txbuf,
>>              dev_err(dev, "Error: control msg send failed, rc %d\n", ret);
>>      else
>>              ret = count;
>> -
>> -out:
>> -    kfree(irdata);
>> -    kfree(sample_lens);
>> -
>> +reset_member:
>>      rr3->transmitting = false;
>>      /* rr3 re-enables rc detector because it was enabled before */
>> -
>> +    kfree(irdata);
>> +free_sample:
>> +    kfree(sample_lens);
> 
> In this error path, rr3->transmitting is not set to false

Can it be that this reset is not needed because it should have still got this 
value already
in the software refactoring I proposed here?


> so now the driver will never allow you transmit again.

I have got an other impression.


> Also this patch does not apply against latest.

Do you want that I rebase my update suggestion for this software module on a 
published commit
that is more recent than 2016-09-22 (d6ae162bd13998a6511e5efbc7c19ab542ba1555 
for example)?

Regards,
Markus

Reply via email to