1. 19 Aug, 2003 23 commits
    • Patrick Mochel's avatar
      Merge osdl.org:/home/mochel/src/kernel/linux-2.5-virgin · 0e59015e
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/linux-2.5-power
      0e59015e
    • Linus Torvalds's avatar
      The default ARCH_SI_BAND_T should be "int", since that is what · 42033685
      Linus Torvalds authored
      Linux historically has had. Only x86-64 uses anything else, so
      make the special case be _there_.
      42033685
    • Marc Zyngier's avatar
      [PATCH] EISA bus update · 5bb7472f
      Marc Zyngier authored
      - Don't leave resource name uninitialized if CONFIG_EISA_NAME is not set.
      - Print root device bus_id (so we know which bridge is probed).
      - From Zwane Mwaikambo : Add a release method to virtual root, so it
        stays quiet if probing fails (because some pci-eisa bridge have been
        found before).
      5bb7472f
    • Neil Brown's avatar
      [PATCH] kNFSd: Release udp socket for next nfs request to arrive earlier · e8f3645c
      Neil Brown authored
      From: Mark Hemment <markhe@veritas.com>
      
        For RPC over UDP, after receiving a packet kick another thread as soon
      as possible.  This helps NFS performance.
      e8f3645c
    • Neil Brown's avatar
      [PATCH] kNFSd: Make sure nfsd replies from the address the request was sent to. · b50ca02a
      Neil Brown authored
      This is important on multi-homes hosts.
      b50ca02a
    • Neil Brown's avatar
      [PATCH] kNFSd: Make sure nothing happens to a dead rpc/tcp socket · ebbbef61
      Neil Brown authored
      Just make sure that once SK_DEAD is set, nothing is attempted on the socket.
      ebbbef61
    • Andrew Morton's avatar
      [PATCH] sysctl.h needs compiler.h · de9974b1
      Andrew Morton authored
      From: Bernardo Innocenti <bernie@develer.com>
      
      sysctl.h needs compiler.h
      de9974b1
    • Andrew Morton's avatar
      [PATCH] atp870u.c lockup fix · 16a13d05
      Andrew Morton authored
      Fix infinite loop in the device probe function.
      16a13d05
    • Andrew Morton's avatar
      [PATCH] loop: fix module unload oops · f8a938c3
      Andrew Morton authored
      From: Peter Osterlund <petero2@telia.com>
      
      It oopses on module unload in the kobject layer due to misordered destruction
      of things.
      
      And we need to initialise the unplug timer in blk_alloc_queue(), because we
      kill that timer in blk_alloc_queue()'s companion function,
      blk_cleanup_queue().
      f8a938c3
    • Andrew Morton's avatar
      [PATCH] slab: drain_array fix · d08e5b25
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      If drain_array_locked() is passed the `force' command, it must go in and
      empty the head array.
      d08e5b25
    • Andrew Morton's avatar
      [PATCH] add locking to global list in ymfpci.c · dc4ff5bf
      Andrew Morton authored
      This driver has a global list of devices which has no locking.
      dc4ff5bf
    • Andrew Morton's avatar
      [PATCH] ymfpci oops fix · 0f9f751c
      Andrew Morton authored
      If the driver fails partway through probing, the recovery code will call
      ac97_release_codec(NULL), which oopses.
      0f9f751c
    • Andrew Morton's avatar
      [PATCH] SELinux check behavior value · ff95eddd
      Andrew Morton authored
      From: Stephen Smalley <sds@epoch.ncsc.mil>
      
      This patch fixes a bug in the SELinux module by adding a check of the
      filesystem labeling behavior value obtained from the policy.
      ff95eddd
    • Andrew Morton's avatar
      [PATCH] Fix SELinux avc_log_lock · 1c814119
      Andrew Morton authored
      From: Stephen Smalley <sds@epoch.ncsc.mil>
      
      This patch fixes a bug in the SELinux access vector cache code, which was
      incorrectly using spin_lock_irq rather than spin_lock_irqsave for the
      avc_log_lock.  As this code can be called from hardirq (e.g.  from the
      file_send_sigiotask hook), we need irqsave/restore here.
      1c814119
    • Andrew Morton's avatar
      [PATCH] aio: fix error-path mm leak in ioctx_alloc · b2967b49
      Andrew Morton authored
      From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      
      ioctx_alloc() leaks an mm->mm_count ref on an error path.
      b2967b49
    • Andrew Morton's avatar
      [PATCH] enable the ikconfig stuff in config · d8055027
      Andrew Morton authored
      From: Sean Estabrooks <seanlkml@rogers.com>
      
      - fix space at end of line in config files;
      
      - add error check on put_user(); (Daniele Bellucci <bellucda@tiscali.it>)
      
      - add missing Kconfig piece for ikconfig;
      d8055027
    • Andrew Morton's avatar
      [PATCH] async write errors: fix spurious fs truncate errors · e89061de
      Andrew Morton authored
      From: Oliver Xymoron <oxymoron@waste.org>
      
      Currently, a writepage() which detects that it is writing outside i_size (due
      to concurrent truncate) will abandon the write, returning -EIO.
      
      The return value will bogusly cause an error to be recorded in the
      address_space.  So convert all those writepage() instances to return zero in
      this case.
      e89061de
    • Andrew Morton's avatar
      [PATCH] async write errors: use flags in address space · fcad2b42
      Andrew Morton authored
      From: Oliver Xymoron <oxymoron@waste.org>
      
      This patch just saves a few bytes in the inode by turning mapping->gfp_mask
      into an unsigned long mapping->flags.
      
      The mapping's gfp mask is placed in the 16 high bits of mapping->flags and
      two of the remaining 16 bits are used for tracking EIO and ENOSPC errors.
      
      This leaves 14 bits in the mapping for future use.  They should be accessed
      with the atomic bitops.
      fcad2b42
    • Andrew Morton's avatar
      [PATCH] async write errors: report truncate and io errors on · fe7e689f
      Andrew Morton authored
      From: Oliver Xymoron <oxymoron@waste.org>
      
      These patches add the infrastructure for reporting asynchronous write errors
      to block devices to userspace.  Error which are detected due to pdflush or VM
      writeout are reported at the next fsync, fdatasync, or msync on the given
      file, and on close if the error occurs in time.
      
      We do this by propagating any errors into page->mapping->error when they are
      detected.  In fsync(), msync(), fdatasync() and close() we return that error
      and zero it out.
      
      
      The Open Group say close() _may_ fail if an I/O error occurred while reading
      from or writing to the file system.  Well, in this implementation close() can
      return -EIO or -ENOSPC.  And in that case it will succeed, not fail - perhaps
      that is what they meant.
      
      
      There are three patches in this series and testing has only been performed
      with all three applied.
      fe7e689f
    • Andrew Morton's avatar
      [PATCH] Local APIC enable fixes · a5bfb7f3
      Andrew Morton authored
      From: mikep@csd.uu.se
      
      There has been a number of problem reports about local APIC
      interacting badly with ACPI on P4s due to the P4 local APIC
      force-enable change in 2.5.74,
      
      This patch reverts the 2.5.74 patch, so if the BIOS disables
      the local APIC on a P4, we don't enable it by default any more.
      
      The rescue the situation for those P4 systems where the local
      APIC _can_ be enabled safely, I've added two kernel parameters
      that can be used to override broken BIOSen:
      - "nolapic" prevents the kernel from enabling or using the local
        APIC. This is stronger than listing a machine in the DMI scan
        blacklist, since it also works for machines that boot with the
        local APIC already enabled.
      - "lapic" tells the kernel to force-enable the P4 local APIC if
        the BIOS disabled it. I haven't changed the logic for P6/K7
        family processors, so we still force-enable those unless
        "nolapic" was passed to the kernel.
      
      The patch also includes a cleanup: the dont_use_local_apic_timer
      flag variable is not set any more since 2.5.74, so it's removed.
      a5bfb7f3
    • Andrew Morton's avatar
      [PATCH] add ASUS l3800P to DMI black list · 14e902a4
      Andrew Morton authored
      From: Eric Valette <eric.valette@free.fr>
      
      The following patch integrated in 2.5.74,
      
      <http://lists.insecure.org/lists/linux-kernel/2003/Jun/5840.html>
      
      really enables the APIC even if BIOS disabled it. Unfortunately,
      enabling APIC really does not seem to work on this ASUS laptop and ACPI
      (which is mandatory) crash the kernel in ACPI code at boot time while
      "Executing all Devices _STA and_INIT methods"
      
      Unless someones find a bug in ACPI code related to APIC management, It
      is safer to add this machine in the DMI black list (along with DELL,
      IBM, ...).
      
      So, as suggested by the author of the problematic change, I added and
      entry in the DMI black list. But my guess is that most laptop will soon
      be present in this list....
      14e902a4
    • Andrew Morton's avatar
      [PATCH] signal handling race condition causing reboot hangs · 3adaf93e
      Andrew Morton authored
      From: Ernie Petrides <petrides@redhat.com>
      
      (I can't get anyone to review this, but I'm sure there's a bug in there, and
      Ernie's patch has been in -mm for some time).
      
      
      There is a long-standing locking hole in the kernel's handling of the
      signals related to stopping and resuming processes.  When a process
      handles SIGSTOP, SIGTSTP, SIGTTIN, or SIGTTOU, the "sighand" lock is
      held while the signal is dequeued and appropriate masks are updated.
      But the "sighand" lock is dropped in several cases before the task's
      state is changed to TASK_STOPPED (or before a group-stop is initiated).
      
      If a process running on another cpu posts a SIGCONT or SIGKILL just after
      the "victim" process releases the lock but before its state is set to
      TASK_STOPPED, the corresponding wakeup will be lost and the victim will
      remain stopped despite the successive SIGCONT or SIGKILL.  In this case,
      a repeated posting of SIGCONT or SIGKILL will have no effect, since the
      original one is already pending (and so causes a repeated posting to be
      discarded).  The occurrence of a SIGSTOP/SIGKILL race where the victim
      has blocked all other signals will result in an unkillable process.
      
      Although a fabricated test program can reproduce a SIGSTOP/SIGCONT race
      hang in less than a minute (on a 2-cpu Dell Precision 450), the scenario
      that has been most frequently encountered is a hang during reboot or
      shutdown.  This occurs because /sbin/killall5 brackets the scanning of
      /proc/* and associated signal posting to (most) of the processes still
      running with kill(-1, SIGSTOP) and kill(-1, SIGCONT) calls to temporarily
      freeze every process except for "init".  Occasionally, its parent (running
      the /etc/rc6.d/S01reboot shell script) gets stuck in TASK_STOPPED state
      with pending SIGCONT and SIGCLD signals, but with no other process left
      to wake it up.
      
      In order to fix the race condition, the locking in do_signal_stop()
      and get_signal_to_deliver() needed reworking to close the hole.  Due
      to lock ordering issues between the "sighand" lock and tasklist_lock,
      there are two cases where the former lock needs to be released and
      then reacquired, thus allowing a tiny hole for a SIGCONT/SIGKILL to
      be posted.  These two cases are resolved by rechecking for a pending
      SIGCONT/SIGKILL after the locks are (re)acquired in the proper order.
      
      Anyone wanting a copy of the test program may e-mail me off-list.
      3adaf93e
    • Andrew Morton's avatar
      [PATCH] Fix si_band type in asm-generic/siginfo.h · b614db14
      Andrew Morton authored
      From: Andi Kleen <ak@suse.de>
      
      POSIX says si_band in siginfo_t must be long. glibc uses this, except
      for Alpha.
      
      This type must be correct on little endian machines, otherwise
      Konqueror does not get any events from dnotity for created/deleted files.
      
      Currenly asm-generic/siginfo.h uses int, which is wrong.
      
      This patch adds a new macro __ARCH_SI_BAND_T which is int for alpha
      and long for everybody else. This makes the type on x86-64 come out
      correctly
      b614db14
  2. 18 Aug, 2003 17 commits
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/jgarzik/net-drivers-2.6 · 7ef85b9f
      Linus Torvalds authored
      into home.osdl.org:/home/torvalds/v2.5/linux
      7ef85b9f
    • Alan Cox's avatar
      b0715ba5
    • Jeff Garzik's avatar
      1b92bd3f
    • Simon Kelley's avatar
      [wireless atmel] minor updates · d64536b0
      Simon Kelley authored
      1) Add another card to the PCMCIA card database.
      2) Fix a bug in wireless extensions.
      3) Remove extra code for compilation without the firmware loader
      4) force-enable CRC32 and FW_LOADER in Kconfig.
      d64536b0
    • Jeff Garzik's avatar
      f9f04003
    • Adam Kropelin's avatar
      465a2853
    • Karol Kozimor's avatar
      [netdrvr 8139too] fix resume behavior · 3bf29326
      Karol Kozimor authored
      3bf29326
    • Matthew Natalier's avatar
      [netdrvr 8139cp] fix h/w vlan offload · 335a69eb
      Matthew Natalier authored
      It wants big endian vlan tags.  IEEE, or just weird?
      335a69eb
    • Javier Achirica's avatar
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/jgarzik/misc-2.6 · 2b575879
      Linus Torvalds authored
      into home.osdl.org:/home/torvalds/v2.5/linux
      2b575879
    • Jeff Garzik's avatar
      [ia32] Note that X86_VENDOR_ID offset in head.S is dependent · 13a35a26
      Jeff Garzik authored
      on NCAPINTS value found in include/asm-i386/cpufeature.h.
      13a35a26
    • Rob Landley's avatar
      ff578d1a
    • Jeff Garzik's avatar
      Merge redhat.com:/garz/repo/linus-2.6 · b8d98bb0
      Jeff Garzik authored
      into redhat.com:/garz/repo/misc-2.6
      b8d98bb0
    • Linus Torvalds's avatar
      Update x86 defconfig · 6f754326
      Linus Torvalds authored
      6f754326
    • Andrew Morton's avatar
      [PATCH] cpumask_t: allow more than BITS_PER_LONG CPUs · bf8cb61f
      Andrew Morton authored
      From: William Lee Irwin III <wli@holomorphy.com>
      
      Contributions from:
      	Jan Dittmer <jdittmer@sfhq.hn.org>
      	Arnd Bergmann <arnd@arndb.de>
      	"Bryan O'Sullivan" <bos@serpentine.com>
      	"David S. Miller" <davem@redhat.com>
      	Badari Pulavarty <pbadari@us.ibm.com>
      	"Martin J. Bligh" <mbligh@aracnet.com>
      	Zwane Mwaikambo <zwane@linuxpower.ca>
      
      It has ben tested on x86, sparc64, x86_64, ia64 (I think), ppc and ppc64.
      
      cpumask_t enables systems with NR_CPUS > BITS_PER_LONG to utilize all their
      cpus by creating an abstract data type dedicated to representing cpu
      bitmasks, similar to fd sets from userspace, and sweeping the appropriate
      code to update callers to the access API.  The fd set-like structure is
      according to Linus' own suggestion; the macro calling convention to ambiguate
      representations with minimal code impact is my own invention.
      
      Specifically, a new set of inline functions for manipulating arbitrary-width
      bitmaps is introduced with a relatively simple implementation, in tandem with
      a new data type representing bitmaps of width NR_CPUS, cpumask_t, whose
      accessor functions are defined in terms of the bitmap manipulation inlines.
      This bitmap ADT found an additional use in i386 arch code handling sparse
      physical APIC ID's, which was convenient to use in this case as the
      accounting structure was required to be wider to accommodate the physids
      consumed by larger numbers of cpus.
      
      For the sake of simplicity and low code impact, these cpu bitmasks are passed
      primarily by value; however, an additional set of accessors along with an
      auxiliary data type with const call-by-reference semantics is provided to
      address performance concerns raised in connection with very large systems,
      such as SGI's larger models, where copying and call-by-value overhead would
      be prohibitive.  Few (if any) users of the call-by-reference API are
      immediately introduced.
      
      Also, in order to avoid calling convention overhead on architectures where
      structures are required to be passed by value, NR_CPUS <= BITS_PER_LONG is
      special-cased so that cpumask_t falls back to an unsigned long and the
      accessors perform the usual bit twiddling on unsigned longs as opposed to
      arrays thereof.  Audits were done with the structure overhead in-place,
      restoring this special-casing only afterward so as to ensure a more complete
      API conversion while undergoing the majority of its end-user exposure in -mm.
       More -mm's were shipped after its restoration to be sure that was tested,
      too.
      
      The immediate users of this functionality are Sun sparc64 systems, SGI mips64
      and ia64 systems, and IBM ia32, ppc64, and s390 systems.  Of these, only the
      ppc64 machines needing the functionality have yet to be released; all others
      have had systems requiring it for full functionality for at least 6 months,
      and in some cases, since the initial Linux port to the affected architecture.
      bf8cb61f
    • Patrick Mochel's avatar
      Merge kernel.bkbits.net:linux-2.5-power · 0a7bf909
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/linux-2.5-power
      0a7bf909
    • Patrick Mochel's avatar
      [power] Improve suspend sequence. · e533deb5
      Patrick Mochel authored
      - Expand pm_power_down() into struct pm_ops, with ->prepare(), ->enter() 
        and ->finish() methods, so the platform drivers get called to do start
        and stop work during suspend sequence.
      
      - Make sure devices are suspended/resumed in enter_state(), and that they
        are powered down in pm_suspend_mem() and pm_suspend_standby().
      
      - Call ->prepare() in suspend_prepare() and ->finish() in suspend_finish().
      e533deb5