1. 21 Aug, 2003 17 commits
  2. 20 Aug, 2003 23 commits
    • Linus Torvalds's avatar
    • Linus Torvalds's avatar
      NCR5380: don't play games with NCR5380_proc_info() - just mark it · d4a48a38
      Linus Torvalds authored
      static unconditionally, to allow multiple built-in modules.
      d4a48a38
    • Andrew Morton's avatar
      [PATCH] fix /proc mm_struct refcounting bug · 7d33101c
      Andrew Morton authored
      From: Suparna Bhattacharya <suparna@in.ibm.com>
      
      The /proc code's bare atomic_inc(&mm->count) is racy against __exit_mm()'s
      mmput() on another CPU: it calls mmput() outside task_lock(tsk), and
      task_lock() isn't appropriate locking anyway.
      
      So what happens is:
      
      	CPU0			          CPU1
      
            mmput()
            ->atomic_dec_and_lock(mm->mm_users)
                                                atomic_inc(mm->mm_users)
            ->list_del(mm->mmlist)
                                                mmput()
                                                ->atomic_dec_and_lock(mm->mm_users)
                                                ->list_del(mm->mmlist)
      
      And the double list_del() of course goes splat.
      
      So we use mmlist_lock to synchronise these steps.
      
      The patch implements a new mmgrab() routine which increments mm_users only if
      the mm isn't already going away.  Changes get_task_mm() and proc_pid_stat()
      to call mmgrab() instead of a direct atomic_inc(&mm->mm_users).
      
      Hugh, there's some cruft in swapoff which looks like it should be using
      mmgrab()...
      7d33101c
    • Andrew Morton's avatar
      [PATCH] Fix CPU boot problem · e3e0c299
      Andrew Morton authored
      From: Dave Hansen <haveblue@us.ibm.com>
      
      Hmmm.  This is looking like fallout from the massive wli-bomb.  Here's
      the loop that controls the cpu booting, before and after cpumask_t:
      
      -	for (bit = 0; kicked < NR_CPUS && bit < BITS_PER_LONG; bit++)
      +	for (bit = 0; kicked < NR_CPUS && bit < MAX_APICS; bit++)
      		apicid = cpu_present_to_apicid(bit);
      
      "kicked" only gets incremented for CPUs that were successfully booted,
      so it doesn't help terminate the loop much.  MAX_APICS is 256 on summit,
      which is *MUCH* bigger than BITS_PER_LONG.
      cpu_2_logical_apicid[NR_CPUS] which is referenced from
      cpu_present_to_apicid() is getting referenced up to MAX_APICs, which is
      bigger than NR_CPUS.  Overflow.  Bang.  garbage != BAD_APICID :)
      e3e0c299
    • Andrew Morton's avatar
      [PATCH] missing io_apic.h inclusions · 10d37660
      Andrew Morton authored
      From: Emilio Gallego Arias <egallego@telefonica.net>
      
      Apparently a couple of files now need io_apic.h.
      10d37660
    • Andrew Morton's avatar
      [PATCH] export device_suspend() and device_resume() · 63ee8443
      Andrew Morton authored
      apm.c (at least) needs these.
      63ee8443
    • Andrew Morton's avatar
      [PATCH] fix for htree corruption · b3535b93
      Andrew Morton authored
      From: chrisl@vmware.com
      
      Fixes the "perl installer weirdness" problem which a few people have been
      reporting.
      
      The bug is triggered by creating the index.  Coping out the index we assume
      the dirents start with the first entry after "." "..".
      
      It can make the first previous deleted entry reappear.  In the past we set
      inode to zero for an empty entry so this is not a problem.  That is not
      true any more.
      
      Also, there were a few places where we were altering inode times after
      running ext3_mark_inode_dirty().  We should be doing that beforehand.
      b3535b93
    • Andrew Morton's avatar
      [PATCH] dmi_scan warning fix · 95bc26dc
      Andrew Morton authored
      dmi_dump_system() is only used if CONFIG_ACPI_BOOT.
      95bc26dc
    • Andrew Morton's avatar
      [PATCH] update Documentation/filesystems/Locking · 7f2db912
      Andrew Morton authored
      From: Matthew Wilcox <willy@debian.org>
      
      Here's an update to Documentation/filesystems/Locking.
      7f2db912
    • Andrew Morton's avatar
      [PATCH] fix intel copy_to_user() · 090cd1b4
      Andrew Morton authored
      A `cat /dev/kmem' oopses the kernel.  This is because new Intel
      copy_to_user() doesn't handle segfaults against the kernel-side source
      address of the copy.
      
      It is not obvious how to fix read_kmem(), and handling faults on either
      source or dest is traditional behaviour, so fix it in the copy function by
      adding exception table entries for the reads as well as the writes.
      090cd1b4
    • Andrew Morton's avatar
      [PATCH] dscc4: module refcounting · 895b7792
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      Recent MOD_{INC/DEC}_USE_COUNT removal missed a MOD_DEC_USE_COUNT.
      895b7792
    • Andrew Morton's avatar
      [PATCH] dscc4: various · 1fd793da
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      - silly indentation;
      - let's be more user-friendly with manufacturer specific (mis)feature:
        + s/CONFIG_DSCC4_CLOCK_ON_TWO_PORTS_ONLY/CONFIG_DSCC4_PCISYNC/
        + KConfig adequate entry
      - broken warning message.
      1fd793da
    • Andrew Morton's avatar
      [PATCH] dscc4: CCR1 register fixes · c94a6733
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      CCR1 register voodoo: asic handles itself the flow control.
      c94a6733
    • Andrew Morton's avatar
      [PATCH] dscc4: reset changes · a37a0775
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      Workaround for lack of true reset:
      - devices/ports are put in silent mode at ifconfig down time but some
        state is kept around to allow 'ifconfig up' issuing at a later time.
        Device specific structures are allocated when the pci asic is
        probed: dscc4_init_ring() moves from dscc4_open() to dscc4_found1().
      - try to use reset related board-specific feature at module removal
        time if available. Comments in the code explain the whole story.
        Not a complicated feature but it is unavailable on the cards I own
        and no user gave me feedback -> currently untested.
        It shouldn't harm anyway.
      a37a0775
    • Andrew Morton's avatar
      [PATCH] dscc4: scc changes · 1bcf2af4
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      - more #define for specific bits;
      - more scc_patchl use;
      - just say no to bozo programming:
        + SCC core _really_ disabled at startup;
        + Interrupts Mask Register setup and SCC core activation are
          done as late as possible (i.e. in dscc4_open());
        + they are reverted if dscc4_open() fails;
        + as well as unconditionnaly in dscc4_close();
      - more or less paranoid quirk in Xpr handler.
      1bcf2af4
    • Andrew Morton's avatar
      [PATCH] dscc4: debug messages · 171c33e5
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      More conditional debug messages.
      171c33e5
    • Andrew Morton's avatar
      [PATCH] dscc4: clock mode commentary · b3ddbe8f
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      Clock modes on dscc4 are feature-rich enough to deserve some explanation.
      b3ddbe8f
    • Andrew Morton's avatar
      [PATCH] dscc4: commentary · df527e2e
      Andrew Morton authored
      From: Francois Romieu <romieu@fr.zoreil.com>
      
      Short comments so I can figure why things are done this way.
      df527e2e
    • Andrew Morton's avatar
      [PATCH] opl3sa2 uninitialised spinlock · 0134e16c
      Andrew Morton authored
      opl3sa2 forgot to initialise the spinlock.
      0134e16c
    • Andrew Morton's avatar
      [PATCH] Allow O_EXCL on a block device to claim exclusive use. · c366082d
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      The blockdev layer has a concept of 'claiming' a device, so for example it
      can be claimed when a filesystem is mounted or when it is included into a
      raid array.  Only one subsystem can claim it at a time.
      
      This patch matches this functionality available to user-space via the
      O_EXCL flag to open.
      
      This allows user-space programs to easily test if a device is currently
      mounted etc, and to prevent a device from being mounted or otherwise
      claimed.
      c366082d
    • Andrew Morton's avatar
      [PATCH] When a partition is claimed, claim the whole device · f57dea91
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      Current devices can be 'claimed' by filesystems (when mounting) or
      md/raid (when being included in an array) or 'raw' or ....
      This stop concurrent access by these systems.
      
      However it is still possible for one system to claim the whole device
      and a second system to claim one partition, which is not good.
      
      With this patch, when a partition is claimed, the whole device is 
      claimed for partitioning.  So you cannot have a partition and the
      whole devices claimed at the same time (except if the whole device
      is claimed for partitioning).
      f57dea91
    • Andrew Morton's avatar
      [PATCH] vmscan: give dirty referenced pages another pass · d55158b5
      Andrew Morton authored
      In a further attempt to prevent dirty pages from being written out from the
      LRU, don't write them if they were referenced.  This gives those pages
      another trip around the inactive list.  So more of them are written via
      balance_dirty_pages().
      
      It speeds up an untar-of-five-kernel trees by 5% on a 256M box, presumably
      because balance_dirty_pages() has better IO patterns.
      
      It largely fixes the problem which Gerrit talked about at the kernel summit:
      the individual writepage()s of dirty pages coming off the tail of the LRU are
      reduced by 83% in their database workload.
      
      I'm a bit worried that it increases scanning and OOM possibilities under
      nutty VM stress cases, but nothing untoward has been noted during its four
      weeks in -mm, so...
      d55158b5
    • Andrew Morton's avatar
      [PATCH] ext3 block allocator cleanup · 74d74915
      Andrew Morton authored
      This just reorganizes some ghastly goto-and-retry-spaghetti in the core of
      the ext3 block allocator.
      
      I wrote this ages ago in preparation for fixing the find_next_usable_block()
      CPU pigginess problem, but that proved to be quite nontrivial.
      
      The patch has been in -mm for a long time and Martin has recently confirmed
      that it introduces no performance regression in SDET and kernbench.
      74d74915