On Sunday 06 January 2008, Miguel Botón wrote: > +#ifdef CONFIG_X86_32 > +asmlinkage long sys_iopl(unsigned long regsp) > +#else > +asmlinkage long sys_iopl(unsigned int level, struct pt_regs *regs) > +#endif > +{ > +#ifdef CONFIG_X86_32 > + volatile struct pt_regs *regs = (struct pt_regs *)®sp; > + unsigned int level = regs->bx; > +#endif
This #ifdef overload could probably be avoided if you just move the body of this function into an extra place and do static int do_iopl(unsigned int level, unsigned long *flags) { unsigned int old = (*flags >> 12) & 3; ... *flags = (*flags & ~X86_EFLAGS_IOPL) | (level << 12);; } #ifdef CONFIG_X86_32 asmlinkage long sys_iopl(unsigned long regsp) { /* why is this volatle anyway? */ volatile struct pt_regs *regs = (struct pt_regs *)®sp; unsigned int level = regs->bx; return do_iopl(regs->bx, ®s->flags); } #else asmlinkage long sys_iopl(unsigned int level, struct pt_regs *regs) { return do_iopl(level, ®s->flags); } #endif Arnd <>< -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/