• Benjamin Herrenschmidt's avatar
    nouveau/bios: Fix tracking of BIOS image data · d06221c0
    Benjamin Herrenschmidt authored
    The code tries various methods for retreiving the BIOS data. However
    it doesn't clear the bios->data pointer between the iterations.
    
    In some cases, the shadow() method will fail and not update bios->data
    at all, which will cause us to "score" the old data and incorrectly
    attribute that score to the new method. This can cause double frees
    later when disposing of the unused data.
    
    Additionally, we were not freeing the data for methods that fail the
    score test (we only freed when a "best" is superseeded, not when the
    new method has a lower score than the exising "best"). Fix that as well.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    d06221c0
nouveau_bios.c 175 KB