• Tim Hockin's avatar
    x86_64: O_EXCL on /dev/mcelog · f528e7ba
    Tim Hockin authored
    Background:
     /dev/mcelog is a clear-on-read interface.  It is currently possible for
     multiple users to open and read() the device.  Users are protected from
     each other during any one read, but not across reads.
    
    Description:
     This patch adds support for O_EXCL to /dev/mcelog.  If a user opens the
     device with O_EXCL, no other user may open the device (EBUSY).  Likewise,
     any user that tries to open the device with O_EXCL while another user has
     the device will fail (EBUSY).
    
    Result:
     Applications can get exclusive access to /dev/mcelog.  Applications that
     do not care will be unchanged.
    
    Alternatives:
     A simpler choice would be to only allow one open() at all, regardless of
     O_EXCL.
    
    Testing:
     I wrote an application that opens /dev/mcelog with O_EXCL and observed
     that any other app that tried to open /dev/mcelog would fail until the
     exclusive app had closed the device.
    
    Caveats:
     None.
    Signed-off-by: default avatarTim Hockin <thockin@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f528e7ba
mce.c 19.1 KB