diff options
-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 | ||