/* don't allow too large steps */ if (step > 0x800000) step = 0x800000; 
static int do_mem_probe(u_long base, u_long num, struct pcmcia_socket *s){    struct socket_data *s_data = s->resource_data;    u_long i, j, bad, fail, step;    printk(KERN_INFO "cs: memory probe 0x%06lx-0x%06lx:",	   base, base+num-1);    bad = fail = 0;    step = (num < 0x20000) ? 0x2000 : ((num>>4) & ~0x1fff);    /* cis_readable wants to map 2x map_size */    if (step < 2 * s->map_size)	step = 2 * s->map_size;    for (i = j = base; i < base+num; i = j + step) {	if (!fail) {	    for (j = i; j < base+num; j += step) {		if (cis_readable(s, j, step))		    break;	    }	    fail = ((i == base) && (j == base+num));	}	if (fail) {	    for (j = i; j < base+num; j += 2*step)		if (checksum_match(s, j, step) &&		    checksum_match(s, j + step, step))		    break;	}	if (i != j) {	    if (!bad) printk(" excluding");	    printk(" %#05lx-%#05lx", i, j-1);	    sub_interval(&s_data->mem_db, i, j-i);	    bad += j-i;	}    }    printk(bad ? "\n" : " clean.\n");    return (num - bad);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2ad0a0a793cbd87a87488d59abc744374669498f/rsrc_nonstatic.c/clean/drivers/pcmcia/rsrc_nonstatic.c