1. 12 Apr, 2004 14 commits
    • Andrew Morton's avatar
      [PATCH] ppc64: si_addr fix · 5c57dda8
      Andrew Morton authored
      From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      
      This patch fixes si_addr on some segfaults in 64 bits mode, it used to be
      bogus (address not passed to do_page_fault by the asm code after a failure
      to set an SLB entry).
      5c57dda8
    • Andrew Morton's avatar
      [PATCH] ppc32: Fix thinko in the altivec exception code · dbf5a5af
      Andrew Morton authored
      From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      
      Without this patch, executing an altivec instruction on an altivec capable
      CPU with a kernel that do not have CONFIG_ALTIVEC set would result in a
      kernel crash.
      
      (Fix forward ported from 2.4 by John Whitney
      <jwhitney-linuxppc@sands-edge.com>)
      dbf5a5af
    • Andrew Morton's avatar
      [PATCH] get_wchan() sparc64 fix · 906648b4
      Andrew Morton authored
      From: William Lee Irwin III <wli@holomorphy.com>
      
      Now the scheduler text is in its own ELF section this branch is asking for
      an illegal displacement.
      906648b4
    • Andrew Morton's avatar
      [PATCH] Fix get_wchan() FIXME wrt. order of functions · b283f09c
      Andrew Morton authored
      From: William Lee Irwin III <wli@holomorphy.com>
      
      This addresses the issue with get_wchan() that the various functions acting
      as scheduling-related primitives are not, in fact, contiguous in the text
      segment.  It creates an ELF section for scheduling primitives to be placed
      in, and places currently-detected (i.e.  skipped during stack decoding)
      scheduling primitives and others like io_schedule() and down(), which are
      currently missed by get_wchan() code, into this section also.
      
      The net effects are more reliability of get_wchan()'s results and the new
      ability, made use of by this code, to arbitrarily place scheduling
      primitives in the source code without disturbing get_wchan()'s accuracy.
      
      Suggestions by Arnd Bergmann and Matthew Wilcox regarding reducing the
      invasiveness of the patch were incorporated during prior rounds of review. 
      I've at least tried to sweep all arches in this patch.
      b283f09c
    • Andrew Morton's avatar
      [PATCH] i4l: kernelcapi receive workqueue and locking rework · ee28db84
      Andrew Morton authored
      From: Armin Schindler <armin@melware.de>
      
      With this patch the ISDN kernel CAPI code uses a per application workqueue
      with proper locking to prevent message re-ordering due to the fact a
      workqueue may run on another CPU at the same time.  Also some locks for
      internal data is added.
      
      Removed global recv_queue work, use per application workqueue.  Added
      proper locking mechanisms for application, controller and application
      workqueue function.  Increased max.  number of possible applications and
      controllers.
      ee28db84
    • Andrew Morton's avatar
      [PATCH] Fix VT open/close race · efffe9c8
      Andrew Morton authored
      The race is that con_close() can sleep, and drops the BKL while
      tty->count==1.  But another thread can come into init_dev() and will take a
      new ref against the tty and start using it.
      
      But con_close() doesn't notice that new ref and proceeds to null out
      tty->driver_data while someone else is using the resurrected tty.
      
      So the patch serialises con_close() against init_dev() with tty_sem.
      
      
      Here's a test app which reproduced the oops instantly on 2-way.  It realy
      needs to be run against all tty-capable devices.
      
      /*
       * Run this against a tty which nobody currently has open, such as /dev/tty9
       */
      
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <fcntl.h>
      #include <sys/ioctl.h>
      #include <linux/kd.h>
      
      void doit(char *filename)
      {
      	int fd,x;
      
      	fd = open(filename, O_RDWR);
      	if (fd < 0) {
      		perror("open");
      		exit(1);
      	}
      	ioctl(fd, KDKBDREP, &x);
      	close(fd);
      }
      
      main(int argc, char *argv[])
      {
      	char *filename = argv[1];
      
      	for ( ; ; )
      		doit(filename);
      }
      efffe9c8
    • Andrew Morton's avatar
      [PATCH] remove down_tty_sem() · ef00e355
      Andrew Morton authored
      Remove the down_tty_sem() and up_tty_sem() and replace them with open-coded
      up() and down().  This is an equivalent transformation.
      
      I assume these functions were created to open the possibility of per-tty
      semaphores at some time in the future.  But the code which is protected by
      this lock deals with two tty's at the same time, and the next patch will need
      to release the lock after the tty has been destroyed.
      ef00e355
    • Andrew Morton's avatar
      [PATCH] con_open() speedup/cleanup · c0719c5a
      Andrew Morton authored
      con_open() is called on every open of the tty, even if the tty is already all
      set up.  We only need to do that initialisation if the tty is being set up
      for the very first time (tty->count == 1).
      
      So do that: check for tty_count == 1 inside console_sem() and if so, bypass
      all the unnecessary initialisation.
      
      
      
      Note that this patch reintroduces the con_close()-vs-init_dev() race+oops. 
      This is because that oops is accidentally prevented because when it happens,
      con_open() reinstalls tty->driver_data even when tty->count > 1.
      
      But that's bogus, and when the race happens we end up running
      vcs_make_devfs() and vcs_remove_devfs() against the same console at the same
      time, producing indeterminate results.
      
      So the race needs to be fixed again, for real.
      c0719c5a
    • Andrew Morton's avatar
      [PATCH] vt.c cleanup · 49b8290a
      Andrew Morton authored
      - Remove unneeded casts of a void *
      
      - whitespace consistency.
      49b8290a
    • Andrew Morton's avatar
      [PATCH] generalise system_running · 0eb217f9
      Andrew Morton authored
      From: Olof Johansson <olof@austin.ibm.com>
      
      It's currently a boolean, but that means that system_running goes to zero
      again when shutting down.  So we then use code (in the page allocator) which
      is only designed to be used during bootup - it is marked __init.
      
      So we need to be able to distinguish early boot state from late shutdown
      state.  Rename system_running to system_state and give it the three
      appropriate states.
      0eb217f9
    • Andrew Morton's avatar
      [PATCH] feed devfs through Lindent · 243c64b2
      Andrew Morton authored
      Nobody seems to have any outstanding work against devfs, so...
      243c64b2
    • Andrew Morton's avatar
      [PATCH] Fix URLs in Kconfig files · 77b92f5b
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      From: "Petri T. Koistinen" <petri.koistinen@iki.fi>
      
      1) Various URLs in the Kconfig files are out of date: update them.
      
      2) URLs should be of form <http://url-goes-here>.
      
      3) References to files in the source should be of form
         <file:path-from-top>
      
      4) Email addresses should be of form <foo@bar.com>
      77b92f5b
    • Andrew Morton's avatar
      [PATCH] x86-64 update · 3dccf5d0
      Andrew Morton authored
      From: Andi Kleen <ak@muc.de>
      
      Current x86-64 patchkit for 2.6.5.
      
      - Add drivers/firmware/Kconfig
      
      - Clarify description of CONFIG_IOMMU_DEBUG
      
      - Use correct gcc option to optimize for Intel CPUs
      
      - Add EDD support (Matt Domsch)
      
      - Add workaround for broken IOMMU on VIA hardware.  Uses swiotlb there now.
      
      - Handle more than 8 local APICs (Suresh B Siddha) 
      
      - Delete obsolete mtrr Makefile
      
      - Add x86_cache_alignment and set it up properly for P4 (128 bytes instead
        of 64bytes).  Also report in /proc/cpuinfo
      
      - Minor cleanup in in_gate_area
      
      - Make asm-generic/dma-mapping.h compile with !CONFIG_PCI Just stub out all
        functions in this case.  This is mainly to work around sysfs.
      
      - More !CONFIG_PCI compile fixes
      
      - Make u64 sector_t unconditional
      3dccf5d0
    • Ivan Kokshaysky's avatar
      [PATCH] Fix unaligned stxncpy again · b5c7a2dd
      Ivan Kokshaysky authored
      Herbert Xu noted:
        "The current stxncpy on alpha is still broken when it comes to single
         word, unaligned, src misalignment > dest misalignment copies.
      
         I've attached a program which demonstrates this problem."
      
      Ugh, indeed. It fails when there is a zero byte before the data.
      Thanks.
      
      Here is the fix for this (both regular and ev6 version).
      b5c7a2dd
  2. 03 Apr, 2004 9 commits
  3. 02 Apr, 2004 11 commits
  4. 01 Apr, 2004 6 commits
    • Russell King's avatar
      121b5646
    • Andrew Morton's avatar
      [PATCH] kbuild: $LANG fix · 9be7dd12
      Andrew Morton authored
      From: Sam Ravnborg <sam@ravnborg.org>
      
      Fix this:
      
       	  Building modules, stage 2.
       	  MODPOST
       	LANG := en_US.UTF-8
       	make: LANG: Command not found
       	make: *** [all] Error 127
      
      by removing the tab in front of the LANG assignment.
      9be7dd12
    • Linus Torvalds's avatar
      Merge bk://linux-acpi.bkbits.net/linux-acpi-release-2.6.5 · 64706886
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      64706886
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk · 4a10600a
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      4a10600a
    • Andrew Morton's avatar
      [PATCH] Fix swp_entry_t encoding · 4a25c3d6
      Andrew Morton authored
      From: Martin Schwidefsky <schwidefsky@de.ibm.com>
      
      This fixes a problem in sys_swapon that can cause the creation of invalid
      swap ptes.  This has its cause in the arch-independent swap entries vs. 
      the pte coded swap entries.  The swp_entry_t uses 27 bits for the offset
      and 5 bits for the type.  In sys_swapon this definition is used to find how
      many swap devices and how many pages on each device there can be.  But the
      swap entries encoded in a pte can be subject to additional restrictions due
      to the hardware besides the 27/5 division of the bits in the swp_entry_t
      type.  This is solved by adding pte_to_swp_entry and swp_entry_to_pte calls
      to the calculations for maximum type and offset.
      
      In addition the s390 swap pte division for offset/type is changed from 19/6
      bits to 20/5 bits.
      4a25c3d6
    • Andrew Morton's avatar
      [PATCH] uninline __wake_up_parent · a8760f9c
      Andrew Morton authored
      Two callsites, 48 bytes saved
      a8760f9c