1. 18 Jun, 2002 40 commits
    • Martin Schwidefsky's avatar
      [PATCH] 2.5.22: elevator exports. · 144d6034
      Martin Schwidefsky authored
      The dasd driver as a module needs to call elevator_init/elavator_exit to
      change the elevator algorithm to elevator_noop.
      144d6034
    • Martin Schwidefsky's avatar
      [PATCH] 2.5.22: dasd patches. · b43e0a19
      Martin Schwidefsky authored
      1) Replace is_read_only with bdev_read_only. The last user of is_read_only
         is gone...
      2) Remove alloc & free of the label array in dasd_genhd. This is needed for
         the label array extension but this is a patch of its own.
      3) Maintain the old behaviour of /proc/dasd/devices. Its is possible again
         to use "add <devno>" instead of "add device <devno>" or "add range=<devno>".
      b43e0a19
    • Martin Schwidefsky's avatar
      [PATCH] 2.5.22: common code changes for s/390. · dcfdb40c
      Martin Schwidefsky authored
      1) Add __s390__ to the list of architectures that use unsigned int as
         type for rautofs_wqt_t. __s390__ is defined for both 31-bit and 64-bit
         linux for s/390. Both architectures are fine with unsigned int since
         sizeof(unsigned int) == sizeof(unsigned long) for 31 bit s/390.
      2) Remove early initialization call ccwcache_init(). It doesn't exists
         anymore.
      3) Remove special case for irq_stat. We moved the irq_stat structure out
         of the lowcore.
      4) Replace acquire_console_sem with down_trylock & return to avoid an
         endless trap loop if console_unblank is called from interrupt context
         and the console semaphore is taken.
      dcfdb40c
    • Andries E. Brouwer's avatar
      [PATCH] small makefile correction · dfbb3f53
      Andries E. Brouwer authored
      dfbb3f53
    • Martin Schwidefsky's avatar
      [PATCH] 2.5.22: s390 fixes. · 69fad3f9
      Martin Schwidefsky authored
      some recent changes in the s390 architectures files:
      1) Makefile fixes.
      2) Add missing include statements.
      3) Convert all parametes in the 31 bit emulation wrapper of sys_futex.
      4) Remove semicolons after 'fi' in Config.in
      5) Fix scheduler defines in system.h
      6) Simplifications in qdio.c
      69fad3f9
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.make · abffad5d
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      abffad5d
    • Andi Kleen's avatar
      [PATCH] Fix incorrect inline assembly in RAID-5 · 9dcbdb7e
      Andi Kleen authored
      Pure luck that this ever worked at all. The optimized assembly for XOR
      in RAID-5 declared did clobber registers, but did declare them as read-only.
      I'm pretty sure that at least the 4 disk and possibly the 5 disk cases
      did corrupt callee saved registers. The others probably got away because
      they were always used in own functions (and only clobbering caller saved
      registers)and only called via pointers, preventing inlining.
      
      Some of the replacements are a bit complicated because the functions
      exceed gcc's 10 asm argument limit when each input/output register needs
      two arguments. Works around that by saving/restoring some of the registers
      manually.
      
      I wasn't able to test it in real-life because I don't have a RAID
      setup and the RAID code didn't compile since several 2.5 releases.
      I wrote some test programs that did test the XOR and they showed
      no regression.
      
      Also aligns to XMM save area to 16 bytes to save a few cycles.
      9dcbdb7e
    • Jan Kara's avatar
      [PATCH] Rename of xqm.h · e00fe306
      Jan Kara authored
      This renames 'xqm.h' to a bit better (more consistent with rest of
      sources) name.
      e00fe306
    • Zwane Mwaikambo's avatar
      [PATCH] Make SMP/APIC config option earlier · ee926b71
      Zwane Mwaikambo authored
      Patch to reorder the APIC configuration so that dependencies are
      determined beforehand for MCE. Keith Owens pointed this out a whiles back
      actually.
      ee926b71
    • Adrian Bunk's avatar
      [PATCH] drivers/char/rio/func.h needs linux/kdev_t.h · 288aa740
      Adrian Bunk authored
      It seems func.h needs to inlude linux/kdev_t.h:
      288aa740
    • Jens Axboe's avatar
      [PATCH] missing tag blkdev.h stuff · 813bef20
      Jens Axboe authored
      For some odd reason, the blkdev.h changes did not get patched into your
      tree from the patch I sent?! Anyways, here's that change:
      813bef20
    • Stephen Rothwell's avatar
      [PATCH] make file leases work as they should · 23b9a9a3
      Stephen Rothwell authored
      This patch fixes the following problems in the file lease:
      	when there are multiple shared leases on a file, all the
      		lease holders get notified when someone opens the
      		file for writing (used to be only the first).
      	when a nonblocking open breaks a lease, it will time out
      		as it should (used to never time out).
      
      This should make the leases code more usable (hopefully).
      23b9a9a3
    • Stephen Rothwell's avatar
      [PATCH] Make copy_siginfo_to_user mode explicit · 9d33a271
      Stephen Rothwell authored
      This patch makes copy_siginfo_to_user excplicitly copy the correct
      union member.  Previously we were getting the correct result but
      really by accident.
      9d33a271
    • Stephen Rothwell's avatar
      [PATCH] 2.5.22 compile fixes · e784b458
      Stephen Rothwell authored
      I needed these to make 2.5.22 build for me.
      e784b458
    • Stephen Rothwell's avatar
      [PATCH] remove getname32 · 64088985
      Stephen Rothwell authored
      arch/ppc64/kernel/sys_ppc32.c has a getname32 function.  The only
      difference between it and getname() is that it calls do_getname32()
      instead of do_getname() (see fs/namei.c).  The difference between
      do_getname and do_getname32 is that the former checks to make sure that
      the pointer it is passed is less that TASK_SIZE and restricts the length
      copied to the lesser of PATH_MAX and (TASK_SIZE - pointer).
      do_getname32 uses PAGE_SIZE instead of PATH_MAX.
      
      Anton Blanchard says it is OK to remove getname32.
      
      arch/ia64/ia32/sys_ia32.c defined a getname32(), but nothing used it.
      
      This patch removes both.
      64088985
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/mingo/bk-sched · 1f60ade2
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      1f60ade2
    • Ingo Molnar's avatar
      - sync wakeup affinity fix: do not fast-migrate threads · 8509486a
      Ingo Molnar authored
        without making sure that the target CPU is allowed.
      8509486a
    • Ingo Molnar's avatar
      - comment and coding style fixes. · f042243c
      Ingo Molnar authored
      f042243c
    • Ingo Molnar's avatar
      sched_yield() is misbehaving. · 18cb13a6
      Ingo Molnar authored
        the current implementation does the following to 'give up' the CPU:
      
         - it decreases its priority by 1 until it reaches the lowest level
         - it queues the task to the end of the priority queue
      
        this scheme works fine in most cases, but if sched_yield()-active tasks
        are mixed with CPU-using processes then it's quite likely that the
        CPU-using process is in the expired array. In that case the yield()-ing
        process only requeues itself in the active array - a true context-switch
        to the expired process will only occur once the timeslice of the
        yield()-ing process has expired: in ~150 msecs. This leads to the
        yield()-ing and CPU-using process to use up rougly the same amount of
        CPU-time, which is arguably deficient.
      
        i've fixed this problem by extending sched_yield() the following way:
      
        +        * There are three levels of how a yielding task will give up
        +        * the current CPU:
        +        *
        +        *  #1 - it decreases its priority by one. This priority loss is
        +        *       temporary, it's recovered once the current timeslice
        +        *       expires.
        +        *
        +        *  #2 - once it has reached the lowest priority level,
        +        *       it will give up timeslices one by one. (We do not
        +        *       want to give them up all at once, it's gradual,
        +        *       to protect the casual yield()er.)
        +        *
        +        *  #3 - once all timeslices are gone we put the process into
        +        *       the expired array.
        +        *
        +        *  (special rule: RT tasks do not lose any priority, they just
        +        *  roundrobin on their current priority level.)
        +        */
      18cb13a6
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/mingo/bk-misc · 3986594c
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      3986594c
    • Ingo Molnar's avatar
      - sti() preemption fix. · 5567614b
      Ingo Molnar authored
      5567614b
    • Ingo Molnar's avatar
      - fix preemption bug in cli(). · d76513b3
      Ingo Molnar authored
      d76513b3
    • Paul Menage's avatar
      [PATCH] Push BKL into ->permission() calls · 73769d9b
      Paul Menage authored
      This patch (against 2.5.22) removes the BKL from around the call
      to i_op->permission() in fs/namei.c, and pushes the BKL into those
      filesystems that have permission() methods that require it.
      73769d9b
    • Linus Torvalds's avatar
      Merge home.transmeta.com:/home/torvalds/v2.5/scsi-tape · 67aa3988
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      67aa3988
    • Kai Mäkisara's avatar
      [PATCH] 2.5.22 SCSI tape buffering changes · f179b6ce
      Kai Mäkisara authored
      This contains the following changes to the SCSI tape driver:
      
      - one buffer is used for each tape (no buffer pool)
      - buffers allocated when needed and freed when device closed
      - common code from read and write moved to a function
      - default maximum number of scatter/gather segments increased to 64
      - tape status set to "no tape" after succesful unload
      f179b6ce
    • Matthew Wilcox's avatar
      [PATCH] Remove sync_timers · 94173f68
      Matthew Wilcox authored
      Nobody's using it any more, kill:
      94173f68
    • Matthew Wilcox's avatar
      [PATCH] remove tqueue.h from sched.h · 4f9d90c4
      Matthew Wilcox authored
      This is actually part of the work I've been doing to remove BHs, but it
      stands by itself.
      4f9d90c4
    • Andi Kleen's avatar
      [PATCH] poll/select fast path · 30724dcd
      Andi Kleen authored
      This patch streamlines poll and select by adding fast paths for a
      small number of descriptors passed. The majority of polls/selects
      seem to be of this nature. The main saving comes from not allocating
      two pages for wait queue and table, but from using stack allocation
      (upto 256bytes) when only a few descriptors are needed. This makes
      it as fast again as 2.0 and even a bit faster because the wait queue
      page allocation is avoided too (except when the drivers overflow it)
      
      select also skips a lot faster over big holes and avoids the separate
      pass of determining the max. number of descriptors in the bitmap.
      
      A typical linux system saves a considerable amount of unswappable memory
      with this patch, because it usually has 10+ daemons hanging around in poll or
      select with each two pages allocated for data and wait queue.
      
      Some other cleanups.
      30724dcd
    • Andi Kleen's avatar
      [PATCH] Move jiffies_64 down into architectures · 86403107
      Andi Kleen authored
      x86-64 needs an own special declaration of jiffies_64.
      
      prepare for this by moving the jiffies_64 declaration from
      kernel/timer.c down into each architecture.
      86403107
    • Andi Kleen's avatar
      [PATCH] x86-64 merge · b068ec41
      Andi Kleen authored
      x86_64 core updates.
      
       - Make it compile again (switch_to macros etc., add dummy suspend.h)
       - reenable strength reduce optimization
       - Fix ramdisk (patch from Mikael Pettersson)
       - Some merges from i386
       - Reimplement lazy iobitmap allocation.  I reimplemented it based
         on bcrl's idea.
       - Fix IPC 32bit emulation to actually work and move into own file
       - New fixed mtrr.c from DaveJ ported from 2.4 and reenable it.
       - Move tlbstate into PDA.
       - Add some changes that got lost during the last merge.
       - new memset that seems to actually work.
       - Align signal handler stack frames to 16 bytes.
       - Some more minor bugfixes.
      b068ec41
    • Andrew Morton's avatar
      [PATCH] msync(bad address) should return -ENOMEM · 9343c8e2
      Andrew Morton authored
      Heaven knows why, but that's what the opengroup say, and returning
      -EFAULT causes 2.5 to fail one of the Linux Test Project tests.
      
      [ENOMEM]
                The addresses in the range starting at addr and continuing
                for len bytes are outside the range allowed for the address
                space of a process or specify one or more pages that are not
                mapped.
      
      2.4 has it right, but 2.5 doesn't.
      9343c8e2
    • Andrew Morton's avatar
      [PATCH] Reduce the radix tree nodes to 64 slots · df01cd17
      Andrew Morton authored
      Reduce the radix tree nodes from 128 slots to 64.
      
      - The main reason for this is that on 64-bit/4k page machines, the
        slab allocator has decided that radix tree nodes will require an
        order-1 allocation.  Shrinking the nodes to 64 slots pulls that back
        to an order-0 allocation.
      
      - On x86 we get fifteen 64-slot nodes per page rather than seven
        129-slot nodes, for a modest memory saving.
      
      - Halving the node size will approximately halve the memory use in
        the worrisome really-large, really-sparse file case.
      
      Of course, the downside is longer tree walks.  Each level of the tree
      covers six bits of pagecache index rather than seven.  As ever, I am
      guided by Anton's profiling on the 12- and 32-way PPC boxes.
      radix_tree_lookup() is currently down in the noise floor.
      
      Now, there is one special case: one file which is really big and which
      is accessed in a random manner and which is accessed very heavily: the
      blockdev mapping.  We _are_ showing some locking cost in
      __find_get_block (used to be __get_hash_table) and in its call to
      find_get_page().  I have a bunch of patches which introduce a generic
      per-cpu buffer LRU, and which remove ext2's private bitmap buffer LRUs.
      I expect these patches to wipe the blockdev mapping lookup lock contention
      off the map,  but I'm awaiting test results from Anton before deciding
      whether those patches are worth submitting.
      df01cd17
    • Andrew Morton's avatar
      [PATCH] rename get_hash_table() to find_get_block() · 3fb3b749
      Andrew Morton authored
      Renames the buffer_head lookup function `get_hash_table' to
      `find_get_block'.
      
      get_hash_table() is too generic a name. Plus it doesn't even use a hash
      any more.
      3fb3b749
    • Andrew Morton's avatar
      [PATCH] allow GFP_NOFS allocators to perform swapcache writeout · 493f4988
      Andrew Morton authored
      One weakness which was introduced when the buffer LRU went away was
      that GFP_NOFS allocations became equivalent to GFP_NOIO.  Because all
      writeback goes via writepage/writepages, which requires entry into the
      filesystem.
      
      However now that swapout no longer calls bmap(), we can honour
      GFP_NOFS's intent for swapcache pages.  So if the allocation request
      specifies __GFP_IO and !__GFP_FS, we can wait on swapcache pages and we
      can perform swapcache writeout.
      
      This should strengthen the VM somewhat.
      493f4988
    • Andrew Morton's avatar
      [PATCH] remove set_page_buffers() and clear_page_buffers() · 38cb52ca
      Andrew Morton authored
      The set_page_buffers() and clear_page_buffers() macros are each used in
      only one place.  Fold them into their callers.
      38cb52ca
    • Andrew Morton's avatar
      [PATCH] take bio.h out of highmem.h · a28b4d4e
      Andrew Morton authored
      highmem.h includes bio.h, so just about every compilation unit in the
      kernel gets to process bio.h.
      
      The patch moves the BIO-related functions out of highmem.h and into
      bio-related headers.  The nested include is removed and all files which
      need to include bio.h now do so.
      a28b4d4e
    • Andrew Morton's avatar
      [PATCH] clean up alloc_buffer_head() · c67b85b0
      Andrew Morton authored
      alloc_bufer_head() does not need the additional argument - GFP_NOFS is
      always correct.
      c67b85b0
    • Andrew Morton's avatar
      [PATCH] ext3: clean up journal_try_to_free_buffers() · 1704566f
      Andrew Morton authored
      Clean up ext3's journal_try_to_free_buffers().  Now that the
      releasepage() a_op is non-blocking and need not perform I/O, this
      function becomes much simpler.
      1704566f
    • Andrew Morton's avatar
      [PATCH] kmap_atomic fix in bio_copy() · 9d8e6506
      Andrew Morton authored
      bio_copy is doing
      
      	vfrom = kmap_atomic(bv->bv_page, KM_BIO_IRQ);
      	vto = kmap_atomic(bbv->bv_page, KM_BIO_IRQ);
      
      which, if I understand atomic kmaps, is incorrect.  Both source and
      dest will get the same pte.
      
      The patch creates a separate atomic kmap member for the destination and
      source of this copy.
      9d8e6506
    • Andrew Morton's avatar
      [PATCH] fix loop driver for large BIOs · 8504e479
      Andrew Morton authored
      Fix the loop driver for loop-on-blockdev setups.
      
      When presented with a multipage BIO, loop_make_request overindexes the
      first page and corrupts kernel memory.  Fix it to walk the individual
      pages.
      
      BTW, I suspect the IV handling in loop may be incorrect for multipage
      BIOs.  Should we not be recalculating the IV for each page in the BIOs,
      or incrementing the offset by the size of the preceding pages, or such?
      8504e479