return ret;
        if (this_board->i_Dma)
                pci_set_master(pcidev);
-       devpriv->allocated = 1;
 
        if (!this_board->pc_EepromChip ||
            !strcmp(this_board->pc_EepromChip, ADDIDATA_9054)) {
                        free_irq(dev->irq, dev);
                if ((this_board->pc_EepromChip == NULL) ||
                    (strcmp(this_board->pc_EepromChip, ADDIDATA_9054) != 0)) {
-                       if (devpriv->allocated)
-                               comedi_pci_disable(pcidev);
                        if (devpriv->ul_DmaBufferVirtual[0]) {
                                free_pages((unsigned long)devpriv->
                                        ul_DmaBufferVirtual[0],
                        }
                } else {
                        iounmap(devpriv->dw_AiBase);
-                       if (devpriv->allocated)
-                               comedi_pci_disable(pcidev);
                }
        }
+       if (pcidev) {
+               if (dev->iobase)
+                       comedi_pci_disable(pcidev);
+       }
 }
 
        int i_IobaseAddon;      /* addon base address */
        int i_IobaseReserved;
        void __iomem *dw_AiBase;
-       unsigned char allocated;                /*  we have blocked card */
        unsigned char b_ValidDriver;    /*  driver is ok */
        unsigned char b_AiContinuous;   /*  we do unlimited AI */
        unsigned char b_AiInitialisation;