2012-10-18 09:48:48

by Yuanhan Liu

[permalink] [raw]
Subject: [PATCH] ptp_pch: release chip->mem_base and chip->regs on error

Fix smatch warnings catched by Fengguang's 0-DAY system:
+ drivers/ptp/ptp_pch.c:641 pch_probe() warn: 'chip->mem_base' was not released on error
+ drivers/ptp/ptp_pch.c:641 pch_probe() warn: 'chip->regs' was not released on error

Cc: Richard Cochran <[email protected]>
Cc: David S. Miller <[email protected]>
Signed-off-by: Yuanhan Liu <[email protected]>
---
drivers/ptp/ptp_pch.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/ptp/ptp_pch.c b/drivers/ptp/ptp_pch.c
index e624e4d..daddd88 100644
--- a/drivers/ptp/ptp_pch.c
+++ b/drivers/ptp/ptp_pch.c
@@ -629,8 +629,10 @@ pch_probe(struct pci_dev *pdev, const struct pci_device_id *id)
chip->caps = ptp_pch_caps;
chip->ptp_clock = ptp_clock_register(&chip->caps, &pdev->dev);

- if (IS_ERR(chip->ptp_clock))
- return PTR_ERR(chip->ptp_clock);
+ if (IS_ERR(chip->ptp_clock)) {
+ ret = PTR_ERR(chip->ptp_clock);
+ goto err_ptp_clock;
+ }

spin_lock_init(&chip->register_lock);

@@ -669,6 +671,7 @@ pch_probe(struct pci_dev *pdev, const struct pci_device_id *id)

err_req_irq:
ptp_clock_unregister(chip->ptp_clock);
+err_ptp_clock:
iounmap(chip->regs);
chip->regs = 0;

--
1.7.7.6


2012-10-19 06:26:53

by Richard Cochran

[permalink] [raw]
Subject: Re: [PATCH] ptp_pch: release chip->mem_base and chip->regs on error

On Thu, Oct 18, 2012 at 05:48:52PM +0800, Yuanhan Liu wrote:
> Fix smatch warnings catched by Fengguang's 0-DAY system:
> + drivers/ptp/ptp_pch.c:641 pch_probe() warn: 'chip->mem_base' was not released on error
> + drivers/ptp/ptp_pch.c:641 pch_probe() warn: 'chip->regs' was not released on error
>
> Cc: Richard Cochran <[email protected]>
> Cc: David S. Miller <[email protected]>
> Signed-off-by: Yuanhan Liu <[email protected]>

Acked-by: Richard Cochran <[email protected]>