int gfp_mask) 
unsigned int __nocast gfp_mask) 
static struct ts_config *fsm_init(const void *pattern, unsigned int len,				     int gfp_mask){	int i, err = -EINVAL;	struct ts_config *conf;	struct ts_fsm *fsm;	struct ts_fsm_token *tokens = (struct ts_fsm_token *) pattern;	unsigned int ntokens = len / sizeof(*tokens);	size_t priv_size = sizeof(*fsm) + len;	if (len  % sizeof(struct ts_fsm_token) || ntokens < 1)		goto errout;	for (i = 0; i < ntokens; i++) {		struct ts_fsm_token *t = &tokens[i];		if (t->type > TS_FSM_TYPE_MAX || t->recur > TS_FSM_RECUR_MAX)			goto errout;		if (t->recur == TS_FSM_HEAD_IGNORE &&		    (i != 0 || i == (ntokens - 1)))			goto errout;	}	conf = alloc_ts_config(priv_size, gfp_mask);	if (IS_ERR(conf))		return conf;	fsm = ts_config_priv(conf);	fsm->ntokens = ntokens;	memcpy(fsm->tokens, pattern, len);	for (i = 0; i < fsm->ntokens; i++) {		struct ts_fsm_token *t = &fsm->tokens[i];		t->type = token_map[t->type];	}	return conf;errout:	return ERR_PTR(err);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3d2aef668920e8d93b77f145f8f647f62abe75db/ts_fsm.c/buggy/lib/ts_fsm.c