diff options
author | Rahul Ruikar <rahul.ruikar@gmail.com> | 2010-10-01 22:32:45 +0200 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2010-10-01 22:32:45 +0200 |
commit | 35ed16740c564ff092fe45804dfbbb1449f2bd7e (patch) | |
tree | 448962071cddcc52a69f00f10d92362c374b24bf /drivers/serial | |
parent | [IA64] Remove unnecessary casts of private_data in perfmon.c (diff) | |
download | linux-35ed16740c564ff092fe45804dfbbb1449f2bd7e.tar.xz linux-35ed16740c564ff092fe45804dfbbb1449f2bd7e.zip |
[IA64] ioc3_serial: release resources in error return path
In ioc3uart_probe()
resources were not released during error return path
- ports[phys_port]
Signed-off-by: Rahul Ruikar <rahul.ruikar@gmail.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/ioc3_serial.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/serial/ioc3_serial.c b/drivers/serial/ioc3_serial.c index 93de907b1208..08d77b041bd8 100644 --- a/drivers/serial/ioc3_serial.c +++ b/drivers/serial/ioc3_serial.c @@ -2017,6 +2017,7 @@ ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd) struct ioc3_port *port; struct ioc3_port *ports[PORTS_PER_CARD]; int phys_port; + int cnt; DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __func__, is, idd)); @@ -2146,6 +2147,9 @@ ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd) /* error exits that give back resources */ out4: + for (cnt = 0; cnt < phys_port; cnt++) + kfree(ports[cnt]); + kfree(card_ptr); return ret; } |