diff options
| author | Rahul Ruikar <rahul.ruikar@gmail.com> | 2010-10-01 16:32:45 -0400 |
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2010-10-01 16:32:45 -0400 |
| commit | 35ed16740c564ff092fe45804dfbbb1449f2bd7e (patch) | |
| tree | 448962071cddcc52a69f00f10d92362c374b24bf | |
| parent | df0a59a14c693647da4097ba3578c524c452fd0d (diff) | |
[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>
| -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 93de907b120..08d77b041bd 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) | |||
| 2017 | struct ioc3_port *port; | 2017 | struct ioc3_port *port; |
| 2018 | struct ioc3_port *ports[PORTS_PER_CARD]; | 2018 | struct ioc3_port *ports[PORTS_PER_CARD]; |
| 2019 | int phys_port; | 2019 | int phys_port; |
| 2020 | int cnt; | ||
| 2020 | 2021 | ||
| 2021 | DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __func__, is, idd)); | 2022 | DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __func__, is, idd)); |
| 2022 | 2023 | ||
| @@ -2146,6 +2147,9 @@ ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd) | |||
| 2146 | 2147 | ||
| 2147 | /* error exits that give back resources */ | 2148 | /* error exits that give back resources */ |
| 2148 | out4: | 2149 | out4: |
| 2150 | for (cnt = 0; cnt < phys_port; cnt++) | ||
| 2151 | kfree(ports[cnt]); | ||
| 2152 | |||
| 2149 | kfree(card_ptr); | 2153 | kfree(card_ptr); |
| 2150 | return ret; | 2154 | return ret; |
| 2151 | } | 2155 | } |
