if (tn->child[cindex]) { 
struct node *child = rcu_dereference(tn->child[cindex]); if (!child) cindex++; else { 
static void trie_dump_seq(struct seq_file *seq, struct trie *t){	struct node *n = t->trie;	int cindex = 0;	int indent = 1;	int pend = 0;	int depth = 0;	struct tnode *tn;  	read_lock(&fib_lock);	seq_printf(seq, "------ trie_dump of t=%p ------\n", t);	if (!n) {		seq_printf(seq, "------ trie is empty\n");	  	read_unlock(&fib_lock);		return;	}	printnode_seq(seq, indent, n, pend, cindex, 0);	if (!IS_TNODE(n)) {	  	read_unlock(&fib_lock);		return;	}	tn = (struct tnode *)n;	pend = tn->pos+tn->bits;	putspace_seq(seq, indent); seq_printf(seq, "\\--\n");	indent += 3;	depth++;	while (tn && cindex < (1 << tn->bits)) {		if (tn->child[cindex]) {			/* Got a child */			printnode_seq(seq, indent, tn->child[cindex], pend, cindex, tn->bits);			if (IS_LEAF(tn->child[cindex])) {				cindex++;			} else {				/*				 * New tnode. Decend one level				 */				depth++;				tn = (struct tnode *)tn->child[cindex];				pend = tn->pos + tn->bits;				putspace_seq(seq, indent); seq_printf(seq, "\\--\n");				indent += 3;				cindex = 0;			}		} else			cindex++;		/*		 * Test if we are done		 */		while (cindex >= (1 << tn->bits)) {			/*			 * Move upwards and test for root			 * pop off all traversed  nodes			 */			if (NODE_PARENT(tn) == NULL) {				tn = NULL;				break;			}			cindex = tkey_extract_bits(tn->key, NODE_PARENT(tn)->pos, NODE_PARENT(tn)->bits);			cindex++;			tn = NODE_PARENT(tn);			pend = tn->pos + tn->bits;			indent -= 3;			depth--;		}	}  	read_unlock(&fib_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2373ce1ca04dd46bf2b8b0f9a799eb2a90da92fb/fib_trie.c/buggy/net/ipv4/fib_trie.c