An error occurred fetching the project authors.
  1. 02 Dec, 2003 1 commit
  2. 15 Oct, 2003 1 commit
    • Andi Kleen's avatar
      [PATCH] Enable interrupts in faults from VM86 mode · 01d259fe
      Andi Kleen authored
      vm86 mode does a copy_to_user from the general protection fault handler
      to update the process' vm86 state.
      
      The problem is that the full GFP handler runs with interrupts off
      currently and that trips the might_sleep() test in copy_to_user().
      
      This happens very often in dosemu and once in a while while the X server
      does its vm86 magic with the VGA bios. 
      
      See
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=1339
      
      for details
      
      This patch fixes this by enabling interrupts when the original code ran
      with interrupts on or ran in vm86 mode (vm86 can clear the IF flag)
      01d259fe
  3. 09 Oct, 2003 1 commit
    • Andi Kleen's avatar
      [PATCH] Prefetch workaround for Athlon/Opteron · 9b7a76f4
      Andi Kleen authored
      This is the latest iteration of the workaround for the Athlon/Opteron
      prefetch erratum.  Sometimes the CPU would incorrectly report an
      exception on prefetch.
      
      This supercedes the previous dumb workaround of checking for AMD CPUs in
      prefetch().  That one bloated the kernel by several KB and lead to lots
      of unnecessary checks in hot paths. 
      
      Also this one handles user space faults too, so the kernel can
      effectively isolte the user space from caring about this errata.
      
      Instead it handles it in the slow path of the exception handler (the
      check is only done when the kernel would normally trigger seg fault or
      crash anyways)
      
      All the serious criticisms to the previous patches have been addressed. 
      It checks segment bases now, handles vm86 mode and avoids deadlocks when
      the prefetch exception happened inside mmap_sem.
      
      This includes review and fixes from Jamie Lokier and Andrew Morton.
      Opcode decoder based on code from Richard Brunner.
      9b7a76f4
  4. 07 May, 2003 2 commits
    • Andrew Morton's avatar
      [PATCH] remove unnecessary PAE pgd set · 9a4c2568
      Andrew Morton authored
      From: Dave Hansen <haveblue@us.ibm.com>, Bill Irwin
      
      With PAE on, there are only 4 PGD entries.  The kernel ones never change,
      so there is no need to copy them when a vmalloc fault occurs.  This was
      this was causing problems with the split pmd patches, but it is still
      correct for mainline.
      
      Tested with and without PAE.  I ran it in a loop turning on and off 10 swap
      partitions, which is what excited the original bug.
      http://bugme.osdl.org/show_bug.cgi?id=640
      9a4c2568
    • Andrew Morton's avatar
      [PATCH] access_ok() race fix for 80386. · 7c0aceca
      Andrew Morton authored
      From: Manfred Spraul <manfred@colorfullife.com>
      
      Real 80386 cpus ignore the write protected bit in the page tables when
      running in supervisory mode.  Thus the write protected bit must be checked by
      software.  The current implementation does that check during access_ok().
      This can result in data corruptions, if kswapd starts a swap-out between the
      access_ok and the actual write operation.
      
      To fix this, the patch moves the check from access_ok() into
      __copy_to_user_ll(), and redirects all user space writes into
      __copy_to_user_ll().  The patch only affects kernels build for 80386 cpus.
      Additionally, the patch removes the dead prototypes for __put_user_{1,2,4,8}.
      
      Due to the uninlining of access_ok, the .text segment is now ~ 8 kB shorter.
      7c0aceca
  5. 06 Mar, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] remove __pgd_offset · c93fdc3e
      Andrew Morton authored
      Patch from Dave Hansen <haveblue@us.ibm.com>
      
      __pgd_offset() and pgd_offset() are completely different functions.
      __pgd_offset() is really just a helper to figure out which entry in a
      pgd an address would fall into.   pgd_offset() does all the leg work and
      actually fetches the real pgd entry.
      
      pgd_index() is a much saner name for what __pgd_offset() does.  In fact,
      we do this:
      #define __pgd_offset(address) pgd_index(address)
      
      The attached patch removes all instances of __pgd_offset and just
      replaces them with pgd_index.
      
      Compiles with and without PAE on x86.
      c93fdc3e
  6. 13 Jan, 2003 1 commit
  7. 05 Jan, 2003 1 commit
    • Rusty Russell's avatar
      [PATCH] Exception table cleanup · af285fc8
      Rusty Russell authored
      This patch combines the common exception table searching functionality
      for various architectures, to avoid unneccessary (and currently buggy)
      duplication, and so that the exception table list and lock can be kept
      private to module.c.
      
      The archs provide "struct exception_table" and "search_extable": the
      generic infrastructure drives the rest.
      af285fc8
  8. 15 Dec, 2002 1 commit
  9. 29 Oct, 2002 1 commit
    • Brian Gerst's avatar
      [PATCH] i386 __verify_write fixes · d7952bdd
      Brian Gerst authored
      This patch does a few cleanups/fixes with __verify_write:
       - Only compile it when needed.
       - Move test for KERNEL_DS out of line.
       - The mmap semaphore is needed to access the vma list.
       - Use fixmap for the WP test.
       - Removes an obsolete comment in fixmap.h
      d7952bdd
  10. 29 Sep, 2002 1 commit
    • Ingo Molnar's avatar
      [PATCH] smptimers, old BH removal, tq-cleanup · dd140c87
      Ingo Molnar authored
      This is the smptimers patch plus the removal of old BHs and a rewrite of
      task-queue handling.
      
      Basically with the removal of TIMER_BH i think the time is right to get
      rid of old BHs forever, and to do a massive cleanup of all related
      fields.  The following five basic 'execution context' abstractions are
      supported by the kernel:
      
        - hardirq
        - softirq
        - tasklet
        - keventd-driven task-queues
        - process contexts
      
      I've done the following cleanups/simplifications to task-queues:
      
       - removed the ability to define your own task-queue, what can be done is
         to schedule_task() a given task to keventd, and to flush all pending
         tasks.
      
      This is actually a quite easy transition, since 90% of all task-queue
      users in the kernel used BH_IMMEDIATE - which is very similar in
      functionality to keventd.
      
      I believe task-queues should not be removed from the kernel altogether.
      It's true that they were written as a candidate replacement for BHs
      originally, but they do make sense in a different way: it's perhaps the
      easiest interface to do deferred processing from IRQ context, in
      performance-uncritical code areas.  They are easier to use than
      tasklets.
      
      code that cares about performance should convert to tasklets - as the
      timer code and the serial subsystem has done already. For extreme
      performance softirqs should be used - the net subsystem does this.
      
      and we can do this for 2.6 - there are only a couple of areas left after
      fixing all the BH_IMMEDIATE places.
      
      i have moved all the taskqueue handling code into kernel/context.c, and
      only kept the basic 'queue a task' definitions in include/linux/tqueue.h.
      I've converted three of the most commonly used BH_IMMEDIATE users:
      tty_io.c, floppy.c and random.c. [random.c might need more thought
      though.]
      
      i've also cleaned up kernel/timer.c over that of the stock smptimers
      patch: privatized the timer-vec definitions (nothing needs it,
      init_timer() used it mistakenly) and cleaned up the code. Plus i've moved
      some code around that does not belong into timer.c, and within timer.c
      i've organized data and functions along functionality and further
      separated the base timer code from the NTP bits.
      
      net_bh_lock: i have removed it, since it would synchronize to nothing. The
      old protocol handlers should still run on UP, and on SMP the kernel prints
      a warning upon use. Alexey, is this approach fine with you?
      
      scalable timers: i've further improved the patch ported to 2.5 by wli and
      Dipankar. There is only one pending issue i can see, the question of
      whether to migrate timers in mod_timer() or not. I'm quite convinced that
      they should be migrated, but i might be wrong. It's a 10 lines change to
      switch between migrating and non-migrating timers, we can do performance
      tests later on. The current, more complex migration code is pretty fast
      and has been stable under extremely high networking loads in the past 2
      years, so we can immediately switch to the simpler variant if someone
      proves it improves performance. (I'd say if non-migrating timers improve
      Apache performance on one of the bigger NUMA boxes then the point is
      proven, no further though will be needed.)
      dd140c87
  11. 25 Aug, 2002 1 commit
  12. 10 Aug, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] Infrastructure for atomic user accesses · 199143a8
      Andrew Morton authored
      Well the optimum solution there would be to create and use
      `inc_preempt_count_non_preempt()'.  I don't see any
      way of embedding this in kmap_atomic() or copy_to_user_atomic()
      without loss of flexibility or incurring a double-inc somewhere.
      199143a8
  13. 26 Jul, 2002 1 commit
  14. 21 Jul, 2002 1 commit
    • Ingo Molnar's avatar
      [PATCH] "big IRQ lock" removal, IRQ cleanups · ae86a80a
      Ingo Molnar authored
      This is a massive cleanup of the IRQ subsystem.  It's losely based on
      Linus' original idea and DaveM's original implementation, to fold our
      various irq, softirq and bh counters into the preemption counter.
      
      with this approach it was possible:
      
       - to remove the 'big IRQ lock' on SMP - on which sti() and cli() relied.
      
       - to streamline/simplify arch/i386/kernel/irq.c significantly.
      
       - to simplify the softirq code.
      
       - to remove the preemption count increase/decrease code from the lowlevel
         IRQ assembly code.
      
       - to speed up schedule() a bit.
      
      Global sti() and cli() is gone forever on SMP, there is no more globally
      synchronizing irq-disabling capability.  All code that relied on sti()
      and cli() and restore_flags() must use other locking mechanisms from now
      on (spinlocks and __cli()/__sti()).
      
      obviously this patch breaks massive amounts of code, so only limited
      .configs are working at the moment (UP is expected to be unaffected, but
      SMP will require various driver updates).
      
      The patch was developed and tested on SMP systems, and while the code is
      still a bit rough in places, the base IRQ code appears to be pretty
      robust and clean.
      
      while it boots already so the worst is over, there is lots of work left:
      eg. to fix the serial layer to not use cli()/sti() and bhs ...
      ae86a80a
  15. 04 Jul, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] Use names, not numbers for pagefault types · f1dfe022
      Andrew Morton authored
      This is Bill Irwin's cleanup patch which gives symbolic names to the
      fault types:
      
      	#define VM_FAULT_OOM	(-1)
      	#define VM_FAULT_SIGBUS	0
      	#define VM_FAULT_MINOR	1
      	#define VM_FAULT_MAJOR	2
      
      Only arch/i386 has been updated - other architectures can do this too.
      f1dfe022
  16. 15 Mar, 2002 1 commit
    • Brian Gerst's avatar
      [PATCH] Cleanup F00F bug code · a0816e18
      Brian Gerst authored
      This changes the F00F bug workaround code to use the fixmap facilities
      instead of touching the page tables directly.  It also removes the
      assumption that only 686's don't have the bug.  I have confirmation that
      the patch works on buggy pentiums. 
      a0816e18
  17. 19 Feb, 2002 1 commit
  18. 18 Feb, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] BUG register preservation · 98d809e7
      Andrew Morton authored
      Here's the x86 BUG() implementation we discussed the other day.
      
      I also have the rework of the header files which avoids
      instantiation of strings in headers and saves 100-200k.
      However that is only needed for gcc 2.X.  I assume that
      by the time 2.6 is in use, gcc-3.x will be the preferred
      compiler.
      98d809e7
  19. 05 Feb, 2002 10 commits
    • Linus Torvalds's avatar
      v2.5.1.9 -> v2.5.1.10 · 908920b1
      Linus Torvalds authored
      - Kai Germaschewski: ISDN updates
      - Al Viro: start moving buffer cache indexing to "struct block_device *"
      - Greg KH: USB update
      - Russell King: fix up some ARM merge issues
      - Ingo Molnar: scalable scheduler
      908920b1
    • Linus Torvalds's avatar
      v2.4.10.6 -> v2.4.11 · 6211a2d8
      Linus Torvalds authored
        - Jeff Garzik: net driver updates
        - me: symlink attach fix
        - Greg KH: USB update
        - Rui Sousa: emu10k driver update
      6211a2d8
    • Linus Torvalds's avatar
      v2.4.9.11 -> v2.4.9.12 · dfc52b82
      Linus Torvalds authored
        - Alan Cox: much more merging
        - Pete Zaitcev: ymfpci race fixes
        - Andrea Arkangeli: VM race fix and OOM tweak.
        - Arjan Van de Ven: merge RH kernel fixes
        - Andi Kleen: use more readable 'likely()/unlikely()' instead of __builtin_expect()
        - Keith Owens: fix 64-bit ELF types
        - Gerd Knorr: mark more broken PCI bridges, update btaudio driver
        - Paul Mackerras: powermac driver update
        - me: clean up PTRACE_DETACH to use common infrastructure
      dfc52b82
    • Linus Torvalds's avatar
      v2.4.9.10 -> v2.4.9.11 · a880f45a
      Linus Torvalds authored
        - Neil Brown: md cleanups/fixes
        - Andrew Morton: console locking merge
        - Andrea Arkangeli: major VM merge
      a880f45a
    • Linus Torvalds's avatar
      v2.4.9.4 -> v2.4.9.5 · 1c3cefa5
      Linus Torvalds authored
        - Merge with Alan
        - Trond Myklebust: NFS fixes - kmap and root inode special case
        - Al Viro: more superblock cleanups, inode leak in rd.c, minix
        directories in page cache
        - Paul Mackerras: clean up rubbish from sl82c105.c
        - Neil Brown: md/raid cleanups, NFS filehandles
        - Johannes Erdfelt: USB update (usb-2.0 support, visor fix, Clie fix,
        pl2303 driver update)
        - David Miller: sparc and net update
        - Eric Biederman: simplify and correct bootdata allocation - don't
        overwrite ramdisks
        - Tim Waugh: support multiple SuperIO devices, parport doc updates
      1c3cefa5
    • Linus Torvalds's avatar
      v2.4.4.1 -> v2.4.4.2 · 26560b55
      Linus Torvalds authored
        - David Miller: network syncup (better TCP page fault handling by Andrea etc)
        - Tim Hockin: moxa driver fixes
        - Alexander Viro: clean up process reaping procedures, make /proc use
        the proper fields to notice that the process is gone, gone, gone.
        - Justin Gibbs: aic7xxx driver update to 6.1.13.
        - me: fix PCI allocation so that it doesn't stomp on unknown memory
        - Jeff Garzik: 8139too net drvr fix
        - Nigel Gamble: merge page fault interrupt gate from preemtible kernel.
        Fixes problem noticed by Brian Gerst.
        - Jean Tourrilhes: Orinoco / Airport support diff. Mucho cleanups.
      26560b55
    • Linus Torvalds's avatar
      v2.4.4 -> v2.4.4.1 · 236e6127
      Linus Torvalds authored
        - Al Viro: clean up driver "invalidate_device()" mess
        - Andries Brouwer: make sd.c work with USB Dane-Elec CompactFlash Card
        Reader
        - me: fix nasty lazy kernel page table update problem
        - me: undo fork changes. Too many user-level bugs and unresolved issues.
        - Peter Anvin: iso9660 cleanups
        - Alan Cox: big merge
        - Johannes Erdfelt: UHCI pci DMA setup fix
      236e6127
    • Linus Torvalds's avatar
      v2.4.2.4 -> v2.4.2.5 · cc80f8f9
      Linus Torvalds authored
        - Rik van Riel and others: mm rw-semaphore (ps/top ok when swapping)
        - IDE: 256 sectors at a time is legal, but apparently confuses some
        drives. Max out at 255 sectors instead.
        - Petko Manolov: USB pegasus driver update
        - make the boottime memory map printout at least almost readable.
        - USB driver updates
        - pte_alloc()/pmd_alloc() need page_table_lock.
      cc80f8f9
    • Linus Torvalds's avatar
      v2.4.1.3 -> v2.4.1.4 · 2a7117ac
      Linus Torvalds authored
        - big S/390x 64-bit merge
        - typos and license name fixes. doc updates.
        - more include file cleanups (phase out "malloc.h")
        - even more elevator corner cases.. When not merging, find the best insertion point.
        - pmac ide update
        - network fixes (netif_wake_queue on tx timeout)
        - USB printer select() fix
        - NFS client missed initialization, deamon fixed client address check
      2a7117ac
    • Linus Torvalds's avatar
      Import changeset · 7a2deb32
      Linus Torvalds authored
      7a2deb32