On 10/9/2019 9:41 AM, Ferruh Yigit wrote:
> On 9/19/2019 12:01 PM, Pallantla Poornima wrote:
>> One issue caught by Coverity 340835
>> *unlock: axgbe_phy_set_mode unlocks pdata->phy_mutex
>> *double_unlock: axgbe_phy_sfp_detect unlocks pdata->phy_mutex
>> while it is unlocked.
>>
>> In axgbe_phy_sfp_detect()/axgbe_phy_set_redrv_mode(),
>> axgbe_phy_get_comm_ownership() and axgbe_phy_put_comm_ownership()
>> are invoked subsequently.
>>
>> Currently in axgbe_phy_get_comm_ownership(), during one of the case
>> 'phy_data->comm_owned' is not protected and before returning 0,
>> lock is not called and unlock is called in axgbe_phy_put_comm_ownership()
>> directly which is incorrect.
>>
>> Ideally, the variable 'phy_data->comm_owned' needs to be protected.
>> During success scenario, lock is called in axgbe_phy_get_comm_ownership()
>> followed by unlock in axgbe_phy_put_comm_ownership().
>> In failure case, unlock is invoked in axgbe_phy_get_comm_ownership()
>> itself appropriately.
>>
>> The fix is to protect 'phy_data->comm_owned' in the identified case
>> ensuring locks/unlocks properly exist.
>>
>> Coverity issue: 340835
>> Fixes: a5c7273771 ("net/axgbe: add phy programming APIs")
>> Cc: sta...@dpdk.org
>>
>> Signed-off-by: Pallantla Poornima <pallantlax.poorn...@intel.com>
> 
> lgtm, 'axgbe_phy_put_comm_ownership()' expects 
> 'axgbe_phy_get_comm_ownership()'
> gets the lock. Thanks for fixing the coverity issue.
> 
> But still, Ravi can you please review/test the patch?
> 

If there is no objection the patch will be merged soon.

Reply via email to