&& ahc_linux_get_memsize() > 0x80000000 && pci_set_dma_mask(pdev, mask_39bit) == 0) { 
&& ahc->features & AHC_LARGE_SCBS && dma_set_mask(dev, mask_39bit) == 0 && dma_get_required_mask(dev) > DMA_32BIT_MASK) { 
ahc_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent){	char		 buf[80];	const uint64_t	 mask_39bit = 0x7FFFFFFFFFULL;	struct		 ahc_softc *ahc;	ahc_dev_softc_t	 pci;	struct		 ahc_pci_identity *entry;	char		*name;	int		 error;	pci = pdev;	entry = ahc_find_pci_device(pci);	if (entry == NULL)		return (-ENODEV);	/*	 * Allocate a softc for this card and	 * set it up for attachment by our	 * common detect routine.	 */	sprintf(buf, "ahc_pci:%d:%d:%d",		ahc_get_pci_bus(pci),		ahc_get_pci_slot(pci),		ahc_get_pci_function(pci));	name = malloc(strlen(buf) + 1, M_DEVBUF, M_NOWAIT);	if (name == NULL)		return (-ENOMEM);	strcpy(name, buf);	ahc = ahc_alloc(NULL, name);	if (ahc == NULL)		return (-ENOMEM);	if (pci_enable_device(pdev)) {		ahc_free(ahc);		return (-ENODEV);	}	pci_set_master(pdev);	if (sizeof(dma_addr_t) > 4	 && ahc_linux_get_memsize() > 0x80000000	 && pci_set_dma_mask(pdev, mask_39bit) == 0) {		ahc->flags |= AHC_39BIT_ADDRESSING;	} else {		if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {			printk(KERN_WARNING "aic7xxx: No suitable DMA available.\n");                	return (-ENODEV);		}	}	ahc->dev_softc = pci;	error = ahc_pci_config(ahc, entry);	if (error != 0) {		ahc_free(ahc);		return (-error);	}	/*	 * Second Function PCI devices need to inherit some	 * settings from function 0.	 */	if ((ahc->features & AHC_MULTI_FUNC) && PCI_FUNC(pdev->devfn) != 0)		ahc_linux_pci_inherit_flags(ahc);	pci_set_drvdata(pdev, ahc);	ahc_linux_register_host(ahc, &aic7xxx_driver_template);	return (0);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a89f29f6ea8dba0b7c4ae5d1d0b43de6cb500ea6/aic7xxx_osm_pci.c/clean/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c