>>> On 31.03.14 at 12:08, <[email protected]> wrote:
> It need to free dev_entry when it failed to assign to a new
> slot on the virtual PCI bus.
>
> smatch says:
> drivers/xen/xen-pciback/vpci.c:142 __xen_pcibk_add_pci_dev() warn:
> possible memory leak of 'dev_entry'
>
> Signed-off-by: Daeseok Youn <[email protected]>
Reviewed-by: Jan Beulich <[email protected]>
albeit the solution is not ideal:
> --- a/drivers/xen/xen-pciback/vpci.c
> +++ b/drivers/xen/xen-pciback/vpci.c
> @@ -130,6 +130,7 @@ static int __xen_pcibk_add_pci_dev(struct
> xen_pcibk_device *pdev,
> err = -ENOMEM;
> xenbus_dev_fatal(pdev->xdev, err,
> "No more space on root virtual PCI bus");
> + kfree(dev_entry);
>
> unlock:
> mutex_unlock(&vpci_dev->lock);
The kfree() invocation would better be placed outside the locked
region (e.g. in an else to the "if (!err)" a little further down).
Jan
2014-04-01 16:23 GMT+09:00 Jan Beulich <[email protected]>:
>>>> On 31.03.14 at 12:08, <[email protected]> wrote:
>
>> It need to free dev_entry when it failed to assign to a new
>> slot on the virtual PCI bus.
>>
>> smatch says:
>> drivers/xen/xen-pciback/vpci.c:142 __xen_pcibk_add_pci_dev() warn:
>> possible memory leak of 'dev_entry'
>>
>> Signed-off-by: Daeseok Youn <[email protected]>
>
> Reviewed-by: Jan Beulich <[email protected]>
>
> albeit the solution is not ideal:
>
>> --- a/drivers/xen/xen-pciback/vpci.c
>> +++ b/drivers/xen/xen-pciback/vpci.c
>> @@ -130,6 +130,7 @@ static int __xen_pcibk_add_pci_dev(struct
>> xen_pcibk_device *pdev,
>> err = -ENOMEM;
>> xenbus_dev_fatal(pdev->xdev, err,
>> "No more space on root virtual PCI bus");
>> + kfree(dev_entry);
>>
>> unlock:
>> mutex_unlock(&vpci_dev->lock);
>
> The kfree() invocation would better be placed outside the locked
> region (e.g. in an else to the "if (!err)" a little further down).
You're right.
I will change my patch as your comment and send it again.
Thanks for review.
Daeseok Youn
>
> Jan
>