diff options
author | Matthijs Kooijman <matthijs@stdin.nl> | 2012-11-02 08:13:54 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-12-21 15:26:08 -0500 |
commit | 70ef69915b1fba4ad85aebe530caf156a144c2e5 (patch) | |
tree | 76f5b8f79658f5e98ec4373d4e87d7062a67e3f8 /drivers/media | |
parent | d40fbf8d52ae6c9b7fe9d76eeab624afc3a3f1ea (diff) |
[media] rc: Make probe cleanup goto labels more verbose
Before, labels were simply numbered. Now, the labels are named after the
cleanup action they'll perform (first), based on how the winbond-cir
driver does it. This makes the code a bit more clear and makes changes
in the ordering of labels easier to review.
This change is applied only to the rc drivers that do significant
cleanup in their probe functions: ati-remote, ene-ir, fintek-cir,
gpio-ir-recv, ite-cir, nuvoton-cir.
This commit should not change any code, it just renames goto labels.
[mchehab@redhat.com: removed changes at gpio-ir-recv.c, due to
merge conflicts]
Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/rc/ati_remote.c | 27 | ||||
-rw-r--r-- | drivers/media/rc/ene_ir.c | 20 | ||||
-rw-r--r-- | drivers/media/rc/fintek-cir.c | 20 | ||||
-rw-r--r-- | drivers/media/rc/ite-cir.c | 18 | ||||
-rw-r--r-- | drivers/media/rc/nuvoton-cir.c | 30 |
5 files changed, 60 insertions, 55 deletions
diff --git a/drivers/media/rc/ati_remote.c b/drivers/media/rc/ati_remote.c index 2d6fb26a0170..4d6a63fe6c5e 100644 --- a/drivers/media/rc/ati_remote.c +++ b/drivers/media/rc/ati_remote.c | |||
@@ -872,11 +872,11 @@ static int ati_remote_probe(struct usb_interface *interface, | |||
872 | ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL); | 872 | ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL); |
873 | rc_dev = rc_allocate_device(); | 873 | rc_dev = rc_allocate_device(); |
874 | if (!ati_remote || !rc_dev) | 874 | if (!ati_remote || !rc_dev) |
875 | goto fail1; | 875 | goto exit_free_dev_rdev; |
876 | 876 | ||
877 | /* Allocate URB buffers, URBs */ | 877 | /* Allocate URB buffers, URBs */ |
878 | if (ati_remote_alloc_buffers(udev, ati_remote)) | 878 | if (ati_remote_alloc_buffers(udev, ati_remote)) |
879 | goto fail2; | 879 | goto exit_free_buffers; |
880 | 880 | ||
881 | ati_remote->endpoint_in = endpoint_in; | 881 | ati_remote->endpoint_in = endpoint_in; |
882 | ati_remote->endpoint_out = endpoint_out; | 882 | ati_remote->endpoint_out = endpoint_out; |
@@ -924,12 +924,12 @@ static int ati_remote_probe(struct usb_interface *interface, | |||
924 | /* Device Hardware Initialization - fills in ati_remote->idev from udev. */ | 924 | /* Device Hardware Initialization - fills in ati_remote->idev from udev. */ |
925 | err = ati_remote_initialize(ati_remote); | 925 | err = ati_remote_initialize(ati_remote); |
926 | if (err) | 926 | if (err) |
927 | goto fail3; | 927 | goto exit_kill_urbs; |
928 | 928 | ||
929 | /* Set up and register rc device */ | 929 | /* Set up and register rc device */ |
930 | err = rc_register_device(ati_remote->rdev); | 930 | err = rc_register_device(ati_remote->rdev); |
931 | if (err) | 931 | if (err) |
932 | goto fail3; | 932 | goto exit_kill_urbs; |
933 | 933 | ||
934 | /* use our delay for rc_dev */ | 934 | /* use our delay for rc_dev */ |
935 | ati_remote->rdev->input_dev->rep[REP_DELAY] = repeat_delay; | 935 | ati_remote->rdev->input_dev->rep[REP_DELAY] = repeat_delay; |
@@ -939,7 +939,7 @@ static int ati_remote_probe(struct usb_interface *interface, | |||
939 | input_dev = input_allocate_device(); | 939 | input_dev = input_allocate_device(); |
940 | if (!input_dev) { | 940 | if (!input_dev) { |
941 | err = -ENOMEM; | 941 | err = -ENOMEM; |
942 | goto fail4; | 942 | goto exit_unregister_device; |
943 | } | 943 | } |
944 | 944 | ||
945 | ati_remote->idev = input_dev; | 945 | ati_remote->idev = input_dev; |
@@ -947,19 +947,24 @@ static int ati_remote_probe(struct usb_interface *interface, | |||
947 | err = input_register_device(input_dev); | 947 | err = input_register_device(input_dev); |
948 | 948 | ||
949 | if (err) | 949 | if (err) |
950 | goto fail5; | 950 | goto exit_free_input_device; |
951 | } | 951 | } |
952 | 952 | ||
953 | usb_set_intfdata(interface, ati_remote); | 953 | usb_set_intfdata(interface, ati_remote); |
954 | return 0; | 954 | return 0; |
955 | 955 | ||
956 | fail5: input_free_device(input_dev); | 956 | exit_free_input_device: |
957 | fail4: rc_unregister_device(rc_dev); | 957 | input_free_device(input_dev); |
958 | exit_unregister_device: | ||
959 | rc_unregister_device(rc_dev); | ||
958 | rc_dev = NULL; | 960 | rc_dev = NULL; |
959 | fail3: usb_kill_urb(ati_remote->irq_urb); | 961 | exit_kill_urbs: |
962 | usb_kill_urb(ati_remote->irq_urb); | ||
960 | usb_kill_urb(ati_remote->out_urb); | 963 | usb_kill_urb(ati_remote->out_urb); |
961 | fail2: ati_remote_free_buffers(ati_remote); | 964 | exit_free_buffers: |
962 | fail1: rc_free_device(rc_dev); | 965 | ati_remote_free_buffers(ati_remote); |
966 | exit_free_dev_rdev: | ||
967 | rc_free_device(rc_dev); | ||
963 | kfree(ati_remote); | 968 | kfree(ati_remote); |
964 | return err; | 969 | return err; |
965 | } | 970 | } |
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c index 22231dd4f62b..f7fdfea49ab1 100644 --- a/drivers/media/rc/ene_ir.c +++ b/drivers/media/rc/ene_ir.c | |||
@@ -1003,7 +1003,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) | |||
1003 | dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL); | 1003 | dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL); |
1004 | rdev = rc_allocate_device(); | 1004 | rdev = rc_allocate_device(); |
1005 | if (!dev || !rdev) | 1005 | if (!dev || !rdev) |
1006 | goto failure; | 1006 | goto exit_free_dev_rdev; |
1007 | 1007 | ||
1008 | /* validate resources */ | 1008 | /* validate resources */ |
1009 | error = -ENODEV; | 1009 | error = -ENODEV; |
@@ -1014,10 +1014,10 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) | |||
1014 | 1014 | ||
1015 | if (!pnp_port_valid(pnp_dev, 0) || | 1015 | if (!pnp_port_valid(pnp_dev, 0) || |
1016 | pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE) | 1016 | pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE) |
1017 | goto failure; | 1017 | goto exit_free_dev_rdev; |
1018 | 1018 | ||
1019 | if (!pnp_irq_valid(pnp_dev, 0)) | 1019 | if (!pnp_irq_valid(pnp_dev, 0)) |
1020 | goto failure; | 1020 | goto exit_free_dev_rdev; |
1021 | 1021 | ||
1022 | spin_lock_init(&dev->hw_lock); | 1022 | spin_lock_init(&dev->hw_lock); |
1023 | 1023 | ||
@@ -1033,7 +1033,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) | |||
1033 | /* detect hardware version and features */ | 1033 | /* detect hardware version and features */ |
1034 | error = ene_hw_detect(dev); | 1034 | error = ene_hw_detect(dev); |
1035 | if (error) | 1035 | if (error) |
1036 | goto failure; | 1036 | goto exit_free_dev_rdev; |
1037 | 1037 | ||
1038 | if (!dev->hw_learning_and_tx_capable && txsim) { | 1038 | if (!dev->hw_learning_and_tx_capable && txsim) { |
1039 | dev->hw_learning_and_tx_capable = true; | 1039 | dev->hw_learning_and_tx_capable = true; |
@@ -1078,27 +1078,27 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) | |||
1078 | /* claim the resources */ | 1078 | /* claim the resources */ |
1079 | error = -EBUSY; | 1079 | error = -EBUSY; |
1080 | if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { | 1080 | if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { |
1081 | goto failure; | 1081 | goto exit_free_dev_rdev; |
1082 | } | 1082 | } |
1083 | 1083 | ||
1084 | dev->irq = pnp_irq(pnp_dev, 0); | 1084 | dev->irq = pnp_irq(pnp_dev, 0); |
1085 | if (request_irq(dev->irq, ene_isr, | 1085 | if (request_irq(dev->irq, ene_isr, |
1086 | IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) { | 1086 | IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) { |
1087 | goto failure2; | 1087 | goto exit_release_hw_io; |
1088 | } | 1088 | } |
1089 | 1089 | ||
1090 | error = rc_register_device(rdev); | 1090 | error = rc_register_device(rdev); |
1091 | if (error < 0) | 1091 | if (error < 0) |
1092 | goto failure3; | 1092 | goto exit_free_irq; |
1093 | 1093 | ||
1094 | pr_notice("driver has been successfully loaded\n"); | 1094 | pr_notice("driver has been successfully loaded\n"); |
1095 | return 0; | 1095 | return 0; |
1096 | 1096 | ||
1097 | failure3: | 1097 | exit_free_irq: |
1098 | free_irq(dev->irq, dev); | 1098 | free_irq(dev->irq, dev); |
1099 | failure2: | 1099 | exit_release_hw_io: |
1100 | release_region(dev->hw_io, ENE_IO_SIZE); | 1100 | release_region(dev->hw_io, ENE_IO_SIZE); |
1101 | failure: | 1101 | exit_free_dev_rdev: |
1102 | rc_free_device(rdev); | 1102 | rc_free_device(rdev); |
1103 | kfree(dev); | 1103 | kfree(dev); |
1104 | return error; | 1104 | return error; |
diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c index 936c3f79b62c..3d5e57cacf31 100644 --- a/drivers/media/rc/fintek-cir.c +++ b/drivers/media/rc/fintek-cir.c | |||
@@ -500,18 +500,18 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id | |||
500 | /* input device for IR remote (and tx) */ | 500 | /* input device for IR remote (and tx) */ |
501 | rdev = rc_allocate_device(); | 501 | rdev = rc_allocate_device(); |
502 | if (!rdev) | 502 | if (!rdev) |
503 | goto failure; | 503 | goto exit_free_dev_rdev; |
504 | 504 | ||
505 | ret = -ENODEV; | 505 | ret = -ENODEV; |
506 | /* validate pnp resources */ | 506 | /* validate pnp resources */ |
507 | if (!pnp_port_valid(pdev, 0)) { | 507 | if (!pnp_port_valid(pdev, 0)) { |
508 | dev_err(&pdev->dev, "IR PNP Port not valid!\n"); | 508 | dev_err(&pdev->dev, "IR PNP Port not valid!\n"); |
509 | goto failure; | 509 | goto exit_free_dev_rdev; |
510 | } | 510 | } |
511 | 511 | ||
512 | if (!pnp_irq_valid(pdev, 0)) { | 512 | if (!pnp_irq_valid(pdev, 0)) { |
513 | dev_err(&pdev->dev, "IR PNP IRQ not valid!\n"); | 513 | dev_err(&pdev->dev, "IR PNP IRQ not valid!\n"); |
514 | goto failure; | 514 | goto exit_free_dev_rdev; |
515 | } | 515 | } |
516 | 516 | ||
517 | fintek->cir_addr = pnp_port_start(pdev, 0); | 517 | fintek->cir_addr = pnp_port_start(pdev, 0); |
@@ -528,7 +528,7 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id | |||
528 | 528 | ||
529 | ret = fintek_hw_detect(fintek); | 529 | ret = fintek_hw_detect(fintek); |
530 | if (ret) | 530 | if (ret) |
531 | goto failure; | 531 | goto exit_free_dev_rdev; |
532 | 532 | ||
533 | /* Initialize CIR & CIR Wake Logical Devices */ | 533 | /* Initialize CIR & CIR Wake Logical Devices */ |
534 | fintek_config_mode_enable(fintek); | 534 | fintek_config_mode_enable(fintek); |
@@ -561,15 +561,15 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id | |||
561 | /* now claim resources */ | 561 | /* now claim resources */ |
562 | if (!request_region(fintek->cir_addr, | 562 | if (!request_region(fintek->cir_addr, |
563 | fintek->cir_port_len, FINTEK_DRIVER_NAME)) | 563 | fintek->cir_port_len, FINTEK_DRIVER_NAME)) |
564 | goto failure; | 564 | goto exit_free_dev_rdev; |
565 | 565 | ||
566 | if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED, | 566 | if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED, |
567 | FINTEK_DRIVER_NAME, (void *)fintek)) | 567 | FINTEK_DRIVER_NAME, (void *)fintek)) |
568 | goto failure2; | 568 | goto exit_free_cir_addr; |
569 | 569 | ||
570 | ret = rc_register_device(rdev); | 570 | ret = rc_register_device(rdev); |
571 | if (ret) | 571 | if (ret) |
572 | goto failure3; | 572 | goto exit_free_irq; |
573 | 573 | ||
574 | device_init_wakeup(&pdev->dev, true); | 574 | device_init_wakeup(&pdev->dev, true); |
575 | fintek->rdev = rdev; | 575 | fintek->rdev = rdev; |
@@ -579,11 +579,11 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id | |||
579 | 579 | ||
580 | return 0; | 580 | return 0; |
581 | 581 | ||
582 | failure3: | 582 | exit_free_irq: |
583 | free_irq(fintek->cir_irq, fintek); | 583 | free_irq(fintek->cir_irq, fintek); |
584 | failure2: | 584 | exit_free_cir_addr: |
585 | release_region(fintek->cir_addr, fintek->cir_port_len); | 585 | release_region(fintek->cir_addr, fintek->cir_port_len); |
586 | failure: | 586 | exit_free_dev_rdev: |
587 | rc_free_device(rdev); | 587 | rc_free_device(rdev); |
588 | kfree(fintek); | 588 | kfree(fintek); |
589 | 589 | ||
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c index 5e5a7f2b8184..8e0e661b5ef9 100644 --- a/drivers/media/rc/ite-cir.c +++ b/drivers/media/rc/ite-cir.c | |||
@@ -1472,7 +1472,7 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id | |||
1472 | /* input device for IR remote (and tx) */ | 1472 | /* input device for IR remote (and tx) */ |
1473 | rdev = rc_allocate_device(); | 1473 | rdev = rc_allocate_device(); |
1474 | if (!rdev) | 1474 | if (!rdev) |
1475 | goto failure; | 1475 | goto exit_free_dev_rdev; |
1476 | itdev->rdev = rdev; | 1476 | itdev->rdev = rdev; |
1477 | 1477 | ||
1478 | ret = -ENODEV; | 1478 | ret = -ENODEV; |
@@ -1498,12 +1498,12 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id | |||
1498 | if (!pnp_port_valid(pdev, io_rsrc_no) || | 1498 | if (!pnp_port_valid(pdev, io_rsrc_no) || |
1499 | pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) { | 1499 | pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) { |
1500 | dev_err(&pdev->dev, "IR PNP Port not valid!\n"); | 1500 | dev_err(&pdev->dev, "IR PNP Port not valid!\n"); |
1501 | goto failure; | 1501 | goto exit_free_dev_rdev; |
1502 | } | 1502 | } |
1503 | 1503 | ||
1504 | if (!pnp_irq_valid(pdev, 0)) { | 1504 | if (!pnp_irq_valid(pdev, 0)) { |
1505 | dev_err(&pdev->dev, "PNP IRQ not valid!\n"); | 1505 | dev_err(&pdev->dev, "PNP IRQ not valid!\n"); |
1506 | goto failure; | 1506 | goto exit_free_dev_rdev; |
1507 | } | 1507 | } |
1508 | 1508 | ||
1509 | /* store resource values */ | 1509 | /* store resource values */ |
@@ -1595,25 +1595,25 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id | |||
1595 | /* now claim resources */ | 1595 | /* now claim resources */ |
1596 | if (!request_region(itdev->cir_addr, | 1596 | if (!request_region(itdev->cir_addr, |
1597 | dev_desc->io_region_size, ITE_DRIVER_NAME)) | 1597 | dev_desc->io_region_size, ITE_DRIVER_NAME)) |
1598 | goto failure; | 1598 | goto exit_free_dev_rdev; |
1599 | 1599 | ||
1600 | if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, | 1600 | if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, |
1601 | ITE_DRIVER_NAME, (void *)itdev)) | 1601 | ITE_DRIVER_NAME, (void *)itdev)) |
1602 | goto failure2; | 1602 | goto exit_release_cir_addr; |
1603 | 1603 | ||
1604 | ret = rc_register_device(rdev); | 1604 | ret = rc_register_device(rdev); |
1605 | if (ret) | 1605 | if (ret) |
1606 | goto failure3; | 1606 | goto exit_free_irq; |
1607 | 1607 | ||
1608 | ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); | 1608 | ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); |
1609 | 1609 | ||
1610 | return 0; | 1610 | return 0; |
1611 | 1611 | ||
1612 | failure3: | 1612 | exit_free_irq: |
1613 | free_irq(itdev->cir_irq, itdev); | 1613 | free_irq(itdev->cir_irq, itdev); |
1614 | failure2: | 1614 | exit_release_cir_addr: |
1615 | release_region(itdev->cir_addr, itdev->params.io_region_size); | 1615 | release_region(itdev->cir_addr, itdev->params.io_region_size); |
1616 | failure: | 1616 | exit_free_dev_rdev: |
1617 | rc_free_device(rdev); | 1617 | rc_free_device(rdev); |
1618 | kfree(itdev); | 1618 | kfree(itdev); |
1619 | 1619 | ||
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c index e4ea89a11eed..3477e231c182 100644 --- a/drivers/media/rc/nuvoton-cir.c +++ b/drivers/media/rc/nuvoton-cir.c | |||
@@ -986,25 +986,25 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) | |||
986 | /* input device for IR remote (and tx) */ | 986 | /* input device for IR remote (and tx) */ |
987 | rdev = rc_allocate_device(); | 987 | rdev = rc_allocate_device(); |
988 | if (!rdev) | 988 | if (!rdev) |
989 | goto failure; | 989 | goto exit_free_dev_rdev; |
990 | 990 | ||
991 | ret = -ENODEV; | 991 | ret = -ENODEV; |
992 | /* validate pnp resources */ | 992 | /* validate pnp resources */ |
993 | if (!pnp_port_valid(pdev, 0) || | 993 | if (!pnp_port_valid(pdev, 0) || |
994 | pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) { | 994 | pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) { |
995 | dev_err(&pdev->dev, "IR PNP Port not valid!\n"); | 995 | dev_err(&pdev->dev, "IR PNP Port not valid!\n"); |
996 | goto failure; | 996 | goto exit_free_dev_rdev; |
997 | } | 997 | } |
998 | 998 | ||
999 | if (!pnp_irq_valid(pdev, 0)) { | 999 | if (!pnp_irq_valid(pdev, 0)) { |
1000 | dev_err(&pdev->dev, "PNP IRQ not valid!\n"); | 1000 | dev_err(&pdev->dev, "PNP IRQ not valid!\n"); |
1001 | goto failure; | 1001 | goto exit_free_dev_rdev; |
1002 | } | 1002 | } |
1003 | 1003 | ||
1004 | if (!pnp_port_valid(pdev, 1) || | 1004 | if (!pnp_port_valid(pdev, 1) || |
1005 | pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) { | 1005 | pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) { |
1006 | dev_err(&pdev->dev, "Wake PNP Port not valid!\n"); | 1006 | dev_err(&pdev->dev, "Wake PNP Port not valid!\n"); |
1007 | goto failure; | 1007 | goto exit_free_dev_rdev; |
1008 | } | 1008 | } |
1009 | 1009 | ||
1010 | nvt->cir_addr = pnp_port_start(pdev, 0); | 1010 | nvt->cir_addr = pnp_port_start(pdev, 0); |
@@ -1027,7 +1027,7 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) | |||
1027 | 1027 | ||
1028 | ret = nvt_hw_detect(nvt); | 1028 | ret = nvt_hw_detect(nvt); |
1029 | if (ret) | 1029 | if (ret) |
1030 | goto failure; | 1030 | goto exit_free_dev_rdev; |
1031 | 1031 | ||
1032 | /* Initialize CIR & CIR Wake Logical Devices */ | 1032 | /* Initialize CIR & CIR Wake Logical Devices */ |
1033 | nvt_efm_enable(nvt); | 1033 | nvt_efm_enable(nvt); |
@@ -1070,23 +1070,23 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) | |||
1070 | /* now claim resources */ | 1070 | /* now claim resources */ |
1071 | if (!request_region(nvt->cir_addr, | 1071 | if (!request_region(nvt->cir_addr, |
1072 | CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) | 1072 | CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) |
1073 | goto failure; | 1073 | goto exit_free_dev_rdev; |
1074 | 1074 | ||
1075 | if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED, | 1075 | if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED, |
1076 | NVT_DRIVER_NAME, (void *)nvt)) | 1076 | NVT_DRIVER_NAME, (void *)nvt)) |
1077 | goto failure2; | 1077 | goto exit_release_cir_addr; |
1078 | 1078 | ||
1079 | if (!request_region(nvt->cir_wake_addr, | 1079 | if (!request_region(nvt->cir_wake_addr, |
1080 | CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) | 1080 | CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) |
1081 | goto failure3; | 1081 | goto exit_free_irq; |
1082 | 1082 | ||
1083 | if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED, | 1083 | if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED, |
1084 | NVT_DRIVER_NAME, (void *)nvt)) | 1084 | NVT_DRIVER_NAME, (void *)nvt)) |
1085 | goto failure4; | 1085 | goto exit_release_cir_wake_addr; |
1086 | 1086 | ||
1087 | ret = rc_register_device(rdev); | 1087 | ret = rc_register_device(rdev); |
1088 | if (ret) | 1088 | if (ret) |
1089 | goto failure5; | 1089 | goto exit_free_wake_irq; |
1090 | 1090 | ||
1091 | device_init_wakeup(&pdev->dev, true); | 1091 | device_init_wakeup(&pdev->dev, true); |
1092 | nvt->rdev = rdev; | 1092 | nvt->rdev = rdev; |
@@ -1098,15 +1098,15 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) | |||
1098 | 1098 | ||
1099 | return 0; | 1099 | return 0; |
1100 | 1100 | ||
1101 | failure5: | 1101 | exit_free_wake_irq: |
1102 | free_irq(nvt->cir_wake_irq, nvt); | 1102 | free_irq(nvt->cir_wake_irq, nvt); |
1103 | failure4: | 1103 | exit_release_cir_wake_addr: |
1104 | release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH); | 1104 | release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH); |
1105 | failure3: | 1105 | exit_free_irq: |
1106 | free_irq(nvt->cir_irq, nvt); | 1106 | free_irq(nvt->cir_irq, nvt); |
1107 | failure2: | 1107 | exit_release_cir_addr: |
1108 | release_region(nvt->cir_addr, CIR_IOREG_LENGTH); | 1108 | release_region(nvt->cir_addr, CIR_IOREG_LENGTH); |
1109 | failure: | 1109 | exit_free_dev_rdev: |
1110 | rc_free_device(rdev); | 1110 | rc_free_device(rdev); |
1111 | kfree(nvt); | 1111 | kfree(nvt); |
1112 | 1112 | ||