On Tue, Feb 21, 2017 at 09:32:42PM -0800, Steve Kargl wrote:
> Well, I found the guilty commit.  r313934 breaks loading
> either i915kms.ko or drm2.ko on a Dell Latitude D530 laptop.
> details below.
> 
> I'll also note that starting at r313902 or so, after 
> loading i915kms.ko console output on vt is slooooooow.
> A simply 'time ls /usr/bin' reports 6.27 real, 4.00 user,
> and 1.08 sys, but the drawing on screen takes more than
> 30 seconds.  One can painfully watch each line of output
> be rastered across the screen.
> 
> Kib you can read the details below.  If you need more info,
> ping me.  I did notice that i686_mem.c used constants of the
> form 0xffffULL prior to the merge into x86_mem.c.  You now
> use 0xfffUL.  I have no idea whether this is related to 
> cause.

Well, yes, I found two instances more of such bugs, one seems to be innocent,
and another might be the issue.  Please try this on top of r313934 or
the latest HEAD.

diff --git a/sys/x86/x86/x86_mem.c b/sys/x86/x86/x86_mem.c
index 8e93883863a..d639224f840 100644
--- a/sys/x86/x86/x86_mem.c
+++ b/sys/x86/x86/x86_mem.c
@@ -260,7 +260,7 @@ x86_mrfetch(struct mem_range_softc *sc)
 
                /* Compute the range from the mask. Ick. */
                mrd->mr_len = (~(msrv & mtrr_physmask) &
-                   (mtrr_physmask | 0xfffL)) + 1;
+                   (mtrr_physmask | 0xfffLL)) + 1;
                if (!mrvalid(mrd->mr_base, mrd->mr_len))
                        mrd->mr_flags |= MDF_BOGUS;
 
@@ -638,7 +638,7 @@ x86_mrinit(struct mem_range_softc *sc)
         * Determine the size of the PhysMask and PhysBase fields in
         * the variable range MTRRs.
         */
-       mtrr_physmask = (((uint64_t)1 << cpu_maxphyaddr) - 1) & ~0xfffUL;
+       mtrr_physmask = (((uint64_t)1 << cpu_maxphyaddr) - 1) & ~0xfffULL;
 
        /* If fixed MTRRs supported and enabled. */
        if ((mtrrcap & MTRR_CAP_FIXED) && (mtrrdef & MTRR_DEF_FIXED_ENABLE)) {
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to