Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 06 Mar 2015 16:15:04 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-arm@FreeBSD.org
Subject:   [Bug 198360] ARMv6 L1 table overflow @ locore-v6.S
Message-ID:  <bug-198360-7@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198360

            Bug ID: 198360
           Summary: ARMv6 L1 table overflow @ locore-v6.S
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: arm
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: aoyama@peach.ne.jp

Created attachment 153912
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=153912&action=edit
locore-v6.diff

If define SOCDEV_PA/SOCDEV_VA and VA is located at last 63pages,
build_pagetables break after L1 table.
As a result kernel symbol is broken, and the kernel will crash.

L1 table is overflow by r3 is passed as fixed 64 pages.

/usr/src/sys/arm/arm/locore-v6.S
    128         /* Map 64MiB, preserved over calls to build_pagetables */
    129         mov     r3, #64

    137 #if defined(SOCDEV_PA) && defined(SOCDEV_VA)
    138         /* Create the custom map used for early_printf(). */
    139         ldr     r1, =SOCDEV_PA
    140         ldr     r2, =SOCDEV_VA
    141         bl      build_pagetables
    142 #endif

    342 build_pagetables:

    356         mov     r4, r3
    357 1:
    358         str     r1, [r0, r2]
    359         add     r2, r2, #4
    360         add     r1, r1, #(PTE1_SIZE)
    361         adds    r4, r4, #-1
    362         bhi     1b

Attached patch stop at end of L1 table.

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-198360-7>