1. 28 Jul, 2002 23 commits
    • Andrew Morton's avatar
      [PATCH] strict overcommit · 502bff06
      Andrew Morton authored
      Alan's overcommit patch, brought to 2.5 by Robert Love.
      
      Can't say I've tested its functionality at all, but it doesn't crash,
      it has been in -ac and RH kernels for some time and I haven't observed
      any of its functions on profiles.
      
      "So what is strict VM overcommit?  We introduce new overcommit
       policies that attempt to never succeed an allocation that can not be
       fulfilled by the backing store and consequently never OOM.  This is
       achieved through strict accounting of the committed address space and
       a policy to allow/refuse allocations based on that accounting.
      
       In the strictest of modes, it should be impossible to allocate more
       memory than available and impossible to OOM.  All memory failures
       should be pushed down to the allocation routines -- malloc, mmap, etc.
      
       The new modes are available via sysctl (same as before).  See
       Documentation/vm/overcommit-accounting for more information."
      502bff06
    • Andrew Morton's avatar
      [PATCH] for_each_zone macro · a4b065fa
      Andrew Morton authored
      Patch from Robert Love.
      
      Attached patch implements for_each_zone(zont_t *) which is a helper
      macro to cleanup code of the form:
      
              for (pgdat = pgdat_list; pgdat; pgdat = pgdat->node_next) {
                      for (i = 0; i < MAX_NR_ZONES; ++i) {
                              zone_t * z = pgdat->node_zones + i;
                              /* ... */
                      }
              }
      
      and replace it with:
      
              for_each_zone(zone) {
                      /* ... */
              }
      
      This patch only replaces one use of the above loop with the new macro.
      Pending code, however, currently in the full rmap patch uses
      for_each_zone more extensively.
      a4b065fa
    • Andrew Morton's avatar
      [PATCH] for_each_pgdat macro · f183c478
      Andrew Morton authored
      Patch from Robert Love.
      
      This patch implements for_each_pgdat(pg_data_t *) which is a helper
      macro to cleanup code that does a loop of the form:
      
              pgdat = pgdat_list;
              while(pgdat) {
      	        /* ... */
      	        pgdat = pgdat->node_next;
      	}
      
      and replace it with:
      
      	for_each_pgdat(pgdat) {
      		/* ... */
      	}
      
      This code is from Rik's 2.4-rmap patch and is by William Irwin.
      f183c478
    • Andrew Morton's avatar
      [PATCH] optimise struct page layout · a854c11b
      Andrew Morton authored
      Reorganise the members of struct page.
      
      - Place ->flags at the start so the compiler can generate indirect
        addressing rather than indirect+indexed for this commonly-accessed
        field.  Shrinks the kernel by ~100 bytes.
      
      - Keep ->count with ->flags so they have the best chance of
        being in the same cacheline.
      a854c11b
    • Andrew Morton's avatar
      [PATCH] speed up pte_chain locking on uniprocessors · ab35295d
      Andrew Morton authored
      ifdef out some operations in pte_chain_lock() which are not necessary
      on uniprocessor.
      ab35295d
    • Andrew Morton's avatar
      [PATCH] show_free_areas() cleanup · c1ab3459
      Andrew Morton authored
      Cleanup to show_free_areas() from Bill Irwin:
      
      show_free_areas() and show_free_areas_core() is a mess.
      (1) it uses a bizarre and ugly form of list iteration to walk buddy lists
              use standard list functions instead
      (2) it prints the same information repeatedly once per-node
              rationalize the braindamaged iteration logic
      (3) show_free_areas_node() is useless and not called anywhere
              remove it entirely
      (4) show_free_areas() itself just calls show_free_areas_core()
              remove show_free_areas_core() and do the stuff directly
      (5) SWAP_CACHE_INFO is always #defined, remove it
      (6) INC_CACHE_INFO() doesn't use the do { } while (0) construct
      
      This patch also includes Matthew Dobson's patch which removes
      mm/numa.c:node_lock.  The consensus is that it doesn't do anything now
      that show_free_areas_node() isn't there.
      c1ab3459
    • Andrew Morton's avatar
      [PATCH] use a slab cache for pte_chains · cbb6e8ec
      Andrew Morton authored
      Patch from Bill Irwin.
      
      It removes the custom pte_chain allocator in mm/rmap.c and replaces it
      with a slab cache.
      
      "This patch
       (1) eliminates the pte_chain_freelist_lock and all contention on it
       (2) gives the VM the ability to recover unused pte_chain pages
      
       Anton Blanchard has reported (1) from prior incarnations of this patch.
       Craig Kulesa has reported (2) in combination with slab-on-LRU patches.
      
       I've left OOM detection out of this patch entirely as upcoming patches
       will do real OOM handling for pte_chains and all the code changed anyway."
      cbb6e8ec
    • Andrew Morton's avatar
      [PATCH] misc fixes · 1a40868e
      Andrew Morton authored
      There are a few VM-related patches in this series.  Mainly fixes;
      feature work is on hold.
      
      We have some fairly serious locking contention problems with the reverse
      mapping's pte_chains.  Until we have a clear way out of that I believe
      that it is best to not merge code which has a lot of rmap dependency.
      
      It is apparent that these problems will not be solved by tweaking -
      some redesign is needed.  In the 2.5 timeframe the only practical
      solution appears to be page table sharing, based on Daniel's February
      work.  Daniel and Dave McCracken are working that.
      
      Some bits and pieces here:
      
      - list_splice() has an open-coded list_empty() in it.  Use
        list_empty() instead.
      
      - in shrink_cache() we have a local `nr_pages' which shadows another
        local.  Rename the inner one.  (Nikita Danilov)
      
      - Add a BUG() on a can't-happen code path in page_remove_rmap().
      
      - Tighten up the bug checks in the BH completion handlers - if the
        buffer is still under IO then it must be locked, because we unlock it
        inside the page_uptodate_lock.
      1a40868e
    • Linus Torvalds's avatar
      Since "access_process_vm()" releases pages that can be · 4e3663d7
      Linus Torvalds authored
      in the page cache, it needs to use page_cache_release()
      instead of plain "put_page()".
      4e3663d7
    • Ingo Molnar's avatar
      [PATCH] APM fixes, 2.5.29 · 06ba030a
      Ingo Molnar authored
      the attached patch fixes two things:
      
       - a TLS related bug noticed by Arjan van de Ven: apm_init() should set up
         all CPU's gdt entries - just in case some code happens to call in the
         APM BIOS on the wrong CPU. This should also handle the case when some
         APM code gets triggered (by suspend or power button or something).
      
       - compilation problem
      06ba030a
    • Trond Myklebust's avatar
      [PATCH] Support for cached lookups via readdirplus [6/6] · ab12b34b
      Trond Myklebust authored
      Add support for the glibc 'd_type' field in cases where we have the
      READDIRPLUS file attribute information available to us in
      nfs_do_filldir().
      ab12b34b
    • Trond Myklebust's avatar
      [PATCH] Support for cached lookups via readdirplus [4/6] · 668609dc
      Trond Myklebust authored
      Add support for positive lookups using the READDIRPLUS cached
      information. Both new lookups and lookup revalidation is supported.
      
      Use READDIRPLUS instead of READDIR on NFSv3 directories with lengths
      shorter than 8*PAGE_SIZE.
      
      Note that inode attribute information is only updated if it is seen to
      be more recent than any existing cached information.
      668609dc
    • Trond Myklebust's avatar
      [PATCH] Support for cached lookups via readdirplus [3/6] · c385d3e1
      Trond Myklebust authored
      Cache the information about whether or not the server supports
      READDIRPLUS.
      c385d3e1
    • Trond Myklebust's avatar
      [PATCH] Support for cached lookups via readdirplus [2/6] · 002d7911
      Trond Myklebust authored
      Cleanup for readdirplus. Allow the file attribute struct to set the
      NFS_READTIME(inode) to some value other than 'jiffies'.
      002d7911
    • Trond Myklebust's avatar
      [PATCH] Support for cached lookups via readdirplus [1/6] · 4fe70049
      Trond Myklebust authored
      Cleanup for the readdirplus code. Make struct nfs_entry take pointers
      to the filehandle and file attributes.
      4fe70049
    • Trond Myklebust's avatar
      [PATCH] Set PG_uptodate in nfs_writepage_sync() · 4102986d
      Trond Myklebust authored
      A patch by Charles Lever (Charles.Lever@netapp.com) that ensures the
      PG_uptodate bit gets set if an entire page gets written by
      nfs_writepage_sync().
      4102986d
    • Muli Ben-Yehuda's avatar
      [PATCH] sound/oss/trident.c [2/2] remove cli/sti calls · 30bf5c63
      Muli Ben-Yehuda authored
      This patch replaces the cli/sti calls in the trident.c driver with
      spin_lock_irqsave/spin_unlock_irqrestore.
      30bf5c63
    • Muli Ben-Yehuda's avatar
      [PATCH] sound/oss/trident.c [1/2] merge driver from 2.4-ac · 789672c3
      Muli Ben-Yehuda authored
      This patch (1/2) brings the sound/oss/trident.c driver up to date with
      the driver in the 2.4-ac tree. It fixes the following bugs:
      
      * fix wrong cast in suspend/resume (Eric Lemar via Ian Soboroff)
      
      * fix bug where we would free with free_pages() memory allocated via
      pci_alloc_consistent().
      
      * add a missing unlock on an error path.
      
      * rewrite the code to read/write registers of audio codecs for Ali5451
      (Lei Hu)
      
      It also does various cleanups so that the code conforms to
      Documentation/CodingStyle and is nicer to work with.
      789672c3
    • Linus Torvalds's avatar
      Merge bk://bkbits.ras.ucalgary.ca/rgooch-2.5 · 61887e47
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      61887e47
    • Richard Gooch's avatar
      Removed deprecated devfs_find_handle() · 47fff65a
      Richard Gooch authored
      47fff65a
    • Oleg Nesterov's avatar
      [PATCH] fix Thread-Local Storage GDT access · 39520ba4
      Oleg Nesterov authored
      The gdt entry is consulted only while loading its index into
      the segment register.
      
      So load_TLS_desc(next, cpu) must be called before loading
      next->fs,next->gs in __switch_to().
      39520ba4
    • Linus Torvalds's avatar
      Merge · c828dc4b
      Linus Torvalds authored
      c828dc4b
    • Christoph Hellwig's avatar
      Implement down_read_trylock() and down_write_trylock() and add a · ee6536f8
      Christoph Hellwig authored
      generic spinlock implementation for downgrade_write().
      ee6536f8
  2. 27 Jul, 2002 16 commits
    • Paul Mackerras's avatar
      Merge samba.org:/home/paulus/kernel/linux-2.5 · 46979afd
      Paul Mackerras authored
      into samba.org:/home/paulus/kernel/for-linus-ppc
      46979afd
    • Paul Mackerras's avatar
      Merge samba.org:/home/paulus/kernel/linux-2.5 · 0f4d7d65
      Paul Mackerras authored
      into samba.org:/home/paulus/kernel/for-linus-ppc
      0f4d7d65
    • Paul Mackerras's avatar
      PPC32: add a comment explaining leap year calculation. · 9a692aef
      Paul Mackerras authored
      Since we have a signed 32-bit time_t, the fact that y % 4 == 0
      will get it wrong in 2100 is irrelevant.
      9a692aef
    • Linus Torvalds's avatar
      Merge bk://bkbits.ras.ucalgary.ca/rgooch-2.5 · d45db7c2
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      d45db7c2
    • Linus Torvalds's avatar
      Move cmd640_lock outside the CONFIG_BLK_DEV_CMD640_ENHANCED · 13243cc5
      Linus Torvalds authored
      test, since it is needed regardless.
      13243cc5
    • Alan Cox's avatar
      [PATCH] PATCH: 2.5.29 Fix cmd640 config locking · 0884bb35
      Alan Cox authored
      We use the pci host lock so that we lock config space portably while
      handling the CMD640 config space via our own routines to avoid pci bios
      tripping CMD640 hardware stuff. We need to use this lock in order to
      ensure that we lock at a portable layer. Also add the 2.4.19 fixes for
      avoiding wrong probes, and the fix noted on the list.
      0884bb35
    • Alan Cox's avatar
      [PATCH] PATCH: 2.5.29 Fix pnpbios · 81c70f08
      Alan Cox authored
      This should do the trick for pnpbios - we load the initial gdt into each
      gdt, and we load the parameters into the gdt of the cpu making the call
      relying on the spinlock to avoid bouncing cpu due to pre-empt
      81c70f08
    • Matthew Wilcox's avatar
      [PATCH] LSM file locking patch is bogus · c997a03d
      Matthew Wilcox authored
       - Remove third argument from file_lock security op.  Whether the lock is
         blocking or not cannot make any difference to a security module!
       - Fix the call in sys_flock to pass the translated lock command, not the
         original.
       - Add a call in fcntl_setlease.  If they're going to know about two types
         of lock, let's tell them about the third too.
      c997a03d
    • Andries E. Brouwer's avatar
      [PATCH] partition fix · cab49a97
      Andries E. Brouwer authored
      The patch below does two things:
      
      (i) fixes a small bug in the new partition code
      This is the final chunk s/n/slot/. I'll refrain from giving a vi script.
      This is uncontroversial.
      
      (ii) removes ancient garbage concerning disk managers
      This may well be controversial.
      
      (Long ago, when disks became larger than 500 MB, lots of tricks were
      invented to keep DOS happy. Both hardware tricks and software tricks.
      One of the software tricks was the invention of boot managers.
      There have been many of those. The Linux kernel has had support
      for two of them: OnTrack Disk Manager and EZdrive.
      More precisely: there have been many versions of both OnTrack Disk Manager
      and EZdrive, and the kernel had support for a few of these versions.
      
      I think the time has come to remove the automatic support - every now
      and then it bites some innocent user, and the support is not really
      needed any longer, and the support is for outdated versions of these
      boot managers.
      
      No doubt it will turn out that users still exist that use some form
      of this stuff, but I would prefer to support them by explicit
      kernel boot parameters, rather than by code that guesses what
      might be the right thing to do.
      
      The patch below just rips out the old stuff. Depending on the screams
      this might provoke I expect to add some boot parameters.)
      cab49a97
    • Ingo Molnar's avatar
      [PATCH] fix synchronize_irq() bug · 3f9a1484
      Ingo Molnar authored
      This fixes a synchronize_irq() bug: if the interrupt is freed while an
      IRQ handler is running (irq state is IRQ_INPROGRESS) then
      synchronize_irq() will return early, which is incorrect.
      
      there was another do_IRQ() bug that in fact necessiated the bad code that
      caused the synchronize_irq() bug - we kept the IRQ_INPROGRESS bit set for
      not active interrupt sources - after they happen for the first time. Now
      the only effect this has is on i8259A irq handling - we used to keep these
      irqs disabled after the first 'spurious' interrupt happened.  Now what the
      i8259A code really wants to do IMO is to keep the interrupt disabled if
      there is no handler defined for that interrupt source. The patch adds
      exactly this. I dont remember why this was needed in the first place (irq
      probing? avoidance of interrupt storms?), but with the patch the behavior
      should be equivalent.
      3f9a1484
    • William Lee Irwin III's avatar
      [PATCH] PAE compile fix · c005bcd1
      William Lee Irwin III authored
      Fix PMD typo
      c005bcd1
    • Anders Gustafsson's avatar
      [PATCH] Add argument to synchronize_irq in cs46xx · f1b1a146
      Anders Gustafsson authored
      Added irq-argument to synchronize_irq to make sound/oss/cs46xx.c
      compile again.
      f1b1a146
    • Peter Osterlund's avatar
      [PATCH] Fix "make xconfig" · adfaafa1
      Peter Osterlund authored
      adfaafa1
    • Ingo Molnar's avatar
      [PATCH] scheduler, migration startup fixes, 2.5.29 · cd4cb274
      Ingo Molnar authored
      the attached patch fixes the scheduler's migration thread startup bug that
      got unearthed by Rusty's recent CPU-startup enhancements.
      
      the fix is to let a startup-helper thread migrate the migration thread,
      instead of the migration thread calling set_cpus_allowed() itself.
      Migrating a not running thread is a simple and robust thing, and needs no
      cooperation from migration threads - thus the catch-22 problem of how to
      migrate the migration threads is solved finally.
      
      the patch is against Rusty's initcall fix/hack which calls
      migration_init() before other CPUs are brought up - this ordering is
      clearly the clean way of doing migration init. [the patch also fixes a UP
      compiliation bug in Rusty's hack.]
      cd4cb274
    • Rusty Russell's avatar
      [PATCH] Hot-plug CPU notifier warning fix · 9f3d6f92
      Rusty Russell authored
      As pointed out by Andrew Morton, this fixes:
      	softirq.c: In function `spawn_ksoftirqd':
      	softirq.c:416: warning: statement with no effect
      9f3d6f92
    • Rusty Russell's avatar
      [PATCH] Fix ksoftirqd and migration threads initcalls · 9ef49e90
      Rusty Russell authored
      This patch fixes the calls to initialize ksoftirqd and the
      migration threads.  This really should be done by the initcall
      depends patch.
      9ef49e90
  3. 28 Jul, 2002 1 commit
    • Guido Barzini's avatar
      [ARM PATCH] 1179/1: ldm/stm alignement fixups: treat 920T the same as 922T · e861caac
      Guido Barzini authored
       The check in do_alignment_ldmstm for addr and eaddr being the same is #ifdef'd
      out for the ARM922T because they aren't expected to be the same due to the 
      different way the MMU sets addr. The ARM920T is just a 922T with more cache, 
      and should be treated the same. I've checked on a real ARM920T and it does 
      complain loudly every time it fixes up a misaligned ldm/stm unless this 
      patch is applied.
       I suspect that the ARM926 should be treated the same way as well, but I can't
      find any relevant documentation on ARM's web-site, so have left it out. 
      e861caac