• J
    lib: logic_pio: Fix RCU usage · 5679078b
    John Garry 提交于
    commit 06709e81c668f5f56c65b806895b278517bd44e0 upstream.
    
    The traversing of io_range_list with list_for_each_entry_rcu()
    is not properly protected by rcu_read_lock() and rcu_read_unlock(),
    so add them.
    
    These functions mark the critical section scope where the list is
    protected for the reader, it cannot be  "reclaimed". Any updater - in
    this case, the logical PIO registration functions - cannot update the
    list until the reader exits this critical section.
    
    In addition, the list traversing used in logic_pio_register_range()
    does not need to use the rcu variant.
    
    This is because we are already using io_range_mutex to guarantee mutual
    exclusion from mutating the list.
    
    Cc: stable@vger.kernel.org
    Fixes: 031e3601 ("lib: Add generic PIO mapping method")
    Signed-off-by: NJohn Garry <john.garry@huawei.com>
    Signed-off-by: NWei Xu <xuwei5@hisilicon.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    5679078b
logic_pio.c 7.9 KB