1. 29 May, 2002 2 commits
  2. 28 May, 2002 38 commits
    • Linus Torvalds's avatar
      Allocate new mm_struct for execve() early, so that we have · 83ca4c7e
      Linus Torvalds authored
      access to it by the time we start copying arguments.
      
      We don't actually use it at this point yet.
      83ca4c7e
    • Brian Gerst's avatar
      [PATCH] i386 mm init cleanup part 2 · bbe302ee
      Brian Gerst authored
      The remaining cleanups are to switch to using pfn instead of vaddr, and
      improve readability.
      bbe302ee
    • Brian Gerst's avatar
      [PATCH] i386 mm init cleanup part 1 · 131ca9c0
      Brian Gerst authored
      This revised patch starts untangling the mess in arch/i386/mm/init.c
      - Pull setting bits in cr4 out of the loop
      - Make __PAGE_KERNEL a variable and cache the global bit there.
      - New pfn_pmd() for large pages.
      131ca9c0
    • Brian Gerst's avatar
      [PATCH] i386 head.S cleanup · 81d3703c
      Brian Gerst authored
      Cleans up some redundant code in head.S:
      - Combine checking of AC and ID eflags.
      - Streamline the setting of %cr0.
      81d3703c
    • Linus Torvalds's avatar
      Remove re-use of "struct mm_struct" at execve() time. · 1d0c3d18
      Linus Torvalds authored
      This will eventually allow us to copy argc/argv without
      any intermediate storage (removing current argument size
      limitations).
      1d0c3d18
    • Patrick Mochel's avatar
      Merge master.kernel.org:/home/mochel/BK/linux-2.5-linus · ff0ce79f
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-linus
      ff0ce79f
    • Trond Myklebust's avatar
      [PATCH] Clean out routines that were obsoleted by previous · 4873da0e
      Trond Myklebust authored
      Remove obsolete NFS and RPC routines.
      Remove 'inline' attribute from xdr_decode_fattr().
      4873da0e
    • Trond Myklebust's avatar
      [PATCH] RPC client receive deadlock removal on HIGHMEM systems · 68c45a68
      Trond Myklebust authored
      Remove another class of rpciod deadlocks on HIGHMEM systems. Kick habit of
      keeping pages kmap()ed for the entire duration of NFS
      read/readdir/readlink operations.
      
      Use struct page directly in RPC client data receive buffer. TCP and UDP
      sk->data_ready() bottom-halves copy (and checksum when needed) data into
      pages rather than iovecs. atomic_kmap() of single pages is used for the
      copy.
      
      include/linux/xdr.h
         Declare structure for copying an sk_buff here rather than in xprt.c.
         Forward declaration of new functions.
      
      include/linux/sunrpc/xprt.h
         RPC client receive buffer changed to use new format 'struct xdr_buf'.
      
      net/sunrpc/clnt.c
         Initialize new format receive buffer.
      
      net/sunrpc/sunrpc_syms.c
         Export xdr_inline_pages(), xdr_shift_buf()
      
      net/sunrpc/xdr.c
         xdr_inline_pages() inlines pages into the receive buffer.
         xdr_partial_copy_from_skb() replaces csum_partial_copy_to_page_cache()
      	and copy code in tcp_read_request(). Provides sendfile()-style
      	method for copying data from an skb into a struct xdr_buf.
         xdr_shift_buf() replaces xdr_shift_iovec() for when we overestimate
      	the size of the RPC/NFS header.
      
      net/sunrpc/xprt.c
         Adapt UDP and TCP receive routines to use new format xdr_buf.
      
      include/linux/nfs_xdr.h
         struct nfs_readargs, nfs_readdirargs, nfs_readlinkargs,
      	nfs3_readdirargs, nfs3_readlinkargs all transmit page information.
         struct nfs_readdirres, nfs_readlinkres, nfs3_readlinkres obsoleted.
         struct nfs_rpc_ops->readlink(), readdir(), read() now send pages
      
      fs/nfs/dir.c
         Adapt to new format ->readdir().
         Avoid kmap() around the RPC call.
      
      fs/nfs/read.c
         Adapt to new format ->read() and struct nfs_readargs.
      
      fs/nfs/symlink.c
         Adapt to new format ->readlink().
      
      fs/nfs/proc.c
         Convert nfs_proc_readlink(), nfs_proc_readdir(), nfs_proc_read()
      
      fs/nfs/nfs2xdr.c
         Convert XDR routines to transmit page information.
         Remove duplicate zeroing of pages when server returns a short read.
      
      fs/nfs/nfs3proc.c
         Convert nfs3_proc_readlink(),nfs3_proc_readdir(),nfs3_proc_read()
      
      fs/nfs/nfs3xdr.c
         Convert XDR routines to transmit page information.
         Remove duplicate zeroing of pages when server returns a short read.
      
      Cheers,
        Trond
      68c45a68
    • Trond Myklebust's avatar
      [PATCH] Teach RPC client to send pages rather than iovecs. · 9f73fdbc
      Trond Myklebust authored
      Stop rpciod from deadlocking against itself in map_new_virtual() on HIGHMEM
      systems. RPC client currently has to keep all pages that are scheduled for
      transmission kmap()ed into an iovec for the entire duration of the call.
      We only actually need to kmap() pages while making the (non-blocking)
      call to sock_sendmsg().
      
      NOTE: When transmitting several pages in one RPC call, sock_sendmsg()
      requires us to kmap() *all* those pages at the same time. Opens for
      deadlocks between rpciod and some other process that also kmaps more
      than 1 page at a time.
      For the TCP case we can solve later by converting to TCP_CORK+sendpage().
      
      include/linux/sunrpc/xdr.h
         Introduce 'struct xdr_buf' in order to allow RPC layer to handle
         pages directly.
      
      include/linux/sunrpc/xprt.h:
         Convert the RPC client send-buffer to the new format.
      
      net/sunrpc/clnt.c
         Initialize the new format RPC send-buffer.
      
      net/sunrpc/sunrpc_syms.c
         Export xdr_encode_pages()
      
      net/sunrpc/xdr.c
         xdr_kmap() kmap()+copy a struct xdr_buf into an iovec array.
         xdr_kunmap() clean up after xdr_kmap().
         xdr_encode_pages() used to inline pages for transmission.
      
      net/sunrpc/xprt.c
         xprt_sendmsg() needs to kmap() the pages into an iovec for transmission.
      
      include/linux/nfs_xdr.h
         struct nfs_writeargs transmits full page information.
         Convert nfs_rpc_ops->write() to send pages.
      
      fs/nfs/write.c
         Adapt to new format nfs_writeargs / nfs_rpc_ops->write()
      
      fs/nfs/proc.c
         Convert nfs_proc_write().
      
      fs/nfs/nfs2xdr.c
         Convert nfs_xdr_writeargs()
      
      fs/nfs/nfs3proc.c
         Convert nfs3_proc_write().
      
      fs/nfs/nfs3xdr.c
         Convert nfs3_xdr_writeargs()
      
      Cheers,
         Trond
      9f73fdbc
    • Luca Barbieri's avatar
      [PATCH] [2.4] [2.5] Fix PPPoATM crash on disconnection · b2521b9c
      Luca Barbieri authored
      PPPoATM uses tasklet_disable() on a tasklet inside a struct and then
      frees the struct, leaving a pointer to the freed tasklet inside tasklet
      lists.
      
      This patch replaces tasklet_disable() with tasklet_kill().
      b2521b9c
    • Linus Torvalds's avatar
      Merge signal arch cleanups · f7e837b2
      Linus Torvalds authored
      f7e837b2
    • Stephen Rothwell's avatar
      [PATCH] consolidate errno definitions · 2cf5814b
      Stephen Rothwell authored
      Just remove duplicates among the asm-*/errno.h.
      2cf5814b
    • Stephen Rothwell's avatar
      [PATCH] consolidate do_signal · e9946e06
      Stephen Rothwell authored
      11 out of our 17 architectures have basically the same code
      in arch/../kernel/signal.c:do_signal.  This patch creates a
      common function for that bit of code and uses it in the places
      it can be.
      
      The 2.5.15 version of this patch builds and runs on i386 and PPC and has
      been briefly looked at by the CRIS, PARISC, PPC64 and x86_64 maintainers.
      
      As a bonus, this fixes the "ignore SIGURG" bug for 9 more architectures
      (i386 and PPC already were fixed).
      e9946e06
    • Stephen Rothwell's avatar
      [PATCH] consolidate generic peices of the siginfo structures and associated stuff · 6ba85d4c
      Stephen Rothwell authored
      This patch creates asm-generic/siginfo.h and uses it to remove a
      lot of duplicate code in the various asm-*/siginfo.h files.  Some
      if it is a little ugly, but I think it will be worth it just to
      help us eliminate some of the bugs that have come from code copying.
      6ba85d4c
    • Stephen Rothwell's avatar
      [PATCH] consolidate arch specific copy_siginfo_to_user · 849badb7
      Stephen Rothwell authored
      This patch moves a version of copy_siginfo_to_user that is common to
      ten of our architectures into the gerneic code and allows the other
      architectures to override it.  I suspect more of the remaining
      architectures will be able to use it as well once it is fixed (patch
      to follow).
      849badb7
    • Jan-Benedict Glaw's avatar
      [PATCH] SRM cleanup for generic Alpha kernels · 052508d3
      Jan-Benedict Glaw authored
      - alpha_using_srm is #define'd for machine specific kernels, but
        is a real integer variable for generic Alpha kernels. Export
        it...
      
      - The callback_* functions are _always_ there (they might be NOP
        functions owith generic kernels on non-SRM machines).
      
      - srm_env can now be compiled on generic alpha kernels. An
        explicit check for SRM capability was always there:-)
      052508d3
    • Linus Torvalds's avatar
      Merge home.transmeta.com:/home/torvalds/v2.5/blk-plug · 9c2c68b8
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      9c2c68b8
    • Jens Axboe's avatar
      [PATCH] block plugging reworked · eba5b46c
      Jens Axboe authored
      This patch provides the ability for a block driver to signal it's too
      busy to receive more work and temporarily halt the request queue. In
      concept it's similar to the networking netif_{start,stop}_queue helpers.
      
      To do this cleanly, I've ripped out the old tq_disk task queue. Instead
      an internal list of plugged queues is maintained which will honor the
      current queue state (see QUEUE_FLAG_STOPPED bit). Execution of
      request_fn has been moved to tasklet context. blk_run_queues() provides
      similar functionality to the old run_task_queue(&tq_disk).
      
      Now, this only works at the request_fn level and not at the
      make_request_fn level. This is on purpose: drivers working at the
      make_request_fn level are essentially providing a piece of the block
      level infrastructure themselves. There are basically two reasons for
      doing make_request_fn style setups:
      
      o block remappers. start/stop functionality will be done at the target
        device in this case, which is the level that will signal hardware full
        (or continue) anyways.
      
      o drivers who wish to receive single entities of "buffers" and not
        merged requests etc. This could use the start/stop functionality. I'd
        suggest _still_ using a request_fn for these, but set the queue
        options so that no merging etc ever takes place. This has the added
        bonus of providing the usual request depletion throttling at the block
        level.
      eba5b46c
    • Anton Blanchard's avatar
      [PATCH] TLB shootdown infrastructure in 2.5 · b8391722
      Anton Blanchard authored
      It looks like a race betwen exec_mmap and access_process_vm in
      proc_pid_cmdline (or any other procfs functions that uses
      access_process_vm).
      b8391722
    • Jens Axboe's avatar
      [PATCH] a few ll_rw_blk exports missing · 454c37c0
      Jens Axboe authored
      o blk_get_request() and blk_put_request() needs exporting
      o blk_max_pfn is used by BLOCK_BOUNCE_ANY, which modular SCSI needs
      454c37c0
    • Robert Love's avatar
      [PATCH] Robert Love likes leather and chains · 3e4a097b
      Robert Love authored
      > Hmm. That patch does not compile. "p->cpu" does not exist, it's
      > "p->thread_info->cpu". Tssk.
      
      Ouch, I am bad.  Sorry.
      
      Make the ChangeLog entry something really defamatory.
      
      	Robert Love
      3e4a097b
    • Robert Love's avatar
      [PATCH] O(1) count_active_tasks · 01bc15ed
      Robert Love authored
      This is William Irwin's algorithmically O(1) version of
      count_active_tasks (which is currently O(n) for n total tasks on the
      system).
      
      I like it a lot: we become O(1) because now we count uninterruptible
      tasks, so we can return (nr_uninterruptible + nr_running).  It does not
      introduce any overhead or hurt the case for small n, so I have no
      complaints.
      
      This copy has a small optimization over the original posting, but is
      otherwise the same thing wli posted earlier.  I have tested to make sure
      this returns accurate results and that the kernel profile improves.
      01bc15ed
    • Patrick Mochel's avatar
      PCI: start to use common fields of struct device_driver more · 4b4a837f
      Patrick Mochel authored
      - add struct device_driver field to struct pci_driver
      - make sure those fields get set on driver registration (and register with core)
      - remove internal pci_drivers
      4b4a837f
    • Patrick Mochel's avatar
      Beef up centralized driver mgmt: · f371ab1c
      Patrick Mochel authored
      - add name, bus, lock, refcount, bus_list, devices, and dir fields to struct
      - add release callback to be called when  refcount hits 0
      - add helpers for registration and refcounting
      - create directory for driver in bus's directory
      f371ab1c
    • Ivan Kokshaysky's avatar
      [PATCH] 2.5.18 pci/setup-bus.c: incorrect BUG() calls · 5ff8f2bb
      Ivan Kokshaysky authored
      Previously assigned resources are perfectly valid - just silently
      ignore them.
      5ff8f2bb
    • Robert Love's avatar
      [PATCH] real-time info in /proc/<pid>/stats · 79569bfe
      Robert Love authored
      Attached patch adds output of rt_priority and policy to
      /proc/<pid>/stats.
      
      This will not break compatibility with existing applications and will
      allow ps(1) and friends to display pertinent scheduling information.
      79569bfe
    • Jan-Benedict Glaw's avatar
      [PATCH] Trivial compile fix to fs/binfmt_em86.c · 3e7e1382
      Jan-Benedict Glaw authored
      Please apply this patch to let binfmt_em86.c compile again.
      3e7e1382
    • Linus Torvalds's avatar
      More drm updates from Keith Whitwell · 1df703fa
      Linus Torvalds authored
      1df703fa
    • Ivan Kokshaysky's avatar
      [PATCH] 2.5.18: unnamed PCI bus resources · bae651dd
      Ivan Kokshaysky authored
      As pointed out by Russell King, resource name pointers
      of the secondary PCI buses are left uninitialized in the
      non-x86 PCI allocation path.
      
      Assigning these pointers in pci_add_new_bus() fixes the problem.
      bae651dd
    • Linus Torvalds's avatar
      Merge http://fbdev.bkbits.net:8080/fbdev-2.5 · 7304ada2
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      7304ada2
    • Martin Dalecki's avatar
      [PATCH] 2.5.18 QUEUE_EMPTY and the unpleasant friends. · cdac1baf
      Martin Dalecki authored
       - Eliminate all usages of the obscure QUEUE_EMPTY macro.
      
       - Eliminate all unneccessary checks for RQ_INACTIVE, this can't happen during
         the time we run the request strategy routine of a single major number block
         device. Perhaps the still remaining usage in scsi and i2o_block.c should be
         killed as well, since the upper ll_rw_blk layer shouldn't pass inactive
         requests down.
      
      Those are all places where we have deeply burried and hidden major number
      indexed arrays. Let's deal with them slowly...
      cdac1baf
    • Martin Dalecki's avatar
      [PATCH] airo · 5fb231d2
      Martin Dalecki authored
      Since apparently no body else did care thus far, and since I'm using
      this driver, well here it comes:
      
       - Adjust the airo wireless LAN card driver for the fact that modules
         don't export symbols by default any longer.
      
       - Make some stuff which obivously should be static there static as well.
         (Plenty of code in Linux actually deserves a review for this
         far too common bug...)
      5fb231d2
    • Martin Dalecki's avatar
      [PATCH] 2.5.18 IDE 72 · 9c4d67fb
      Martin Dalecki authored
       - Replace ide_delay_50m with mdelay(50). There is absolutely no reason we
         should behave different behaviors whatever IDECS support is enabled or not.
      
       - Kill last parameter of ide_register_hw(). It should return a pointer to the
         interface registered later.
      
       - pdc202xx patches by Bartomiej onierkiewicz.
      
       - ServerWorks chi pset support cleanup by Andrej Panin.
      
       - Move temporarily ide_setup_ports to main.c unfold it in ide-pnp.c.
      9c4d67fb
    • Robert Love's avatar
      [PATCH] preempt-safe net/ code · 1bc32826
      Robert Love authored
      This fixes three locations in net/ where per-CPU data could bite us
      under preemption.  This is the result of an audit I did and should
      constitute all of the unsafe code in net/.
      
      In net/core/skbuff.c I did not have to introduce any code - just
      rearrange the grabbing of smp_processor_id() to be in the interrupt off
      region.  Pretty clean fixes.
      
      Note in the future we can use put_cpu() and get_cpu() to grab the CPU#
      safely.  I will send a patch to Marcelo so we can have a 2.4 version
      (which doesn't do the preempt stuff), too...
      1bc32826
    • Robert Love's avatar
      [PATCH] set_cpus_allowed optimization · eab0fed3
      Robert Love authored
      This adds an optimization to set_cpus_allowed: if the task is not
      running, there is no sense in kicking the migration_threads into action,
      we just need to update task->cpu.  This was suggested by Mike Kravetz.
      
      Besides being an optimization, this would prevent any future race
      between set_cpus_allowed and the migration_threads.
      eab0fed3
    • Robert Love's avatar
      [PATCH] documentation for the new scheduler · 49610fe2
      Robert Love authored
      This adds documentation about the O(1) scheduler to Documentation/.  The
      new scheduler is complicated and providing future scheduler hackers some
      background seems a Good Thing to me.
      
      Specifically:
      
      - add Documentation/sched-coding.txt: an overview of the functions,
        magic numbers, and variables in the scheduler as well as (most
        importantly) a review of the locking semantics.
      
      - add Documentation/sched-design.txt: an edited version of Ingo's
        initial email to lkml about his scheduler.  Goes over the design,
        implementation, and goals of the scheduler.  I tried to edit it where
        needed to bring it in line with the scheduler as it is today.
      
      - modify kernel/sched.c: update your copyright and add a change entry
        for the new scheduler.
      49610fe2
    • Robert Love's avatar
      [PATCH] trivial: no "error" on preempt_count notice · 75e50517
      Robert Love authored
      The attached trivial patch simply changes the printk debug statement in
      do_exit when preempt_count!=0 to say "note" instead of "error" and log
      at KERN_INFO in lieu of KERN_ERR.
      
      I want to keep the message around a bit, but people get too paranoid
      when things like nfsd legitimately exit with a preempt_count=1.
      75e50517
    • James Simmons's avatar
      Ported Voodoo3+ cards over to new api. · 1ecd8afb
      James Simmons authored
      1ecd8afb