• Tejun Heo's avatar
    libata: disable ATAPI AN by default · e7ecd435
    Tejun Heo authored
    There are ATAPI devices which raise AN when hit by commands issued by
    open().  This leads to infinite loop of AN -> MEDIA_CHANGE uevent ->
    udev open() to check media -> AN.
    
    Both ACS and SerialATA standards don't define in which case ATAPI
    devices are supposed to raise or not raise AN.  They both list media
    insertion event as a possible use case for ATAPI ANs but there is no
    clear description of what constitutes such events.  As such, it seems
    a bit too naive to export ANs directly to userland as MEDIA_CHANGE
    events without further verification (which should behave similarly to
    windows as it apparently is the only thing that some hardware vendors
    are testing against).
    
    This patch adds libata.atapi_an module parameter and disables ATAPI AN
    by default for now.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Kay Sievers <kay.sievers@vrfy.org>
    Cc: Nick Bowler <nbowler@elliptictech.com>
    Cc: David Zeuthen <david@fubar.dk>
    Cc: stable@kernel.org
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    e7ecd435
libata-core.c 172 KB