diff --git a/src/arch/i386/include/ipxe/rdtsc_timer.h b/src/arch/i386/include/ipxe/rdtsc_timer.h index 472e140..d5095a7 100644 --- a/src/arch/i386/include/ipxe/rdtsc_timer.h +++ b/src/arch/i386/include/ipxe/rdtsc_timer.h @@ -30,7 +30,10 @@ static inline __always_inline unsigned long TIMER_INLINE ( rdtsc, currticks ) ( void ) { unsigned long ticks; - __asm__ __volatile__ ( "rdtsc\n\t" + __asm__ __volatile__ ( + "mfence\n\t" + "rdtsc\n\t" + "mfence\n\t" "shrdl %1, %%edx, %%eax\n\t" : "=a" ( ticks ) : "i" ( TSC_SHIFT ) : "edx" ); return ticks; diff --git a/src/include/assert.h b/src/include/assert.h index 40a00a2..8bae55c 100644 --- a/src/include/assert.h +++ b/src/include/assert.h @@ -29,7 +29,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); * to the printf symbol. */ extern int __attribute__ (( format ( printf, 1, 2 ) )) -assert_printf ( const char *fmt, ... ) asm ( "printf" ); +assert_printf ( const char *fmt, ... ) asm ( "ipxe_printf" ); /** * Assert a condition at run-time. diff --git a/src/include/compiler.h b/src/include/compiler.h index feea516..d5163b6 100644 --- a/src/include/compiler.h +++ b/src/include/compiler.h @@ -271,7 +271,7 @@ REQUEST_EXPANDED ( CONFIG_SYMBOL ); * to the printf symbol. */ extern int __attribute__ (( format ( printf, 1, 2 ) )) -dbg_printf ( const char *fmt, ... ) asm ( "printf" ); +dbg_printf ( const char *fmt, ... ) asm ( "ipxe_printf" ); extern void dbg_autocolourise ( unsigned long id ); extern void dbg_decolourise ( void );