1. 10 Oct, 2002 31 commits
    • Greg Kroah-Hartman's avatar
      [PATCH] minor i386 timer changes for 2.5.41 · 1d447cb6
      Greg Kroah-Hartman authored
      Here's an additional patch that contains the cleanups I did to John's
      timer patches.  It does the following:
      
      	- uses C99 initializers
      	- makes the timer list static
      	- adds better documentation to the timer function structure
      	- makes the timer init function return 0 on success
      	- NULL terminates the list of timers to make further patches
      	  easier.
      1d447cb6
    • Trond Myklebust's avatar
      [PATCH] Fix NFS locking over TCP · 23288376
      Trond Myklebust authored
      The 2.5.x RPC code is currently broken in that it demands that all
      tasks that call xprt_create_proto() in order to open a TCP socket must
      have CAP_NET_BIND_SERVICE capabilities, and must bind to a privileged
      port.
      
      This breaks the NLM locking code and its use of the call_bind() RPC
      portmapper lookup feature.
      
      This patch allows the built-in portmapper client to use unbound TCP
      sockets if the user does not have the necessary capabilities.
      23288376
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 63a5ba42
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      In this patch, we finish modifying the async READ path so that it is
      version-agnostic.  We define a new nfs_rpc_op ->setup_read(), and move
      the v2- and v3-specific code in nfs_read_rpcsetup() there.  We also
      have to change nfs_readpage() result so that the 'count' of bytes
      read is a parameter.  The extra parameter means that it can no longer
      be ->tk_exit().  Instead, it is called from a version-specific ->tk_exit()
      routine which is set in ->read_setup().
      
      The upshot of all this is that the version-specific part of the
      async READ path has been encapsulated in a new nfs_rpc_op
      ->read_setup(), and NFSv4 can share the logic for asynchronous
      READ's with NFSv2 and v3.
      63a5ba42
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · aa1e1176
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      Synchronous READ operations are currently done via the ->read() nfs_rpc_op.
      Therefore, the synchronous READ path can easily be adapted for NFSv4.  On
      the other hand, the asynchronous READ path contains several NFSv3-specific
      features, which make it difficult to adapt for NFSv4.
      
      In this patch and the next, we modify the async READ path to be
      version-agnostic.  This patch just changes the 'struct nfs_read_data'
      so that the v2- and v3-specific parts are moved into a private area,
      with room for a v4-specific part in parallel.  None of the logic is
      changed.
      aa1e1176
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 42394298
      Trond Myklebust authored
      If the NFS_ATTR_FATTR_V4 flag is set, use the NFSv3 convention for
      the 'space_used' part of the fattr.
      42394298
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 3aeba064
      Trond Myklebust authored
      This is a nontrivial change to the NFS client.
      
      NFSv4 defines a new file attribute, change_attr.  This is a per-file
      opaque quantity returned by the server, whose value is required to
      change whenever the file is modified.  If it exists, we want to use
      it for all cache consistency checks in nfs_refresh_inode().  Some
      operations also return a "pre-operation" value of the change_attr;
      we want to take this into account too.
      
      First, define flags
        NFS_ATTR_FATTR_V4 - indicates that the 'struct nfs_fattr' is an
                            NFSv4 fattr, so the change_attr field is valid
        NFS_ATTR_PRE_CHANGE - indicates that the server returned a pre-operation
                            change_attr, so the pre_change_attr field is valid
      
      Second, change nfs_refresh_inode() so that the caches are invalidated
      if there is a change_attr mismatch.  Exception: If the pre_change_attr
      tells us that the mismatch was caused by our operation, then do not
      invalidate the caches.
      
      This patch should leave the logic in nfs_refresh_inode() unchanged
      if neither of the new flags are set.
      3aeba064
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 61e6f975
      Trond Myklebust authored
      In NFSv4, an fsid is a 64-bit major number together with a 64-bit
      minor number.  In previous versions, an fsid is a single number.
      This patch changes 'struct nfs_fattr' accordingly.
      61e6f975
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · c22994ae
      Trond Myklebust authored
      In NFSv4, there is no hard limit on the length of symlink text.
      This patch changes the -ENAMETOOLONG test in nfs_symlink() accordingly.
      c22994ae
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 62d86355
      Trond Myklebust authored
      This patch changes the interface of the ->setattr() nfs_rpc_op
      so that its first argument is a dentry instead of an inode.
      
      [Explanation: The dentry is required because in NFSv4, we may
       need to OPEN the file before doing the SETATTR.  (This is
       required if the file size is changed as part of the setattr.)
       Opening the file requires making use of the containing
       directory's inode.]
      62d86355
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 40a4b2a4
      Trond Myklebust authored
      This patch changes the interface of the ->readdir() nfs_rpc_op
      so that its first argument is a dentry instead of an inode.
      
      [Explanation: The dentry is required because in NFSv4, we need
       to make use of the _parent_ directory's inode.  This is because
       NFSv4 servers no longer return an entry for ".." in the READDIR
       response, so the client kernel needs to fake this entry, inode
       number and all.]
      40a4b2a4
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 944b2a7c
      Trond Myklebust authored
      In a number of places in the NFS client, I had to change
      
        #ifdef CONFIG_NFS_V3
           /* ... */
        #endif
      
      to
      
        #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
           /* ... */
        #endif
      944b2a7c
    • Trond Myklebust's avatar
      [PATCH] A basic NFSv4 client for 2.5.x · 4e956d0f
      Trond Myklebust authored
      Instantiate a new file, include/linux/nfs4.h, which contains
      constants and typedef's for the NFSv4 protocol (by analogy with
      include/linux/nfs2.h and include/linux/nfs3.h).
      
      Also #include this file in a few places where it will be needed
      later.
      4e956d0f
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.make · e2960359
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      e2960359
    • Andries E. Brouwer's avatar
      [PATCH] isofs fix · 568bb765
      Andries E. Brouwer authored
      The patch below removes some dead code and nonsense code.
      The part that changes behaviour is
      
       -       if (sbi->s_cruft == 'n' &&
       -           (volume_seq_no != 0) && (volume_seq_no != 1)) {
       -               printk(KERN_WARNING "Warning: defective CD-ROM "
       -                      "(volume sequence number %d). "
       -                      "Enabling \"cruft\" mount option.\n", volume_seq_no);
       -               sbi->s_cruft = 'y';
       -       }
      
      that has already bitten lots of people.
      
      Nothing is wrong with a volume sequence number different from 0 or 1.
      (Cf. Ecma-119.pdf, Sections 4.17, 4.18, 6.6.)
      568bb765
    • Paul Mackerras's avatar
      [PATCH] adjust PPC sysctls · 7daebc2a
      Paul Mackerras authored
      This patch takes out the unused KERN_PPC_ZEROPAGED sysctl, and
      restricts the KERN_PPC_POWERSAVE_NAP and KERN_PPC_L2CR sysctls to be
      present only on those PPC processors where they are useful.  This
      patch only affects PPC.
      7daebc2a
    • Paul Mackerras's avatar
      [PATCH] add PCI device ID for Motorola MPC107 · 59cc5271
      Paul Mackerras authored
      This patch adds the PCI device ID for the Motorola MPC107 host bridge.
      The entry is already in the list at pciids.sf.net but isn't in the
      kernel pci_ids.h file yet.  Please apply this to your tree.
      59cc5271
    • Olaf Dietsche's avatar
      [PATCH] 2.5.40: fix chmod/chown on procfs · d5f9873c
      Olaf Dietsche authored
      This patch allows to change uid, gid and mode of files and directories
      located in procfs.
      
      Without this patch you can change uid, gid and mode as long as the
      file is open. As soon as you close the file, it reverts back to its
      default, which is root:root and readonly usually.
      d5f9873c
    • Sam Ravnborg's avatar
      [PATCH] drivers/scsi - Makefile fix · bbb7d857
      Sam Ravnborg authored
      Reference to .ver file incorrect after recent makefile changes.
      Grepped the kernel tree, and this is the only Makefile that
      uses $(MODVERDIR).
      bbb7d857
    • Jens Axboe's avatar
      [PATCH] excessive stack usage in cdrom · de83f63b
      Jens Axboe authored
      CD-ROM puts struct cdrom_changer_info on the stack in a few places, this
      is a bad idea since it's big (a bit over 1kb).  This makes us allocate
      it instead.
      
      Noticed by Anton.
      de83f63b
    • Linus Torvalds's avatar
      Clean up after timers - move the "timers" Makefile info · c73dbf24
      Linus Torvalds authored
      into the proper subdirectory (kernel) where it is used.
      
      Drop unused variables.
      c73dbf24
    • John Stultz's avatar
      [PATCH] linux-2.5.41_cyclone-timer_B2 · 21872250
      John Stultz authored
              In order to demonstrate how new time-sources are added to my
      timer-changes patch. Here is my current version of my cyclone-timer
      patch for 2.5.41. This uses the infrastructure set up in the
      timer-changes_A4 patch set to add the cyclone counter (found on IBM
      Summit Based hardware) as a time-source.
      
              The current code is not enabled as it also depends on James
      Cleverdon's 2.5 summit patch, however it illustrates how cleanly new
      time-sources can be added.
      21872250
    • John Stultz's avatar
      [PATCH] linux-2.5.41_timer-changes_A4 (3/3 - integration) · f59a48cf
      John Stultz authored
              This is the final part 3 of 3 of my timer-change patch. Part 3
      integrates the moved code (from part 2) into the new infrastructure
      (from part 1).
      f59a48cf
    • John Stultz's avatar
      [PATCH] linux-2.5.41_timer-changes_A4 (2/3 - bulk move) · e8498001
      John Stultz authored
              This is part 2 of 3 of my timer-change patch. Part 2 is just a
      bulk move of code out of time.c and into timer_pit.c and timer_tsc.c. No
      code is changed, only moved.
      
              Please note, this code will not compile without the final third
      part of this patch collection. This was done for readability alone.
      e8498001
    • John Stultz's avatar
      [PATCH] linux-2.5.41_timer-changes_A4 (1/3 - infrastructure) · c710b958
      John Stultz authored
              The i386 time.c code is turning into a mess. We've got multiple
      functions that do the same thing, only with different hardware, all
      surrounded #ifdefs and even more difficult to follow #ifndefs. George
      Anzinger is introducing a new ACPIpm time source, I'm going to attempt
      to add the cyclone counter as a time source, and in the future there
      will be HPET to deal with. These will not go in cleanly together as
      things are now.
      
              Inspired by suggestions from Alan, this collection of patches
      tries to clean up time.c by breaking out the PIT and TSC specific parts
      into their own files. Additionally the patch creates an abstract
      interface to use these existing time soruces, as well as make it easier
      to add future time sources.
      
              It introduces "struct timer_ops" which gives the time code a
      clear interface to use these different time sources. It also allows for
      clearer conditional compilation of these various time sources.
      
              This first patch (part 1 of 3) provides the infrastructure
      needed via the timer_ops structure, as well as the select_timer()
      function for choosing the best available timer.
      c710b958
    • Andrew Morton's avatar
      [PATCH] make readv/writev return 0 for 0 segments · 6a839d30
      Andrew Morton authored
      Should resolve an ongoing fiasco concerning what we should return to
      userspace if they do a readv or writev of zero segments.
      
      SuS is ambiguous, but implies EINVAL.  We're currently returning
      EINVAL, but 2.4 returns zero.
      
      I think zero makes more sense, and it is what 2.4 does.
      6a839d30
    • Andrew Morton's avatar
      [PATCH] remove the sched_yield from the ext3 fsync path · 522864f4
      Andrew Morton authored
      The changed sched_yield() semantics have made ext3's transaction
      batching terribly slow.
      
      Apparently a schedule() fixes that, although it probably breaks
      transaction batching.
      
      This patch largely fixes my complaints about the new scheduler being
      extremely sluggish to interactive applications.  Evidently those
      applications were calling fsync() and were spending extremely long
      periods in sched_yield().
      522864f4
    • Andrew Morton's avatar
      [PATCH] remove radix_tree_reserve() · 6b1ba797
      Andrew Morton authored
      From Hugh Dickins.
      
      radix_tree_reserve() exists solely for the tmpfs move_to_swap_cache()
      and move_from_swap_cache() functions, and yet they don't need it: there
      is no problem in the one page being simultaneously listed in two radix
      trees (while both locks are held).  Use radix_tree_insert(), and remove
      radix_tree_reserve(); also removed a few blank lines.
      6b1ba797
    • Andrew Morton's avatar
      [PATCH] fix the raw driver · 60c6d43b
      Andrew Morton authored
      Fix the raw driver by tricking it into performing O_DIRECT IO against
      the bound blockdev.
      
      - rewrite the i_mapping for /dev/raw/raw0 to point at the same thing
        as bdev->bd_inode->i_mapping.  We've performed a bdget() against the
        blockdev, which should pin it for the correct lifetime.
      
      - set the O_DIRECT bit on the caller's file->flags.
      60c6d43b
    • Andrew Morton's avatar
      [PATCH] move_one_page atomicity fix · d8f299c2
      Andrew Morton authored
      The atomicicty fix for move_one_page() was not quite right.
      
      We only do the page_table_present() test if CONFIG_HIGHPTE=y.  Which is
      fine, but even with CONFIG_HIGHPTE=n, the pte mapping functions still
      do an inc_preempt_count() due to their unconditional kmap_atomic().  So
      we get a might_sleep() warning.
      
      The warning is actually bogus, because those pte's are always in
      direct-mapped memory.
      
      So hm.  Three fixes suggest themselves:
      
      1: Run the page_table_present() test if CONFIG_HIGHMEM.
      
         Rejected: penalises non-pte_highmem setups
      
      2: Make kmap_atomic() not do inc_preempt_count() is the page was
         direct mapped.
      
         Rejected: I don't think we want kmap_atomic side effects to be
         varying according to the page which was passed.
      
      3: Change the pte mapping functions so they don't run kmap_atomic at
         all if CONFIG_HIGHPTE=n
      
         This is what I did.  And guess what?  For CONFIG_HIGHMEM=y,
         CONFIG_HIGHPTE=n this patch shrinks the kernel by 5 kbytes.  Because
         kmap_atomic is inlined.
      
         The lesson: we do way too much damn inlining.
      d8f299c2
    • Andrew Morton's avatar
      [PATCH] mremap use-after-free bugfix · f0f5d073
      Andrew Morton authored
      I have invented a new software development methodology! You send an
      email to Hugh saying "I don't have the foggiest idea why this guy's
      kernel is oopsing" and next morning, you get a patch! I shall patent
      this.
      
      Since 2.5.3, move_vma() has been passing a freed vma into
      move_page_tables().  Fix it to move back to the previous vma in the
      list if we're about to delete this one.
      
      Thanks to Morten Helgesen for patient reporting, diagnosis and testing.
      f0f5d073
    • Ingo Molnar's avatar
      [PATCH] timer cleanups · d4979c79
      Ingo Molnar authored
      This is my latest timer patchset, it makes del_timer_sync() a bit more
      robust wrt.  code that re-adds timers from the timer handler.
      
      Other changes in the patch:
      
       - clean up cascading a bit.
      
       - do not save flags in __run_timer_list - we enter from an irqs-enabled
         tasklet.
      d4979c79
  2. 09 Oct, 2002 9 commits
    • Stephen Rothwell's avatar
      [PATCH] fix __SI_CODE · 469d2810
      Stephen Rothwell authored
      This small patch is extracted from George Anzinger's High-res-timer
      patches.
      469d2810
    • Linus Torvalds's avatar
      Merge bk://are.twiddle.net/axp-2.5 · b873ed19
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      b873ed19
    • Richard Henderson's avatar
    • Richard Henderson's avatar
      Merge ssh://are.twiddle.net/BK/axp-2.5 · 73bd2109
      Richard Henderson authored
      into dot.sfbay.redhat.com:/dot/bang/rth/linux/axp-2.5
      73bd2109
    • David Jeffery's avatar
      [PATCH] ips driver 6/6 · 583bcb77
      David Jeffery authored
      2 bug fixes for scsi pass through
      
      When talking directly to scsi devices, the driver would
      sometimes get two things wrong.  We could set too short
      of a timeout. Or, we could confuse the adapter by having
      non-zero values in certain fields which we shouldn't have
      been using.  This patch corrects these problems.
      583bcb77
    • David Jeffery's avatar
      [PATCH] ips driver 5/6 · 1417bd08
      David Jeffery authored
      2 minor bug fixes.
      
      The first section makes sure we limit the size of the
      sense_buffer copy to the target buffer's size so that
      we don't overflow the sence_buffer.
      
      The other sections remove some pointer arithmatic that
      is wrong on 64bit machines do to padding.  Instead, just
      call the pci_map functions on the buffer.
      1417bd08
    • David Jeffery's avatar
      [PATCH] ips driver 4/6 · 20081964
      David Jeffery authored
      This is by far the biggest patch.  It is a rewrite of the
      driver's horrid locking.  In addition to the host_lock,
      the driver used to have 4 other locks per adapter!
      It had a redundant ha_lock and a lock for each of 3
      queues.  In a few places it also played with atomic bit
      setting. And almost all of it was useless as the
      host_lock was already held.
      
      This patch cleans up this locking nightmare.  The driver
      now uses the host_lock exclusively.  Only a few places
      needed to add calls to lock the host_lock.  Most of
      this patch is deletion of useless extra locking.
      20081964
    • David Jeffery's avatar
      [PATCH] ips driver 3/6 · d3c20327
      David Jeffery authored
      This patch adds an Adaptec copyright, makes a few
      minor comment changes, and removes a few unneeded
      macros.
      d3c20327
    • David Jeffery's avatar
      [PATCH] ips driver 2/6 · 705f83df
      David Jeffery authored
      This patch is some simple code consolidation.
      A new function ips_abort_init() is created
      and consolidates some repeated code that is
      used if there is an error during initialization
      of the adapter.
      705f83df