• Andrey Grodzovsky's avatar
    xen/pciback: Fix conf_space read/write overlap check. · 02ef871e
    Andrey Grodzovsky authored
    Current overlap check is evaluating to false a case where a filter
    field is fully contained (proper subset) of a r/w request.  This
    change applies classical overlap check instead to include all the
    scenarios.
    
    More specifically, for (Hilscher GmbH CIFX 50E-DP(M/S)) device driver
    the logic is such that the entire confspace is read and written in 4
    byte chunks. In this case as an example, CACHE_LINE_SIZE,
    LATENCY_TIMER and PCI_BIST are arriving together in one call to
    xen_pcibk_config_write() with offset == 0xc and size == 4.  With the
    exsisting overlap check the LATENCY_TIMER field (offset == 0xd, length
    == 1) is fully contained in the write request and hence is excluded
    from write, which is incorrect.
    Signed-off-by: default avatarAndrey Grodzovsky <andrey2805@gmail.com>
    Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Reviewed-by: default avatarJan Beulich <JBeulich@suse.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    02ef871e
conf_space.c 10.8 KB