<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Nvidia 640M devinit fails"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99372#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Nvidia 640M devinit fails"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99372">bug 99372</a>
              from <span class="vcard"><a class="email" href="mailto:imirkin@alum.mit.edu" title="Ilia Mirkin <imirkin@alum.mit.edu>"> <span class="fn">Ilia Mirkin</span></a>
</span></b>
        <pre>OK, so ... similar issue as before - it creates a temporary buffer sized to the
incoming argument's size, and THEN truncates the size argument. Great.... so we
just get the first 4K back with the "fast acpi" method. However at that point,
the checksum really oughtn't match. But I don't see the "checksum failed"
message. So it does match? Or somehow the second bogus image increases the
score to 4? Not sure...

Method (_ROM, 2, NotSerialized)  // _ROM: Read-Only Memory
{
    Local0 = Arg0
    Local1 = Arg1
    Name (VROM, Buffer (Local1)
    {
         0x00                                             /* . */
    })
    If (Local1 > 0x1000)
    {
        Local1 = 0x1000
    }

    If (Arg0 > RVBS)
    {
        Return (VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */
    }

    Local2 = (Arg0 + Arg1)
    If (Local2 > RVBS)
    {
        Local1 = (RVBS - Local0)
    }

    If (Local0 < 0x8000)
    {
        Mid (VBS1, Local0, Local1, VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */
    }
    Else
    {
        Local0 -= 0x8000
        If (Local0 < 0x8000)
        {
            Mid (VBS2, Local0, Local1, VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM
*/
        }
        Else
        {
            Local0 -= 0x8000
            If (Local0 < 0x8000)
            {
                Mid (VBS3, Local0, Local1, VROM) /*
\_SB_.PCI0.PEG0.PEGP._ROM.VROM */
            }
            Else
            {
                Local0 -= 0x8000
                If (Local0 < 0x8000)
                {
                    Mid (VBS4, Local0, Local1, VROM) /*
\_SB_.PCI0.PEG0.PEGP._ROM.VROM */
                }
            }
        }
    }

    Return (VROM) /* \_SB_.PCI0.PEG0.PEGP._ROM.VROM */
}</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>