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: Sun, 22 Jul 2007 12:45:26 +0200 From: Juergen Beisert <juergen127@...uzholzen.de> To: Alexey Dobriyan <adobriyan@...il.com> Cc: Andi Kleen <ak@...e.de>, patches@...-64.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH] [9/11] x86: Replace NSC/Cyrix specific chipset access macros by inlined functions. On Saturday 21 July 2007 14:00, Alexey Dobriyan wrote: > On Fri, Jul 20, 2007 at 05:32:53PM +0200, Andi Kleen wrote: > > --- /dev/null > > +++ linux/include/asm-i386/processor-cyrix.h > > @@ -0,0 +1,30 @@ > > +/* > > + * NSC/Cyrix CPU indexed register access. Must be inlined instead of > > + * macros to ensure correct access ordering > > + * Access order is always 0x22 (=offset), 0x23 (=value) > > + * > > + * When using the old macros a line like > > + * setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88); > > + * gets expanded to: > > + * do { > > + * outb((CX86_CCR2), 0x22); > > + * outb((({ > > + * outb((CX86_CCR2), 0x22); > > + * inb(0x23); > > + * }) | 0x88), 0x23); > > + * } while (0); > > + * > > + * which in fact violates the access order (= 0x22, 0x22, 0x23, 0x23). > > + */ > > + > > +static inline u8 getCx86(u8 reg) > > +{ > > + outb(reg, 0x22); > > + return inb(0x23); > > +} > > + > > +static inline void setCx86(u8 reg, u8 data) > > +{ > > + outb(reg, 0x22); > > + outb(data, 0x23); > > +} > > Why bother with new header, just make static inline in asm/processor.h. Already tried. But it requires asm/io.h everywhere, because it contains inb/outb. When they where macros that doesn't matter. Just included asm/io.h when these macros where used. But as inlined functions you need asm/io.h all the time. Juergen - 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