diff options
| author | Levente Kurusa <levex@linux.com> | 2014-04-02 06:00:37 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2014-06-26 05:48:23 -0400 |
| commit | 5bb7889f440532f3dbbffdb6b3b0881a805abbce (patch) | |
| tree | 0695a215dff706cd59a829bff10296fa10876eeb | |
| parent | ab6c15bc6620ebe220970cc040b29bcb2757f373 (diff) | |
TC: Handle device_register() errors.
Make the TURBOchannel driver bail out if the call to device_register()
failed.
Signed-off-by: Levente Kurusa <levex@linux.com>
Acked-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Cc: Linux MIPS <linux-mips@linux-mips.org>
Patchwork: https://patchwork.linux-mips.org/patch/6673/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| -rw-r--r-- | drivers/tc/tc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/tc/tc.c b/drivers/tc/tc.c index a8aaf6ac2ae2..946562389ca8 100644 --- a/drivers/tc/tc.c +++ b/drivers/tc/tc.c | |||
| @@ -129,7 +129,10 @@ static void __init tc_bus_add_devices(struct tc_bus *tbus) | |||
| 129 | 129 | ||
| 130 | tc_device_get_irq(tdev); | 130 | tc_device_get_irq(tdev); |
| 131 | 131 | ||
| 132 | device_register(&tdev->dev); | 132 | if (device_register(&tdev->dev)) { |
| 133 | put_device(&tdev->dev); | ||
| 134 | goto out_err; | ||
| 135 | } | ||
| 133 | list_add_tail(&tdev->node, &tbus->devices); | 136 | list_add_tail(&tdev->node, &tbus->devices); |
| 134 | 137 | ||
| 135 | out_err: | 138 | out_err: |
| @@ -148,7 +151,10 @@ static int __init tc_init(void) | |||
| 148 | 151 | ||
| 149 | INIT_LIST_HEAD(&tc_bus.devices); | 152 | INIT_LIST_HEAD(&tc_bus.devices); |
| 150 | dev_set_name(&tc_bus.dev, "tc"); | 153 | dev_set_name(&tc_bus.dev, "tc"); |
| 151 | device_register(&tc_bus.dev); | 154 | if (device_register(&tc_bus.dev)) { |
| 155 | put_device(&tc_bus.dev); | ||
| 156 | return 0; | ||
| 157 | } | ||
| 152 | 158 | ||
| 153 | if (tc_bus.info.slot_size) { | 159 | if (tc_bus.info.slot_size) { |
| 154 | unsigned int tc_clock = tc_get_speed(&tc_bus) / 100000; | 160 | unsigned int tc_clock = tc_get_speed(&tc_bus) / 100000; |
