@@ -3758,16 +3758,17 @@ static int pci_probe(struct pci_dev *dev,
3758
3758
3759
3759
if (!(ohci -> quirks & QUIRK_NO_MSI ))
3760
3760
pci_enable_msi (dev );
3761
- err = devm_request_irq ( & dev -> dev , dev -> irq , irq_handler ,
3762
- pci_dev_msi_enabled (dev ) ? 0 : IRQF_SHARED , ohci_driver_name , ohci );
3763
- if ( err < 0 ) {
3761
+ if ( request_irq ( dev -> irq , irq_handler ,
3762
+ pci_dev_msi_enabled (dev ) ? 0 : IRQF_SHARED ,
3763
+ ohci_driver_name , ohci ) ) {
3764
3764
ohci_err (ohci , "failed to allocate interrupt %d\n" , dev -> irq );
3765
+ err = - EIO ;
3765
3766
goto fail_msi ;
3766
3767
}
3767
3768
3768
3769
err = fw_card_add (& ohci -> card , max_receive , link_speed , guid );
3769
3770
if (err )
3770
- goto fail_msi ;
3771
+ goto fail_irq ;
3771
3772
3772
3773
version = reg_read (ohci , OHCI1394_Version ) & 0x00ff00ff ;
3773
3774
ohci_notice (ohci ,
@@ -3780,8 +3781,9 @@ static int pci_probe(struct pci_dev *dev,
3780
3781
3781
3782
return 0 ;
3782
3783
3784
+ fail_irq :
3785
+ free_irq (dev -> irq , ohci );
3783
3786
fail_msi :
3784
- devm_free_irq (& dev -> dev , dev -> irq , ohci );
3785
3787
pci_disable_msi (dev );
3786
3788
3787
3789
return err ;
@@ -3809,7 +3811,7 @@ static void pci_remove(struct pci_dev *dev)
3809
3811
3810
3812
software_reset (ohci );
3811
3813
3812
- devm_free_irq ( & dev -> dev , dev -> irq , ohci );
3814
+ free_irq ( dev -> irq , ohci );
3813
3815
pci_disable_msi (dev );
3814
3816
3815
3817
dev_notice (& dev -> dev , "removing fw-ohci device\n" );
0 commit comments