09 Jan, 2006

40 commits

  • New multiplexer implementation. Decreases the number of kernel threads
    required. Better handling when the user process receives a signal.

    Signed-off-by: Latchesar Ionkov
    Cc: Eric Van Hensbergen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Latchesar Ionkov
     
  • If a 9pfs server crashes, v9fs_fd_close() is called. Subsequently, in
    cleaning up by performing a umount() on the FS that was provided by this
    server v9fs_fd_close() is called again, and uses the old, freed valus of
    trans->priv. This patch ensures that trans->priv can be freed only once,
    otherwise this function bails early.

    Signed-off-by: Michal Ostrowski
    Signed-off-by: Eric Van Hensbergen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Van Hensbergen
     
  • This makes it possible for boot code to use screen_info without dragging in
    all of tty.h.

    Signed-off-by: Brian Gerst
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brian Gerst
     
  • Add EMAC to my CREDITS entry.

    Signed-off-by: Eugene Surovegin
    Signed-off-by: Linus Torvalds

    Eugene Surovegin
     
  • Add desired 'diffstat' options to use for kernel patches.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Signed-off-by: Evgeniy Polyakov
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Polyakov
     
  • This patch fixes a data corruption in smb_proc_setattr_unix()
    (smb_filetype_from_mode() returns an u32, and there are only four bytes
    reserved for it in data.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maciej W. Rozycki
     
  • PTRACE_SYSEMU{,_SINGLESTEP} is actually arch specific, for now, and the
    current allocated number clashes with a ptrace code of frv, i.e.
    PTRACE_GETFDPIC. I should have submitted this much earlier, anyway we get no
    breakage for this.

    CC: Daniel Jacobowitz
    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Remove the redundant spinlock in the function resolve_symbol() as we are
    not altering the module list, and we already hold the semaphore.

    Signed-off-by: Ashutosh Naik
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashutosh Naik
     
  • Reduce the size of the pageframe for NR_CPUS>4, CONFIG_PREEMPT back to the
    minimal size by unionising both ->private and ->mapping with the pagetable
    lock.

    It uses an anonymous struct and hence requires gcc-3.x.

    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Reorder members of the kiocb structure to make sync kiocb setup faster. By
    setting the elements sequentially, the write combining buffers on the CPU
    are able to combine the writes into a single burst, which results in fewer
    cache cycles being consumed, freeing them up for other code. This results
    in a 10-20KB/s[*] increase on the bw_unix part of LMbench on my test
    system.

    * The improvement varies based on what other patches are in the system,
    as there are a number of bottlenecks, so this number is not absolutely
    accurate.

    Signed-off-by: Benjamin LaHaise
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin LaHaise
     
  • Currently TAINT_FORCED_RMMOD is totally unused. Because it is marked as
    TAINT_FORCED_MODULE instead when user forced a module unload. This patch
    marks it correctly

    Signed-off-by: Akinobu Mita
    Cc: Rusty Russell
    Cc: Dave Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Ensure that an exported symbol does not already exist in the kernel or in
    some other module's exported symbol table. This is done by checking the
    symbol tables for the exported symbol at the time of loading the module.
    Currently this is done after the relocation of the symbol.

    Signed-off-by: Ashutosh Naik
    Signed-off-by: Anand Krishnan
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashutosh Naik
     
  • Signed-off-by: Ben Collins
    Cc: "Brown, Len"
    Cc: linux-acpi@vger.kernel.org
    Cc: Stelian Pop
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Collins
     
  • Do not use platform_device_register_simple() as it is going away, implement
    ->probe() and -remove() functions so manual binding and unbinding will work
    with this driver.

    Signed-off-by: Dmitry Torokhov
    Cc: Stelian Pop
    Cc: Mattia Dongili
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Torokhov
     
  • Function prototypes belong into header files.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Add a hook so architectures can validate /dev/mem mmap requests.

    This is analogous to validation we already perform in the read/write
    paths.

    The identity mapping scheme used on ia64 requires that each 16MB or
    64MB granule be accessed with exactly one attribute (write-back or
    uncacheable). This avoids "attribute aliasing", which can cause a
    machine check.

    Sample problem scenario:
    - Machine supports VGA, so it has uncacheable (UC) MMIO at 640K-768K
    - efi_memmap_init() discards any write-back (WB) memory in the first granule
    - Application (e.g., "hwinfo") mmaps /dev/mem, offset 0
    - hwinfo receives UC mapping (the default, since memmap says "no WB here")
    - Machine check abort (on chipsets that don't support UC access to WB
    memory, e.g., sx1000)

    In the scenario above, the only choices are
    - Use WB for hwinfo mmap. Can't do this because it causes attribute
    aliasing with the UC mapping for the VGA MMIO space.
    - Use UC for hwinfo mmap. Can't do this because the chipset may not
    support UC for that region.
    - Disallow the hwinfo mmap with -EINVAL. That's what this patch does.

    Signed-off-by: Bjorn Helgaas
    Cc: Hugh Dickins
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Tidy up __HAVE_PHYS_MEM_ACCESS_PROT usage to make mmap_mem() easier to read.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Remove various things which were checking for gcc-1.x and gcc-2.x compilers.

    From: Adrian Bunk

    Some documentation updates and removes some code paths for gcc < 3.2.

    Acked-by: Russell King
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • There's one scsi driver which doesn't compile due to weird __VA_ARGS__ tricks
    and the rather useful scsi/sd.c is currently getting an ICE. None of the new
    SAS code compiles, due to extensive use of anonymous unions. The V4L guys are
    very good at exploiting the gcc-2.95.x macro expansion bug (_why_ does each
    driver need to implement its own debug macros?) and various people keep on
    sneaking in anonymous unions, which are rather nice.

    Plus anonymous unions are rather useful.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • This patch moves 'fork_out:' under 'bad_fork_free:', and removes now
    unneeded 'if (retval)' check.

    Signed-off-by: Oleg Nesterov
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • "extern inline" doesn't make much sense.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • I couldn't find any docs explaining the contents of /sys/block//stat,
    so I wrote up the following. I'm not completely sure it's accurate - Jens,
    could you give a yea or nay on this?

    In particular, the counts of read/write IOs and read/write sectors are
    incremented in different places - it looks like they both increment as the
    request is being finished, but I'm not completely sure of that.

    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Isaacson
     
  • sys_setpgid() allows to change ->pgrp of ptraced childs.

    'man setpgid' does not tell anything about that, so I consider
    this behaviour is a bug.

    Signed-off-by: Oleg Nesterov
    Cc: Oren Laadan
    Cc: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • setsid() does not work unless the calling process is a
    thread_group_leader().

    'man setpgid' does not tell anything about that, so I consider this
    behaviour is a bug.

    Signed-off-by: Oren Laadan
    Cc: Oleg Nesterov
    Cc: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oren Laadan
     
  • setpgid(0, pgid) or setpgid(forked_child_pid, pgid) does not work unless
    the calling process is a thread_group_leader().

    'man setpgid' does not tell anything about that, so I consider this
    behaviour is a bug.

    Signed-off-by: Oleg Nesterov
    Cc: Oren Laadan
    Cc: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • In fork, child should recopy parent's pgrp/tty after it has tasklist_lock.
    Otherwise following a setpgid() on the parent, *after* copy_signal(), the
    child will own a stale pgrp (which may be reused); (eg. if copy_mm()
    sleeps a long while due to memory pressure). Similar issue for the tty.

    Signed-off-by: Oren Laadan
    Cc: Oleg Nesterov
    Cc: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oren Laadan
     
  • This creates a new function, cciss_interrupt_mode called from
    cciss_pci_init. This function determines what type of interrupt vector to
    use, i.e., MSI, MSI-X, or IO-APIC.

    One noticeable difference is changing the interrupt field of the controller
    struct to an array of 4 unsigned ints. The Smart Array HW is capable of
    generating 4 distinct interrupts depending on the transport method in use
    during operation. These are:

    #define DOORBELL_INT 0
    Used to notify the contoller of configuration updates. We only use
    this feature when in polling mode.

    #define PERF_MODE_INT 0
    Used when the controller is in Performant Mode.

    #define SIMPLE_MODE_INT 2
    Used when the controller is in Simple Mode (current Linux implementation).

    #define MEMQ_INT_MODE 3
    Not used.

    When using IO-APIC interrupts these 4 lines are OR'ed together so when any
    one fires an interrupt an is generated. In MSI or MSI-X mode this hardware
    OR'ing is ignored. We must register for our interrupt depending on what
    mode the controller is running. For Linux we use SIMPLE_MODE_INT
    exclusively at this time. Please consider this for inclusion.

    Signed-off-by: Mike Miller
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Miller
     
  • Remove global event log in the tpm bios event measurement log code that
    would have caused problems when the code was run concurrently. A log is
    now allocated and attached to the seq file upon open and destroyed
    appropriately.

    Signed-off-by: Kylene Jo Hall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kylene Jo Hall
     
  • The problem. It is expected that /sbin/halt -p works exactly like
    /sbin/halt, when the kernel does not implement power off functionality.

    The kernel can do a lot of work in the reboot notifiers and in
    device_shutdown before we even get to machine_power_off. Some of that
    shutdown is not safe if you are leaving the power on, and it definitely
    gets in the way of using sysrq or pressing ctrl-alt-del. Since the
    shutdown happens in generic code there is no way to fix this in
    architecture specific code :(

    Some machines are kernel oopsing today because of this.

    The simple solution is to turn LINUX_REBOOT_CMD_POWER_OFF into
    LINUX_REBOOT_CMD_HALT if power_off functionality is not implemented.

    This has the unfortunate side effect of disabling the power off
    functionality on architectures that leave pm_power_off to null and still
    implement something in machine_power_off. And it will break the build on
    some architectures that don't have a pm_power_off variable at all.

    On both counts I say tough.

    For architectures like alpha that don't implement the pm_power_off variable
    pm_power_off is declared in linux/pm.h and it is a generic part of our
    power management code, and all architectures should implement it.

    For architectures like parisc that have a default power off method in
    machine_power_off if pm_power_off is not implemented or fails. It is easy
    enough to set the pm_power_off variable. And nothing bad happens there,
    the machines just stop powering off.

    The current semantics are impossible without a flag at the top level so we
    can avoid the problem code if a power off is not implemented. pm_power_off
    is as good a flag as any with the bonus that it works without modification
    on at least x86, x86_64, powerpc, and ppc today.

    Andrew can you pick this up and put this in the mm tree. Kernels that
    don't compile or don't power off seem saner than kernels that oops or
    panic. Until we get the arch specific patches for the problem
    architectures this probably isn't smart to push into the stable kernel.
    Unfortunately I don't have the time at the moment to walk through every
    architecture and make them work. And even if I did I couldn't test it :(

    From: Hirokazu Takata

    Add pm_power_off() for build fix of arch/m32r/kernel/process.c.

    From: Miklos Szeredi

    UML build fix

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Hayato Fujiwara
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The patch makes posix_fadvise return ESPIPE on FIFO/pipe in order to be
    fully POSIX-compliant.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Valentine Barshak
     
  • Based on questions people have asked me. Repeatedly.

    Signed-off-by: Rob Landley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rob Landley
     
  • This patch forces RCU torture threads off various CPUs in the system
    allowing them to become idle and go tickless. Meant to test support for
    such tickless idle CPU in RCU.

    Signed-off-by: Srivatsa Vaddagiri
    Cc: Dipankar Sarma
    Cc: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Srivatsa Vaddagiri
     
  • Kernels that have had Windows drivers loaded into them are undebuggable.
    I've wasted a number of hours chasing bugs filed in Fedora bugzilla only to
    find out much later that the user had used such 'helpers', and their
    problems were unreproducable without them loaded.

    Acked-by: Arjan van de Ven
    Signed-off-by: Dave Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • I found that blkp field was not used in kernel tree.

    As most of the times NR_CPUS is a power of two and kmalloc() memory blocks
    too, this extra field basically doubles the memory space allocated in
    __alloc_percpu() to store the 'struct percpu_data'

    (for example, if NR_CPUS=8 on i386, kmalloc(4*8+4) returns a 64 bytes block
    instead of a 32 bytes block after this patch)

    Signed-off-by: Eric Dumazet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     
  • This patch inlines the single user of struct super_block field
    s_old_blocksize and removes the field.

    Signed-off-by: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pekka Enberg
     
  • Minor update to Documentation/applying-patches.txt

    Signed-off-by: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     
  • linux/delay.h included twice

    Signed-off-by: Nicolas Kaiser
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Kaiser
     
  • mmap() returns -EINVAL if given a zero length, and thus elf_map() in
    binfmt_elf.c does likewise if it attempts to map a (page-aligned) ELF
    segment with zero filesize. Such a situation never arises with the default
    linker scripts, but there's nothing inherently wrong with zero-filesize
    (but non-zero memsize) ELF segments. Custom linker scripts can generate
    them, and the kernel should be able to map them; this patch makes it so.

    Signed-off-by: David Gibson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     
  • The parameter to put_cpu_var() is unreferenced by the implementation, and
    the compiler doesn't try to comprehend comments, so this wouldn't cause any
    problem, but if bugged me enough to post a fix :-)

    Signed-off-by: David S. Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David S. Miller