err_out_hpriv: 
err_out_dev_add: if (MV_HP_FLAG_MSI & hpriv->hp_flags) { pci_disable_msi(pdev); } else { pci_intx(pdev, 0); } err_out_hpriv: 
static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent){	static int printed_version = 0;	struct ata_probe_ent *probe_ent = NULL;	struct mv_host_priv *hpriv;	unsigned int board_idx = (unsigned int)ent->driver_data;	void __iomem *mmio_base;	int pci_dev_busy = 0;	int rc;	if (!printed_version++) {		printk(KERN_DEBUG DRV_NAME " version " DRV_VERSION "\n");	}	VPRINTK("ENTER for PCI Bus:Slot.Func=%u:%u.%u\n", pdev->bus->number,		PCI_SLOT(pdev->devfn), PCI_FUNC(pdev->devfn));	rc = pci_enable_device(pdev);	if (rc) {		return rc;	}	rc = pci_request_regions(pdev, DRV_NAME);	if (rc) {		pci_dev_busy = 1;		goto err_out;	}	pci_intx(pdev, 1);	probe_ent = kmalloc(sizeof(*probe_ent), GFP_KERNEL);	if (probe_ent == NULL) {		rc = -ENOMEM;		goto err_out_regions;	}	memset(probe_ent, 0, sizeof(*probe_ent));	probe_ent->dev = pci_dev_to_dev(pdev);	INIT_LIST_HEAD(&probe_ent->node);	mmio_base = ioremap_nocache(pci_resource_start(pdev, MV_PRIMARY_BAR),				    pci_resource_len(pdev, MV_PRIMARY_BAR));	if (mmio_base == NULL) {		rc = -ENOMEM;		goto err_out_free_ent;	}	hpriv = kmalloc(sizeof(*hpriv), GFP_KERNEL);	if (!hpriv) {		rc = -ENOMEM;		goto err_out_iounmap;	}	memset(hpriv, 0, sizeof(*hpriv));	probe_ent->sht = mv_port_info[board_idx].sht;	probe_ent->host_flags = mv_port_info[board_idx].host_flags;	probe_ent->pio_mask = mv_port_info[board_idx].pio_mask;	probe_ent->udma_mask = mv_port_info[board_idx].udma_mask;	probe_ent->port_ops = mv_port_info[board_idx].port_ops;	probe_ent->irq = pdev->irq;	probe_ent->irq_flags = SA_SHIRQ;	probe_ent->mmio_base = mmio_base;	probe_ent->private_data = hpriv;	/* initialize adapter */	rc = mv_host_init(probe_ent);	if (rc) {		goto err_out_hpriv;	}/* 	mv_print_info(probe_ent); */	{		int b, w;		u32 dw[4];	/* hold a line of 16b */		VPRINTK("PCI config space:\n");		for (b = 0; b < 0x40; ) {			for (w = 0; w < 4; w++) {				(void) pci_read_config_dword(pdev,b,&dw[w]);				b += sizeof(*dw);			}			VPRINTK("%08x %08x %08x %08x\n",				dw[0],dw[1],dw[2],dw[3]);		}	}	/* FIXME: check ata_device_add return value */	ata_device_add(probe_ent);	kfree(probe_ent);	return 0; err_out_hpriv:	kfree(hpriv); err_out_iounmap:	iounmap(mmio_base); err_out_free_ent:	kfree(probe_ent); err_out_regions:	pci_release_regions(pdev); err_out:	if (!pci_dev_busy) {		pci_disable_device(pdev);	}	return rc;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/31961943e3110c5a1c36b1e0069c29f7c4380e51/sata_mv.c/buggy/drivers/scsi/sata_mv.c