lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 16 Nov 2015 13:30:10 +0530 From: Vineet Gupta <Vineet.Gupta1@...opsys.com> To: Rasmus Villemoes <linux@...musvillemoes.dk>, Paul Gortmaker <paul.gortmaker@...driver.com>, Ingo Molnar <mingo@...hat.com>, Andrew Morton <akpm@...ux-foundation.org>, Thomas Gleixner <tglx@...utronix.de>, "H. Peter Anvin" <hpa@...or.com>, Michal Marek <mmarek@...e.cz> CC: "linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>, <linux-kernel@...r.kernel.org>, arcml <linux-snps-arc@...ts.infradead.org> Subject: using IS_ENABLED(CONFIG_xyz) effectively Hi, I've been using IS_ENABLED for some time and once in a while run into an issue which prevents seamless use. Hence posing this question to experts in the area. C macro processor evaluates the ensuing control block even if IS_ENABLED evaluates to false. This requires dummy #defines or worse still removing usage of IS_ENABLED altogether. e.g. In example below even for ARCOMPACT builds, we need the ARCV2 specific define ARCV2_IRQ_DEF_PRIO. void arch_cpu_idle(void) { if (is_isa_arcompact()) { <---- IS_ENABLED(CONFIG_ISA_ARCOMPACT) __asm__("sleep 0x3"); } else { const int arg = 0x10 | ARCV2_IRQ_DEF_PRIO; __asm__("sleep 0x10"); } } One could argue that the interface needs to be cleanly defined to not have such specific #defines in common code in first place. However sometime that becomes just too tedious. Is there a way to get around by this ? Thx, -Vineet -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists