• Michael S. Tsirkin's avatar
    IB/mthca: Don't cancel commands on a signal · e3aa31c5
    Michael S. Tsirkin authored
    We have run into the following problem: if a task receives a signal
    while in the process of e.g. destroying a resource (which could be
    because the relevant file was closed) mthca could bail out from trying
    to take a command interface semaphore without performing the
    appropriate command to tell hardware that the resource is being
    destroyed.
    
    As a result we see messages like
     ib_mthca 0000:04:00.0: HW2SW_CQ failed (-4)
    
    In this case, hardware could access the resource after the memory has
    been freed, possibly causing memory corruption.
    
    A simple solution is to replace down_interruptible() by down() in
    command interface activation.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@mellanox.co.il>
    [ It's also not safe to bail out on multicast table operations, since
      they may be invoked on the cleanup path too.  So use down() for
      mcg_table.sem too. ]
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    e3aa31c5
mthca_cmd.c 52 KB