1. 30 Mar, 2007 6 commits
    • Bjorn Helgaas's avatar
      [IA64] fail mmaps that span areas with incompatible attributes · 6d40fc51
      Bjorn Helgaas authored
      Example memory map (from HP sx1000 with VGA enabled):
          0x00000 - 0x9FFFF supports only WB (cacheable) access
          0xA0000 - 0xBFFFF supports only UC (uncacheable) access
          0xC0000 - 0xFFFFF supports only WB (cacheable) access
      
      Some versions of X map the entire 0x00000-0xFFFFF area at once.  With the
      example above, this mmap must fail because there's no memory attribute that's
      safe for the entire area.
      
      Prior to this patch, we performed the mmap with a UC mapping.  When X
      accessed the WB memory at 0xC0000, it caused an MCA.  The crash can happen
      when mapping 0xC0000 from either /dev/mem or a /sys/.../legacy_mem file.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      6d40fc51
    • Bjorn Helgaas's avatar
      [IA64] allow WB /sys/.../legacy_mem mmaps · 2cb22e23
      Bjorn Helgaas authored
      Allow cacheable mmaps of legacy_mem if WB access is supported for the region.
      The "legacy_mem" file often contains a shadow option ROM, and some versions of
      X depend on this.
      
      Tim Yamin <plasm@roo.me.uk> reported that this change fixes X on a Dell
      PowerEdge 3250.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      2cb22e23
    • Bjorn Helgaas's avatar
      [IA64] make ioremap avoid unsupported attributes · 9b50ffb0
      Bjorn Helgaas authored
      Example memory map (from HP sx1000 with VGA enabled):
          0x00000 - 0x9FFFF supports only WB (cacheable) access
          0xA0000 - 0xBFFFF supports only UC (uncacheable) access
          0xC0000 - 0xFFFFF supports only WB (cacheable) access
      
      pci_read_rom() indirectly uses ioremap(0xC0000) to read the shadow VGA option
      ROM.  ioremap() used to default to a 16MB or 64MB UC kernel identity mapping,
      which would cause an MCA when reading 0xC0000 since only WB is supported there.
      
      X uses reads the option ROM to initialize devices.  A smaller test case is:
        # echo 1 > /sys/bus/pci/devices/0000:aa:03.0/rom
        # cp /sys/bus/pci/devices/0000:aa:03.0/rom x
      
      To avoid this, we can use the same ioremap_page_range() strategy that most
      architectures use for all ioremaps.  These page table mappings come out of the
      vmalloc area.  On ia64, these are in region 5 (0xA... addresses) and typically
      use 16KB or 64KB mappings instead of 16MB or 64MB mappings.  The smaller
      mappings give more flexibility to use the correct attributes.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      9b50ffb0
    • Bjorn Helgaas's avatar
      [IA64] rename ioremap variables to match i386 · c4add2e5
      Bjorn Helgaas authored
      No functional change, just use the same names as i386.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      c4add2e5
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · ce20269d
      Linus Torvalds authored
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
        [MIPS] SMTC: Fix recursion in instant IPI replay code.
        [MIPS] BCM1480: Fix setting of irq affinity.
        [MIPS] do_page_fault() needs to use raw_smp_processor_id().
        [MIPS] SMTC: Fix false trigger of debug code on single VPE.
        [MIPS] SMTC: irq_{enter,leave} and kstats keeping for relayed timer ints.
        [MIPS] lockdep: Deal with interrupt disable hazard in TRACE_IRQFLAGS
        [MIPS] lockdep: Handle interrupts in R3000 style c0_status register.
        [MIPS] MV64340: Add missing prototype for mv64340_irq_init().
        [MIPS] MT: MIPS_MT_SMTC_INSTANT_REPLAY currently conflicts with PREEMPT.
        [MIPS] EV64120: Include <asm/irq.h> to fix warning.
        [MIPS] Ocelot: Fix warning.
        [MIPS] Ocelot: Give PMON_v1_setup a proper prototype.
      ce20269d
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 · 9754c5f6
      Linus Torvalds authored
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
        [IA64] Fix arch/ia64/pci/pci.c:571: warning: `return' with a value
        [IA64] Speed up boot - skip unnecessary clock calibration
        [IA64] bugfix stack layout upside-down
        [IA64] Fix possible invalid memory access in ia64_setup_msi_irq()
      9754c5f6
  2. 29 Mar, 2007 34 commits