cpu = smp_processor_id(); 
cpu = raw_smp_processor_id(); 
static struct crypto_tfm **ipcomp6_alloc_tfms(const char *alg_name){	struct ipcomp6_tfms *pos;	struct crypto_tfm **tfms;	int cpu;	/* This can be any valid CPU ID so we don't need locking. */	cpu = smp_processor_id();	list_for_each_entry(pos, &ipcomp6_tfms_list, list) {		struct crypto_tfm *tfm;		tfms = pos->tfms;		tfm = *per_cpu_ptr(tfms, cpu);		if (!strcmp(crypto_tfm_alg_name(tfm), alg_name)) {			pos->users++;			return tfms;		}	}	pos = kmalloc(sizeof(*pos), GFP_KERNEL);	if (!pos)		return NULL;	pos->users = 1;	INIT_LIST_HEAD(&pos->list);	list_add(&pos->list, &ipcomp6_tfms_list);	pos->tfms = tfms = alloc_percpu(struct crypto_tfm *);	if (!tfms)		goto error;	for_each_cpu(cpu) {		struct crypto_tfm *tfm = crypto_alloc_tfm(alg_name, 0);		if (!tfm)			goto error;		*per_cpu_ptr(tfms, cpu) = tfm;	}	return tfms;error:	ipcomp6_free_tfms(tfms);	return NULL;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6fc8b9e7c60d4a3d4d7f1189f74e37651f5610e6/ipcomp6.c/buggy/net/ipv6/ipcomp6.c