if((pte = pte_alloc_kernel(&init_mm, pmd, vaddr)) == NULL) { 
if((pte = pte_alloc_kernel(pmd, vaddr)) == NULL) { 
inline int dvma_map_cpu(unsigned long kaddr,			       unsigned long vaddr, int len){	pgd_t *pgd;	unsigned long end;	int ret = 0;	kaddr &= PAGE_MASK;	vaddr &= PAGE_MASK;	end = PAGE_ALIGN(vaddr + len);#ifdef DEBUG	printk("dvma: mapping kern %08lx to virt %08lx\n",	       kaddr, vaddr);#endif	pgd = pgd_offset_k(vaddr);	do {		pmd_t *pmd;		unsigned long end2;		if((pmd = pmd_alloc(&init_mm, pgd, vaddr)) == NULL) {			ret = -ENOMEM;			goto out;		}		if((end & PGDIR_MASK) > (vaddr & PGDIR_MASK))			end2 = (vaddr + (PGDIR_SIZE-1)) & PGDIR_MASK;		else			end2 = end;		do {			pte_t *pte;			unsigned long end3;			if((pte = pte_alloc_kernel(&init_mm, pmd, vaddr)) == NULL) {				ret = -ENOMEM;				goto out;			}			if((end2 & PMD_MASK) > (vaddr & PMD_MASK))				end3 = (vaddr + (PMD_SIZE-1)) & PMD_MASK;			else				end3 = end2;			do {#ifdef DEBUG				printk("mapping %08lx phys to %08lx\n",				       __pa(kaddr), vaddr);#endif				set_pte(pte, pfn_pte(virt_to_pfn(kaddr),						     PAGE_KERNEL));				pte++;				kaddr += PAGE_SIZE;				vaddr += PAGE_SIZE;			} while(vaddr < end3);		} while(vaddr < end2);	} while(vaddr < end);	flush_tlb_all(); out:	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/872fec16d9a0ed3b75b8893aa217e49cca575ee5/dvma.c/buggy/arch/m68k/sun3x/dvma.c