• Frederic Barrat's avatar
    cxl: Fix driver use count · 197267d0
    Frederic Barrat authored
    cxl keeps a driver use count, which is used with the hash memory model
    on p8 to know when to upgrade local TLBIs to global and to trigger
    callbacks to manage the MMU for PSL8.
    
    If a process opens a context and closes without attaching or fails the
    attachment, the driver use count is never decremented. As a
    consequence, TLB invalidations remain global, even if there are no
    active cxl contexts.
    
    We should increment the driver use count when the process is attaching
    to the cxl adapter, and not on open. It's not needed before the
    adapter starts using the context and the use count is decremented on
    the detach path, so it makes more sense.
    
    It affects only the user api. The kernel api is already doing The
    Right Thing.
    Signed-off-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
    Cc: stable@vger.kernel.org # v4.2+
    Fixes: 7bb5d91a ("cxl: Rework context lifetimes")
    Acked-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    197267d0
file.c 16.8 KB