Messages in this thread | | | Date | Thu, 19 Mar 2009 19:39:10 +0000 | From | Al Viro <> | Subject | Re: Nasal demons in preprocessor use (Re: [PATCH] test-suite: new preprocessor test case) |
| |
On Thu, Mar 19, 2009 at 08:27:58PM +0100, Ingo Molnar wrote: > Vegard, it's this bit: > > kmemcheck_define_bitfield(flags2, { > #ifdef CONFIG_IPV6_NDISC_NODETYPE > __u8 ndisc_nodetype:2; > #endif > #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) > __u8 do_not_encrypt:1; > __u8 requeue:1; > #endif > });
BTW, there's a related turd: kernel/cred.c if ( #ifdef CONFIG_KEYS !p->cred->thread_keyring && #endif clone_flags & CLONE_THREAD ) { is not only ucking fugly, it's not a valid C if you have PROFILE_ALL_BRANCHES set. Why? Because then we get if() #defined ;-/
BTW^2, speaking of that ifdef... What happens to static void put_cred_rcu(struct rcu_head *rcu) { struct cred *cred = container_of(rcu, struct cred, rcu);
if (atomic_read(&cred->usage) != 0) panic("CRED: put_cred_rcu() sees %p with usage %d\n", cred, atomic_read(&cred->usage));
security_cred_free(cred); key_put(cred->thread_keyring); key_put(cred->request_key_auth); release_tgcred(cred); put_group_info(cred->group_info); free_uid(cred->user); kmem_cache_free(cred_jar, cred); } if CONFIG_KEYS is not set?
| |