1. 11 Jun, 2003 34 commits
  2. 10 Jun, 2003 6 commits
    • Andrew Morton's avatar
      [PATCH] drivers/char/mem.c cleanup · a2249c27
      Andrew Morton authored
      From: David Mosberger <davidm@napali.hpl.hp.com>
      
      Here is a simplified version of the earlier /dev/mem cleanup.  This version
      of the patch no longer pretends to support uncached accesses via
      read()/write().  Instead, all it does is:
      
      - consolidate much of the ugly code in uncached_access()
      
      - move pgprot_noncached() macro to pgtable.h for i386, m68k, ppc, ppc64,
        and x86_64
      
      - fix the ia64 implementation to use efi_mem_attributes() to determine
        the cacheability of an address
      
      Eventually, we may want to replace the #ifdef CONFIG_IA64 with #ifdef
      CONFIG_EFI, but we can do this "on demand", if and when EFI-based x86
      machines become more common.
      a2249c27
    • Linus Torvalds's avatar
      Make chr_dev_init() happen after PCI init, but before low-level · 329bc121
      Linus Torvalds authored
      driver initializations
      329bc121
    • Andrew Morton's avatar
      [PATCH] dirty bit clearing on s390. · fe51fa16
      Andrew Morton authored
      From: Martin Schwidefsky <schwidefsky@de.ibm.com>
      
      The S390 hardware has the interesting characteristic that the storage key
      hardware which records a page's pte-dirtiness is also marked dirty when a
      page is modified by the disk hardware.
      
      Consequently, reading data from disk makes the page appear to be dirty and
      things which were read from disk need to be written back.
      
      Up to now s390 uses a special bit in the pte that is set in mk_pte for the
      first user of a page and makes set_pte to clear the storage key.  The problem
      is that this is a race condition if two processes want to access the same
      page simultaneously.  Then the page count is already > 1 in mk_pte and nobody
      will clear the storage key.  It doesn't lead to any data loss because what
      happens is that a clean page is considered dirty and is written back to the
      disk.  The worst scenario is a read only disk where this results in i/o
      errors (but no data loss).
      
      Martin's fix to this is to clear the page's dirty flag in SetPageUptodate().
      Which seems a bit kludgey, but I cannot think of a case in which this in
      incorrect, inadequate or inappropriate.  So...
      fe51fa16
    • Andrew Morton's avatar
      [PATCH] cpqarray.c: fix stack usage · 9174121c
      Andrew Morton authored
      From: Jorn Engel <joern@wohnheim.fh-wedel.de>
      
      Reduce stack usage in the cpqarray ioctl byt several hundred bytes.
      9174121c
    • Andrew Morton's avatar
      [PATCH] devfs_mk_dir() fix · 5e173955
      Andrew Morton authored
      From: Christoph Hellwig <hch@lst.de>
      
      There may be multiple gendisks with the same .devfs_name in scsi and we
      call devfs_mk_dir on each of them.  At present that causes a nasty error
      message.  It is better to permit devfs_mk_dir() to appear to have succeeded.
      
      ie: it's a `mkdir -p'.
      5e173955
    • Andrew Morton's avatar
      [PATCH] fix hangs with nfs to localhost · b91404d3
      Andrew Morton authored
      An NFS mount of localhost hangs the system under heavy writeout loads.
      
      This is because knfsd gets stuck in balance_dirty_pages().  It is not allowed
      to exit from there until the amount of dirty+writeback+unstable memory
      subsides.  But it will never subside because knfsd itself is responsible for
      cleaning the memory.
      
      This is just like the drivers/block/loop.c hang, only more complex.  We
      cannot simply disable knfsd's throttling because it would then swamp the
      machine under real loads when the clients are remote.
      
      So we introduce the concept of a "less throttled" process.  These processes
      are allowed to exceed the preset dirty memory limits by a little.  This
      allows knfsd to make progrws in writing things out while the local NFS
      clients are throttled.  It also ensures that knfsd will not swamp the machine
      when working on behalf of remote clients.
      
      Note that even though knfsd is allowed to exceed the default system-wide
      dirty memory threshold, this does _not_ cause other memory-dirtying tasks to
      get starved out.  This is because they are allowed to exit
      balance_dirty_pages() after having written their quota of pages, regardless
      of the current dirty memory state.
      b91404d3