1. 14 Oct, 2009 1 commit
  2. 12 Oct, 2009 4 commits
    • Nitin Gupta's avatar
      ARM: force dcache flush if dcache_dirty bit set · 787b2faa
      Nitin Gupta authored
      
      
      On ARM, update_mmu_cache() does dcache flush for a page only if
      it has a kernel mapping (page_mapping(page) != NULL). The correct
      behavior would be to force the flush based on dcache_dirty bit only.
      
      One of the cases where present logic would be a problem is when
      a RAM based block device[1] is used as a swap disk. In this case,
      we would have in-memory data corruption as shown in steps below:
      
      do_swap_page()
      {
          - Allocate a new page (if not already in swap cache)
          - Issue read from swap disk
              - Block driver issues flush_dcache_page()
              - flush_dcache_page() simply sets PG_dcache_dirty bit and does not
                actually issue a flush since this page has no user space mapping yet.
          - Now, if swap disk is almost full, this newly read page is removed
            from swap cache and corrsponding swap slot is freed.
          - Map this page anonymously in user space.
          - update_mmu_cache()
              - Since this page does not have kernel mapping (its not in page/swap
                cache and is mapped anonymously), it does not issue dcache flush
                even if dcache_dirty bit is set by flush_dcache_page() above.
      
          <user now gets stale data since dcache was never flushed>
      }
      
      Same problem exists on mips too.
      
      [1] example:
       - brd (RAM based block device)
       - ramzswap (RAM based compressed swap device)
      Signed-off-by: default avatarNitin Gupta <ngupta@vflare.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      787b2faa
    • David Woodhouse's avatar
      x86: Move pci_iommu_init to rootfs_initcall() · 9a821b23
      David Woodhouse authored
      We want this to happen after the PCI quirks, which are now running at
      the very end of the fs_initcalls.
      
      This works around the BIOS problems which were originally addressed by
      commit db8be50c ('USB: Work around BIOS
      bugs by quiescing USB controllers earlier'), which was reverted in
      commit d93a8f82
      
      .
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      9a821b23
    • Dennis O'Brien's avatar
      [ARM] pxa: workaround errata #37 by not using half turbo switching · 4367216a
      Dennis O'Brien authored
      
      
      PXA27x Errata #37 implies system will hang when switching into or out of
      half turbo (HT bit in CLKCFG) mode, workaround this by not using it.
      Signed-off-by: default avatarDennis O'Brien <dennis.obrien@eqware.net>
      Cc: stable-2.6.31 <stable@kernel.org>
      Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
      4367216a
    • Julia Lawall's avatar
      [ARM] pxa/csb726: adjust duplicate structure field initialization · c639ef43
      Julia Lawall authored
      
      
      Currently the irq_type field of the csb726_lan_config structure is
      initialized twice.  The value in the first case,
      SMSC911X_IRQ_POLARITY_ACTIVE_LOW, is normally stored in the irq_polarity
      field, so I have renamed the field in the first initialization to that.
      Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
      Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
      c639ef43
  3. 11 Oct, 2009 7 commits
  4. 10 Oct, 2009 3 commits
  5. 09 Oct, 2009 5 commits
  6. 08 Oct, 2009 8 commits
  7. 07 Oct, 2009 12 commits