asm volatile ("1:	rdmsr\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	movl %4,%0\n" "	jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align 4\n" "	.long 1b,3b\n" ".previous":"=&bDS" (err), "=a"(*eax), "=d"(*edx) :"c"(reg), "i"(-EIO), "0"(0));
err = rdmsr_safe(reg, eax, edx); if (err) err = -EIO;
static inline int rdmsr_eio(u32 reg, u32 *eax, u32 *edx){	int err;	asm volatile ("1:	rdmsr\n"		      "2:\n"		      ".section .fixup,\"ax\"\n"		      "3:	movl %4,%0\n"		      "	jmp 2b\n"		      ".previous\n"		      ".section __ex_table,\"a\"\n"		      "	.align 4\n"		      "	.long 1b,3b\n"		      ".previous":"=&bDS" (err), "=a"(*eax), "=d"(*edx)		      :"c"(reg), "i"(-EIO), "0"(0));	return err;}