• Sebastian Ott's avatar
    s390/cio: fix pgid reserved check · d99e79ec
    Sebastian Ott authored
    The check to whom a device is reserved is done by checking the path
    state of the affected channel paths. If it turns out that one path is
    flagged as reserved by someone else the whole device is marked as such.
    
    However the meaning of the RESVD_ELSE bit is that the addressed device
    is reserved to a different pathgroup (and not reserved to a different
    LPAR). If we do this test on a path which is currently not a member of
    the pathgroup we could erroneously mark the device as reserved to
    someone else.
    
    To fix this collect the reserved state for all potential members of the
    pathgroup and only mark the device as reserved if all of those potential
    members have the RESVD_ELSE bit set.
    
    Cc: stable@vger.kernel.org
    Acked-by: default avatarPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
    Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    d99e79ec
device_pgid.c 14.1 KB