diff --git a/drivers/xen/mcelog.c b/drivers/xen/mcelog.c index 4f65b641c054..abe658c73b7b 100644 --- a/drivers/xen/mcelog.c +++ b/drivers/xen/mcelog.c @@ -165,9 +165,7 @@ static long xen_mce_chrdev_ioctl(struct file *f, unsigned int cmd, case MCE_GETCLEAR_FLAGS: { unsigned flags; - do { - flags = xen_mcelog.flags; - } while (cmpxchg(&xen_mcelog.flags, flags, 0) != flags); + flags = xchg(&xen_mcelog.flags, 0); return put_user(flags, p); }