res = find_first_zero_bit ((const unsigned long *)p, size - 64 * (p - (unsigned long *) addr)); 
res = __find_first_zero_bit (p, size - 64 * (p - addr));  
long find_next_zero_bit (const unsigned long * addr, long size, long offset){	unsigned long * p = ((unsigned long *) addr) + (offset >> 6);	unsigned long set = 0;	unsigned long res, bit = offset&63;	if (bit) {		/*		 * Look for zero in first word		 */		asm("bsfq %1,%0\n\t"		    "cmoveq %2,%0"		    : "=r" (set)		    : "r" (~(*p >> bit)), "r"(64L));		if (set < (64 - bit))			return set + offset;		set = 64 - bit;		p++;	}	/*	 * No zero yet, search remaining full words for a zero	 */	res = find_first_zero_bit ((const unsigned long *)p,				   size - 64 * (p - (unsigned long *) addr));	return (offset + set + res);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/06024f217d607369f0ee0071034ebb03071d5fb2/bitops.c/buggy/arch/x86_64/lib/bitops.c