1. 03 5月, 2007 1 次提交
  2. 07 12月, 2006 2 次提交
    • J
      [PATCH] i386: fix MTRR code · 365bff80
      Jan Beulich 提交于
      Until not so long ago, there were system log messages pointing to
      inconsistent MTRR setup of the video frame buffer caused by the way vesafb
      and X worked. While vesafb was fixed meanwhile, I believe fixing it there
      only hides a shortcoming in the MTRR code itself, in that that code is not
      symmetric with respect to the ordering of attempts to set up two (or more)
      regions where one contains the other. In the current shape, it permits
      only setting up sub-regions of pre-exisiting ones. The patch below makes
      this symmetric.
      
      While working on that I noticed a few more inconsistencies in that code,
      namely
      - use of 'unsigned int' for sizes in many, but not all places (the patch
        is converting this to use 'unsigned long' everywhere, which specifically
        might be necessary for x86-64 once a processor supporting more than 44
        physical address bits would become available)
      - the code to correct inconsistent settings during secondary processor
        startup tried (if necessary) to correct, among other things, the value
        in IA32_MTRR_DEF_TYPE, however the newly computed value would never get
        used (i.e. stored in the respective MSR)
      - the generic range validation code checked that the end of the
        to-be-added range would be above 1MB; the value checked should have been
        the start of the range
      - when contained regions are detected, previously this was allowed only
        when the old region was uncacheable; this can be symmetric (i.e. the new
        region can also be uncacheable) and even further as per Intel's
        documentation write-trough and write-back for either region is also
        compatible with the respective opposite in the other
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      365bff80
    • A
      [PATCH] i386: fix buggy MTRR address checks · 9b483417
      Andreas Mohr 提交于
      Fix checks that failed to realize that values are 4-kB-unit-sized (note the
      format strings in this same diff context which *do* realize the unit size,
      via appended "000"!).  Also fix an incorrect below-1MB area check (as
      gathered from Jan Beulich's unapplied patch at
      http://www.ussg.iu.edu/hypermail/linux/kernel/0411.1/1378.html ) Update
      mtrr_add_page() docu to make 4-kB-sized calculation more obvious.
      
      Given several further items mentioned in Jan's patch mail, all in all MTRR
      code seems surprisingly buggy, for a surprisingly long period of time (many
      years).  Further work/investigation would be useful.
      
      TBD Note that my patch is pretty much UNTESTED, since I can only verify that it
      TBD successfully boots my machine, but I cannot test against actual buggy
      TBD hardware which would require these (formerly broken) checks.  Long -mm
      TBD simmering would make sense, especially since these now-working checks might
      TBD turn out to have adverse effects on unaffected hardware.
      Signed-off-by: NAndreas Mohr <andi@lisas.de>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Acked-by: NJan Beulich <jbeulich@novell.com>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      9b483417
  3. 26 9月, 2006 1 次提交
  4. 08 7月, 2005 1 次提交
  5. 26 6月, 2005 1 次提交
  6. 01 5月, 2005 1 次提交
  7. 17 4月, 2005 2 次提交