<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - i915.ko corrupt text lines at top, [drm] GPU HANG: ecode 2:0:0x037fffc1, reason: Ring hung"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=96473#c14">Comment # 14</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - i915.ko corrupt text lines at top, [drm] GPU HANG: ecode 2:0:0x037fffc1, reason: Ring hung"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=96473">bug 96473</a>
              from <span class="vcard"><a class="email" href="mailto:fdporg@vega.pgw.jp" title="Taketo Kabe <fdporg@vega.pgw.jp>"> <span class="fn">Taketo Kabe</span></a>
</span></b>
        <pre>Created <span class=""><a href="attachment.cgi?id=124540" name="attach_124540" title="dmesg, drm.debug=6">attachment 124540</a> <a href="attachment.cgi?id=124540&action=edit" title="dmesg, drm.debug=6">[details]</a></span>
dmesg, drm.debug=6

Better (or worse) solution:
Hardcode that first 1MB of stolen memory is really reserved in 865G.

diff -p -U6 ./drivers/gpu/drm/i915/i915_gem_stolen.c.ville
./drivers/gpu/drm/i915/i915_gem_stolen.c
--- ./drivers/gpu/drm/i915/i915_gem_stolen.c.ville      2016-06-08
10:23:53.000000000 +0900
+++ ./drivers/gpu/drm/i915/i915_gem_stolen.c    2016-06-15 14:59:55.000000000
+0900
@@ -116,12 +116,13 @@ static unsigned long i915_stolen_to_phys
                 * one to be allocated by the BIOS?
                 */
                pci_bus_read_config_word(dev->pdev->bus, PCI_DEVFN(0, 0),
                                         I865_TOUD, &toud);

                base = toud << 16;
+               base += 1024 * 1024; /* FIXME assume first 1MB is really
reserved */
        } else if (IS_I85X(dev)) {
                u32 tseg_size = 0;
                u32 tom;
                u8 tmp;

                pci_bus_read_config_byte(dev->pdev->bus, PCI_DEVFN(0, 0),


This also works on real machine. No text corruption, no GPU HANG.


After these,
I'm beginning to think that <a href="show_bug.cgi?id=96473#c13">Comment 13</a> fix is nontheless right, because
- I865_TOUD is in "Reserved" region of 865G's PCI config registers.
  Depending on it is wrong, even if it holds sane value in practice.
- It looks like reserved memory is really reserved and not reusable for
/dev/fb0 .
  VGA BIOS et al is sitting there.

Ville Syrjala in <a href="https://patchwork.kernel.org/patch/3448921/">https://patchwork.kernel.org/patch/3448921/</a>
claimed that 865G is bit different and needs verify on a real system.
Maybe noone had tested on real system since.

865G is a decade-old chipset; for enterprise level, so maybe not worth effort 
to claim panic-proof /dev/fb0 region.
For others, "it works" is important and <a href="show_bug.cgi?id=96473#c13">Comment 13</a> fix is enough.
Any thoughts?

The reason I'm sticking to this problem is that I use CentOS 6
on 865G machine, and upstream RHEL6.8 started retrofitting
kernel 4.4 drivers/gpu/drm/ code onto kernel 2.6.32 (amazing!).</pre>
        </div>
      </p>


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

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>