1. 04 Feb, 2004 40 commits
    • Andrew Morton's avatar
      [PATCH] shrink_list(): check PageSwapCache() after add_to_swap() · 5b1116c3
      Andrew Morton authored
      From: Nikita Danilov <Nikita@Namesys.COM>
      
      shrink_list() checks PageSwapCache() before calling add_to_swap(), this
      means that anonymous page that is going to be added to the swap right
      now these checks return false and:
      
       (*) it will be unaccounted for in nr_mapped, and
      
       (*) it won't be written to the swap if gfp_flags include __GFP_IO but
           not __GFP_FS.
      
      (Both will happen only on the next round of scanning.)
      
      Patch below just moves may_enter_fs initialization down. I am not sure
      about (*nr_mapped) increase though.
      5b1116c3
    • Andrew Morton's avatar
      [PATCH] Use address hint in mmap for search · ed205520
      Andrew Morton authored
      From: Andi Kleen <ak@suse.de>
      
      When the user gave an address hint in mmap use it as starting point for the
      search for !MAP_FIXED.
      
      Currently it is only checked directly and when already used the free area
      cache is used as starting point.  With this change you can use mmap(4096,
      ....) to e.g.  get the lowest free address in your address space, which is
      sometimes useful.  For example on x86-64 glibc wants to preferably allocate
      thread local data in the first 4GB but use higher addresses when this is
      not possible.
      
      This can be a bit more costly in CPU time because it may have to skip over
      more VMAs, but gives better semantics for most cases.  Most programs pass
      NULL as hint anyways so it won't make any difference for them.
      
      I did it for the generic mmap and for x86-64 for now.  Also minor white
      space fixes for x86-64.
      ed205520
    • Andrew Morton's avatar
      [PATCH] rate limit nr_free_pages · c7f6fcf5
      Andrew Morton authored
      From: Jes Sorensen <jes@trained-monkey.org>
      
      nr_free_pages() is expensive, especially on large SMP machines.  The patch
      changes the memory overcommit code so that it only calls nr_free_pages() is
      we're about to fail the allocation attempt.
      c7f6fcf5
    • Andrew Morton's avatar
      [PATCH] ide-cd mo write protect · a9b9b3c5
      Andrew Morton authored
      From: Jens Axboe <axboe@suse.de>
      
      It's from Pascal Schmidt and adds write protect handling to ide-cd along
      with support for non-2kb block sizes.
      a9b9b3c5
    • Andrew Morton's avatar
      [PATCH] proc_check_root() locking fix · 541f40bd
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      The patch fixes locking in proc_check_root().  It brings is_subdir() call
      under vfsmount_lock.  Holding vfsmount_lock will ensure mnt_mountpoint
      dentry is intact and the dentry does not go away while it is being checked
      in is_subdir().
      541f40bd
    • Andrew Morton's avatar
      [PATCH] is_subdir locking fix · b5a660ee
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      o The following patch fixes is_subdir() races with d_move. Due to concurrent
        d_move, in is_subdir() we can end up accessing freed d_parent pointer in
        case of pre-emptible kernel. To avoid this we can use rcu_read_lock() and
        rcu_read_unlock().
      
      o This also fixes the seqlock uses in is_subdir() as we need to restart the
        the inner loop with the origianl new_dentry passed to the routine in case
        of any rename occured while we are traversing d_parent links.
      b5a660ee
    • Andrew Morton's avatar
      [PATCH] ac97 OSS driver removal fix · c2d6098c
      Andrew Morton authored
      From: Andrew Zabolotny <zap@homelink.ru>
      
      ac97_unregister_driver() is nulling out the ->driver field for all codecs.
      It should only null the codecs which are using this driver.
      c2d6098c
    • Andrew Morton's avatar
      [PATCH] u_int32_t causes cross-compile problems · c92a441a
      Andrew Morton authored
      From: Pratik Solanki <pratik.solanki@timesys.com>
      
      I came across this C standards issue while cross-compiling the Linux kernel
      with gcc on Solaris.  The file gen_crc32table.c uses the non-standard type
      u_int32_t.  It's possible that the host machine's sys/types.h does not
      define u_int32_t.  The attached patch replaces u_int32_t with the POSIX
      standard uint32_t and includes POSIX inttypes.h instead of sys/types.h.
      c92a441a
    • Andrew Morton's avatar
      [PATCH] fix menuconfig choice item help display · ccd3fed5
      Andrew Morton authored
      From: Bjorn Helgaas <bjorn.helgaas@hp.com>
            Anders Gustafsson <andersg@0x63.nu>
            Roman Zippel <zippel@linux-m68k.org>
      
      This patch fixes menuconfig so it can display help text for individual
      choice group config entries.
      
      Previously it would only display the help text attached to the "choice"
      item.  There was no way to display the help attached to individual config
      entries inside the choice group.  Typically, the "choice" item has no help
      text, and all the useful help is attached to the individual entries, so
      this was a bit of a problem.
      ccd3fed5
    • Andrew Morton's avatar
      [PATCH] /proc/stat:btime fix · eb32911f
      Andrew Morton authored
      From: George Anzinger <george@mvista.com>,
            Petri Kaukasoina <kaukasoi@elektroni.ee.tut.fi>
      
      btime in /proc/stat does not stay constant but decreases at a rate of 15
      secs/day, because we're assuming that HZ is exactly 100.  Use the correct
      adjustments to fix that up.
      eb32911f
    • Andrew Morton's avatar
      [PATCH] Fine tune the time conversion to eliminate conversion errors. · 03718ae0
      Andrew Morton authored
      From: George Anzinger <george@mvista.com>
      
      The time conversion code is erroring on the side of a bit too small.  The
      attached patch forces any error to be on the high side.  The current code will
      convert 1 nanosecond to zero jiffies (standard says that should be 1).  It also
      is around 1 nanosecond late on each roll to the next jiffie.
      
      I have done some error checks with this patch applied and get the following
      errors in PPB ( Parts Per Billion):
      
      HZ     nano sec conversion     microsecond conversion
      1000    315                      45
      1024    227                      40
      100     28                       317
      
      In all cases the error is on the high side, which means that the final shift
      will, most likely, eliminate the error bits.
      03718ae0
    • Andrew Morton's avatar
      [PATCH] UFS: honour `silent' parameter. · 80cfa786
      Andrew Morton authored
      From: GOTO Masanori <gotom@debian.or.jp>
      
      Teach ufs_fill_super() to honour the `silent' parameter.
      80cfa786
    • Andrew Morton's avatar
      [PATCH] try reiserfs before other filesystems · c93123fe
      Andrew Morton authored
      reiserfs places its superblock in weird places which can result in false
      positives and various printks when other filesystems probe a resierfs
      filesystem.
      c93123fe
    • Andrew Morton's avatar
      [PATCH] namei.c: take vfsmount_lock · 5f833af7
      Andrew Morton authored
      From: Mike Waychison <Michael.Waychison@Sun.COM>
      
      The attached patch ensures that we grab vfsmount_lock when grabbing a
      reference to mnt_parent in follow_up and follow_dotdot.
      
      We also don't need to access ->mnt_parent in follow_mount and
      __follow_down to mntput because we already the parent pointer on the stack.
      5f833af7
    • Andrew Morton's avatar
      [PATCH] __d_path needs vfsmount_lock · 122eace8
      Andrew Morton authored
      From: Mike Waychison <Michael.Waychison@Sun.COM>
      
      - protect vfsmount->mnt_parent by taking vfsmount_lock in __d_path
      122eace8
    • Andrew Morton's avatar
      [PATCH] [janitor] vga16fb: add missing iounmap() · 702e97e7
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
            Leann Ogasawara <ogasawara@osdl.org>
      
      Patch inserts missing iounmap() on error.
      702e97e7
    • Andrew Morton's avatar
      [PATCH] janitor: vgastate: cleanup iounmap() usage · e9589567
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Leann Ogasawara <ogasawara@osdl.org>
      
      Patch inserts missing iounmap's on error and also removes unnecessary
      iounmap's.
      e9589567
    • Andrew Morton's avatar
      [PATCH] copy_namespace ENOMEM fix · 9f33cf76
      Andrew Morton authored
      From: Marcus Alanen <maalanen@ra.abo.fi>
      
      The copy_tree() function can return NULL, so this checks for it.
      9f33cf76
    • Andrew Morton's avatar
      [PATCH] oprofile, typo in alpha driver · 89076ac4
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      Unless I miss something this look like a typo, one user reported to get
      error from the daemon: 'Unknown event for counter 1' (alpha ev6) and the
      behavior was better but not completly sane after trying this patch: he get
      spurious event for counter 1 when enabling only counter 0 but rarely now.
      No alpha box to test this.
      89076ac4
    • Andrew Morton's avatar
      [PATCH] oprofile per-cpu buffer overrun · 26c8fae2
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      In a ring buffer controlled by a read and write positions we can't use
      buffer_size but only buffer_size - 1 entry, the last free entry act as a
      guard to avoid write pos overrun.  This bug was hidden because the writer,
      oprofile_add_sample(), request one more entry than really needed.
      26c8fae2
    • Andrew Morton's avatar
      [PATCH] console cleanup · 2c8aa408
      Andrew Morton authored
      From: Sam Ravnborg <sam@ravnborg.org>,
            Ben Collins <bcollins@debian.org>
      
      Fix up the console makefiles and logo generation.
      
      1) To make output look like the rest of the kernel build.
      
      2) To avoid make utilising chained rules, and therefore issuing a 'rm
         drivers/video/logo/linux_logo.c ...' during the build.
      
      I have previously submitted a few patches for logo/Makefile, but this is the
      first one that actually address the problems I have seen in a proper way.
      
      And no, I did not like such a simple thing to look that complicated, the
      other option was to list too many files or to use other types of kbuild/make
      magic.
      2c8aa408
    • Andrew Morton's avatar
      [PATCH] janitor: sound/oss: use C99 inits. · 3f7468a7
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>,
            "Maciej Soltysiak" <solt@dns.toxicfilms.tv>
      
      C99 initializers for linux/sound.
      3f7468a7
    • Andrew Morton's avatar
      [PATCH] janitor: dz: verify_area() removal · 8e4c6c31
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>,
            Domen Puncer <domen@coderock.org>
      8e4c6c31
    • Andrew Morton's avatar
      [PATCH] janitor: change a few SYSRQ to MAGIC_SYSRQ · c44ce779
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>,
            Domen Puncer <domen@coderock.org>
      
      Noone tested that code to see if it really works?
      c44ce779
    • Andrew Morton's avatar
      [PATCH] futex: remove redundant test · a507bf7a
      Andrew Morton authored
      From: Jamie Lokier <jamie@shareable.org>
      
      One of the tests in unqueue_me() is redundant.  If we acquire the spinlock,
      the futex must be queued.
      a507bf7a
    • Andrew Morton's avatar
      [PATCH] Zero last byte of mount option page. · d2ca78bb
      Andrew Morton authored
      From: James Morris <jmorris@redhat.com>
      
      Here's a patch which zeroes the last byte of the mount option data copied
      from userspace during mount(2).
      
      For filesystems which parse mount options as strings (the majority), lack
      of a zero terminator could cause the page to be overrun.  The source code
      comments specify that the maximum size of the mount data is PAGE_SIZE-1, so
      this patch will not affect any valid binary-formatted mount data.
      d2ca78bb
    • Andrew Morton's avatar
      [PATCH] posix_timers fixes · 81dcbaab
      Andrew Morton authored
      From: George Anzinger <george@mvista.com>
      
      - Removes C++ comment in favor of C style.
      
      - Removes the special treatment for MIPS SIGEV values.  We only require
        (and error if this fails) that the SIGEV_THREAD_ID value not share bits
        with the other SIGEV values.  Note that mips has yet to define this value
        so when they do...
      
      - Corrects the check for the signal range to be from 1 to SIGRTMAX
        inclusive.
      
      - Adds a check to verify that kmem_cache_alloc() actually returned a timer,
        error if not.
      
      - Fixes a bug in timer_gettime() where the incorrect value was returned if
        a signal was pending on the timer OR the timer was a SIGEV_NONE timer.
      81dcbaab
    • Andrew Morton's avatar
      [PATCH] Better "Losing Ticks" Error Message · bd5e36f5
      Andrew Morton authored
      From: timothy parkinson <t@timothyparkinson.com>
      
      Seems like a lot of people see the below error message, but aren't quite
      sure why it happens or how to fix it.  I sure didn't.  Here's my attempt at
      remedying that.
      bd5e36f5
    • Andrew Morton's avatar
      [PATCH] Clean up raid6 kbuild output · 3c87ddbe
      Andrew Morton authored
      From: Sam Ravnborg <sam@ravnborg.org>
      
      During raid6 compilation with KBUILD_VERBOSE unset we see invokations of
      perl commands which should not have been displayed.
      3c87ddbe
    • Andrew Morton's avatar
      [PATCH] Remove memblks from the kernel · 4c5736de
      Andrew Morton authored
      From: "Martin J. Bligh" <mbligh@aracnet.com>
      
      This patch removes memblks from the kernel ...  we don't use them, and the
      NUMA API that was planning to use them when they were originally designed
      isn't going to use them anymore.  They're just unnecessary added complexity
      now ...  time for them to go.
      
      There's a slight complication in that ia64 uses something with a similar
      name for part of its memory layout, but Jes Sorensen kindly untangled them
      from each other for us.  The patch with his modifications is below.  Jes
      tested it on ia64, and I testbuilt it with every config in my arsenal.
      4c5736de
    • Andrew Morton's avatar
      [PATCH] remove SIIG combo cards PCI ids from parport_pc · b5a2bdf9
      Andrew Morton authored
      From: Andrey Panin <pazke@donpac.ru>
      
      support for SIIG made serial/parallel conbo cards was moved to
      parport_serial driver some months ago, but their PCI ids still remain in
      parport_pc PCI device table.  Attached patch removes them.
      b5a2bdf9
    • Andrew Morton's avatar
      [PATCH] /proc/paritions: omit removable media · 32390780
      Andrew Morton authored
      From: Neil Brown <neilb@cse.unsw.edu.au>
      
      If programs like mount use /proc/partitions to find filesystems based on
      labels, then surely we want md devices in there as they often contain
      filesystems.
      
      If the problem is that mount-by-label takes forever with removable media
      then surely the "right" approch is the following patch, and then actually
      set this flag on the "floppy.c" device.  (It is already set for ide-floppy
      and sd devices).
      32390780
    • Andrew Morton's avatar
      [PATCH] md: Change the way the name of an md device is printed in error messages. · 62c10f9e
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      Instead of using ("md%d", mdidx(mddev)), we now use ("%s", mdname(mddev))
      where mdname is the disk_name field in the associated gendisk structure.
      This allows future flexability in naming.
      62c10f9e
    • Andrew Morton's avatar
      [PATCH] md: Collect device IO statistics for MD personalities. · fe6498c9
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      Update {read,write}{s,_sectors} on each request to an MD array.
      fe6498c9
    • Andrew Morton's avatar
      [PATCH] md: Fixes to make debuging output nicer. · 403c2172
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      This patch thanks to Paul Clements <Paul.Clements@SteelEye.com> and only has
      effect if md is compiled with #define DEBUG 1
      403c2172
    • Andrew Morton's avatar
      [PATCH] md: Move the test in preferred_minor to where it is used. · 70bb57ee
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      A RAID superblock can indicate which minor number the array should be
      assembled under.  As this is only meaningful when doing auto-start, we move
      the test for it being in the valid range to the place where auto-start
      happens.  When an array is started any other way, it doesn't matter what
      value is here.
      70bb57ee
    • Andrew Morton's avatar
      [PATCH] remove_suid() fix · 588d6141
      Andrew Morton authored
      From: viro@parcelfarce.linux.theplanet.co.uk
      
      bernhard_heibler@gmx.de has discovered that NFS is very slow when writing to
      a file which has execute permissions.  See
      
      	http://bugme.osdl.org/show_bug.cgi?id=1936
      
      This patch fixes remove_suid() to not try to modify the inode mode on every
      write to such a file.
      588d6141
    • Andrew Morton's avatar
      [PATCH] Fix deep stack usage in ncpfs · fea7cfba
      Andrew Morton authored
      From: Petr Vandrovec <vandrove@vc.cvut.cz>
      
      
      Arjan van de Ven pointed out to me there are no checks on name component
      lengths in ncpfs, so potentially 4KB regions could be allocated on stack,
      leading to the user controlled stack overflow.
      
      It was using variable-sized arrays, so this snuck past the static
      stack-usage checking tools.
      
      As NCP is limited to 255 bytes on components, we can simple limit these
      local variables to 256 bytes, and after this stack usage looks more
      acceptable.  Length checking occurs inside ncp_vol2io, during
      iocharset->codepage conversion.
      
      As a side effect support for multibyte codepages now works as it should,
      instead of returning -EINVAL whenever filename in 'codepage' encoding was
      longer than in 'iocharset'.
      
      Other part fixes typo where atime change updated ctime and not atime field.
      fea7cfba
    • Andrew Morton's avatar
      [PATCH] deprecate the raw driver · b2df6ea7
      Andrew Morton authored
      Fat chance, but we should try.
      b2df6ea7
    • Andrew Morton's avatar
      [PATCH] initialise cpu_vm_mask in init_mm · 32a0251f
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Some architectures use cpu_vm_mask to optimise TLB flushes.  On ppc64 we
      are now using a common flush infrastructure that handles both userspace and
      kernelspace (vmalloc) pages.  In order to avoid triggering this
      optimisation we need to mark the init mm as having scheduled on all cpus.
      
      Things currently work by luck (we check for the cpu only having run on the
      local cpu, and the field is initialised to 0), but it would be safer to
      initialise it CPU_MASK_ALL.
      32a0251f