Comment 30 for bug 89853

Revision history for this message
SBrewer (sbrewer) wrote : Re: [regression] X broken in Feisty Herd 5 Live

I think the Fedora patch is wrong, or is fixing a different problem. The Fedora patch is never even reach in the failure case presented in this bug report.
See my analysis here:

====== Cut from Vesa.c =========
    pScrn->modePool = VBEGetModePool (pScrn, pVesa->pVbe, pVesa->vbeInfo,
          V_MODETYPE_VBE);

    xf86ErrorFVerb(DEBUG_VERB, "\n");
    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, DEBUG_VERB,
     "Total Memory: %d 64KB banks (%dkB)\n", vbe->TotalMemory,
     (vbe->TotalMemory * 65536) / 1024);

    pVesa->mapSize = vbe->TotalMemory * 65536;
    if (pScrn->modePool == NULL) {
 xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No matching modes\n");
        vbeFree(pVesa->pVbe);

****** This is where the VESA driver bombs out ******
 return (FALSE);
    }

    VBESetModeNames(pScrn->modePool);

****** Fedora patch starts here !!! *******
    i = VBEValidateModes(pScrn, NULL, pScrn->display->modes,
     NULL, NULL, 0, 2048, 1, 0, 2048,
     pScrn->display->virtualX,
     pScrn->display->virtualY,
     pVesa->mapSize, LOOKUP_BEST_REFRESH);

    if (i <= 0) {
 xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes\n");
        vbeFree(pVesa->pVbe);
 return (FALSE);
    }