07 Nov, 2005

40 commits

  • Remove the hlist_for_each_rcu() API, which is used only in one place, and
    is trivially converted to hlist_for_each_entry_rcu(), making the code
    shorter and more readable. Any out-of-tree uses may be similarly
    converted.

    Signed-off-by: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     
  • This patch adds a connector that reports fork, exec, id change, and exit
    events for all processes to userspace. It replaces the fork_advisor patch
    that ELSA is currently using. Applications that may find these events
    useful include accounting/auditing (e.g. ELSA), system activity monitoring
    (e.g. top), security, and resource management (e.g. CKRM).

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

    Matt Helsley
     
  • If the backing_dev_info doesn't have BDI_CAP_NO_WRITEBACK we're not supposed
    to write back an inode's pages. But in this situation write_inode_now()
    refuses to write the inode itself as well. Fix.

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

    Andrew Morton
     
  • Andrew Morton suggested to move kprobes from kernel hacking menu, since
    kernel hacking menu is in-appropriate for the Kprobes. This patch moves
    Kprobes and Oprofile under instrumentation menu.

    (akpm: it's not a natural fit, but things like djprobes and the s390 guys'
    statistics library need a home)

    Signed-of-by: Prasanna S Panchamukhi
    Cc: Philippe Elie
    Cc: John Levon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Prasanna S Panchamukhi
     
  • Large console spews from IRQ or local_irq_disable() sections can cause the NMI
    watchdog to go off.

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

    Andrew Morton
     
  • Merge common parts of head.S and head64.S into head.S and move architecture
    specific parts to head31.S and head64.S respectively. Saves us ~500 lines
    of duplicated assembly code.

    Acked-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • If vmcp is interrupted by a signal the vmcp command buffer is not freed.
    Found by Pete Zaitcev.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Borntraeger
     
  • Using __typeof__(*ptr) on a pointer to const makes the __x variable in
    __get_user const as well. The latest gcc will refuse to write to it.

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

    Martin Schwidefsky
     
  • Remove duplicate timeout in qdio_establish().

    Signed-off-by: Ursula Braun-Krahl
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ursula Braun-Krahl
     
  • Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     
  • Access to FBA disks via DIAG fails for block sizes > 512 byte. The device
    analysis code of the DIAG discipline does not properly initialize the DIAG250
    device environment after completion of the analysis. This results in VM only
    serving 512 bytes per block I/O request whereas Linux expects larger block
    sizes. Add proper device environment setup to end of analysis code.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     
  • Future versions of gcc may remove initialization code for control blocks used
    by the diag250 inline assembly due to incompletely specified constraints.
    This may lead to erratic behavior. Fix the diag250 inline assembly
    constraints.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     
  • The test_bit function returns a non-boolean value, it returns 0,1,2,4,...
    instead of only 0 or 1. This causes wrongs results in the mincore system
    call. Check against 0 to get a proper boolean value.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Borntraeger
     
  • Remove pagex pseudo page fault code. It does not work together with the
    system call speedup that makes the complete system call path enabled for
    interrupts. To make pagex and the syscall speedup code work together we would
    have to add code to the program check handler to do a critical section cleanup
    like the asynchronous interrupt code. This would make program checks slower.
    Not what we want.

    Newer versions of z/VM have the improved pfault pseudo page fault interface.
    This replaces the old pagex interface and does not have the problem. So its
    better to just rip out the pagex code.

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

    Martin Schwidefsky
     
  • Make the interface for setting ccw group devices on-/offline consistent with
    that for ccw devices: Check if the device driver provided a set_{on,off}line
    function and just set the device on-/offline if not.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • Don't switch back to 24 bit addressing mode when waiting for an external
    interrupt and set the correct bit in wait PSW (external mask instead of I/O
    mask).

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Fix typos and add a section about cpus in the driver-model documentation.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cornelia Huck
     
  • The calculation of the value return by next_timer_interrupt from jiffies to
    jiffies_64 is racy against xtime updates. We need to protect the calculation
    with read_seqbegin/read_seqretry.

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

    Martin Schwidefsky
     
  • Always create all signal frames for pending signals before returning to
    userspace, not just a single one.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • No one may sleep on us until we've been down()'d. So on allocation,
    initialize `sleepers' to 0, just like everyone else does.

    Signed-off-by: Arthur Othieno
    Acked-by: Christian Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Othieno
     
  • "extern inline" doesn't make much sense.

    Signed-off-by: Adrian Bunk
    Cc: Miles Bader
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • This patch reverts back the changes to HOSTCFLAGS and HOSTLDFLAGS

    When we were building complete binaries to get constants (such as ptrace
    register layout on stack) from host userspace headers, we needed to make the
    arch for building HOST binaries match our one: i.e. on a 64bit system
    compiling 32bit binaries, we compile 32-bit hostprogs and need, say, 32-bit
    ncurses. Now we can revert that - that avoids problem with, say, menuconfig
    and ncurses, on a system which can't compile well 32-bit programs.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Remove usage of hardcoded constants in paging_init().

    By chance I spotted a bug in zones_setup involving a change to ZONE_*
    constants, due to the ZONE_DMA32 patch from Andi Kleen (which is in -mm).
    So, possibly, instead of zones_size[2] you will find zones_size[3] in the
    code, but that change is wrong and this patch is still correct.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • This makes some of the tt-specific options actually depend on CONFIG_MODE_TT.

    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • A number of fixes to improve behavior when large physical memory sizes
    are specified:

    - libc files need -D_FILE_OFFSET_BITS=64 because there are unavoidable uses
    of non-64 interfaces in libc

    - some %d need to be %u

    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Patch imlements full LDT handling in SKAS:
    * UML holds it's own LDT table, used to deliver data on
    modify_ldt(READ)
    * UML disables the default_ldt, inherited from the host (SKAS3)
    or resets LDT entries, set by host's clib and inherited in
    SKAS0
    * A new global variable skas_needs_stub is inserted, that
    can be used to decide, whether stub-pages must be supported
    or not.
    * Uses the syscall-stub to replace missing PTRACE_LDT (therefore,
    write_ldt_entry needs to be modified)

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • Not quite, something along the lines of the patch below works correctly (and
    makes aio performance not suffer from multiple second delays), as skas0 mode
    correctly switches mm contexts, unlike TT (which should probably get nuked
    from the kernel now that skas0 seems to be working).

    Signed-off-by: Benjamin LaHaise
    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Lahaise
     
  • The serial UML OS-abstraction layer patch (um/kernel dir).

    This moves all systemcalls from helper.c file under os-Linux dir

    Signed-off-by: Gennady Sharapov
    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • The serial UML OS-abstraction layer patch (um/kernel dir).

    This moves all systemcalls from main.c file under os-Linux dir and joins mem.c
    and um_arch.c files.

    Signed-off-by: Gennady Sharapov
    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • The serial UML OS-abstraction layer patch (um/kernel dir).

    This moves all systemcalls from uaccess_user.c file under os-Linux dir

    Signed-off-by: Gennady Sharapov
    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gennady Sharapov
     
  • ifa->ifa_address and ifa->ifa_mask are defined as __u32, but used as if they
    were char[4].

    Network code uses htons() to convert it. So UML's method to access these
    fields is wrong for bigendians (e.g. s390)

    I replaced bytewise copying by memcpy(), maybe even that might be removed, if
    ifa->ifa_address/mask may be used immediately.

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • Jeff Dike noted that the assembly code for syscall stubs is misassembled with
    GCC 3.2.3: the values copied in registers weren't preserved between one asm()
    and the following one.

    So I fixed the thing by rewriting the __asm__ constraints more like unistd.h
    ones.

    Note: in syscall6 case I had to add one more instruction (i.e. moving arg6 in
    eax and shuffling things around) - it's needed for the function to be valid in
    general (we can't load the value from the stack, relative to ebp, because we
    change it), but could be avoided since we actually use a constant as param 6.

    The only fix would be to turn stub_syscall6 to a macro and use a "i"
    constraint for arg6 (i.e., specify it's a constant value).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Add some more debugging information when a stub does something unexpected,
    usually segfaulting. Now, it dumps out the stub's registers as well as the
    signal.

    Signed-off-by: Jeff Dike
    Cc: Paolo Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • "extern inline" doesn't make much sense.

    Signed-off-by: Adrian Bunk
    Acked-by: Mikael Starvik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • printk() already declared in include/linux/kernel.h so squish the
    duplication. Besides, no printk() usage here. Bye bye.

    Signed-off-by: Arthur Othieno
    Cc: Mikael Starvik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arthur Othieno
     
  • It's widely seen a MCE non-fatal error reported after resume. It seems MCE
    resume is lacked under ia32. This patch tries to fix the gap.

    Signed-off-by: Shaohua Li
    Acked-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shaohua Li
     
  • Remove unused variable, and make code less evil that way. Fix whitespace
    around for-loop-like macro.

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

    Pavel Machek
     
  • This cleans spaces between * and pointer up, and adds "int" in "unsigned
    int".

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

    Pavel Machek
     
  • This adds few more working systems.

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

    Pavel Machek
     
  • Replace smp_processor_id() with any_online_cpu(cpu_online_map) in order to
    avoid lots of "BUG: using smp_processor_id() in preemptible [00000001]
    code:..." messages in case taking a cpu online fails.

    All the traces start at the last notifier_call_chain(...) in kernel/cpu.c.
    Since we hold the cpu_control semaphore it shouldn't be any problem to access
    cpu_online_map.

    The reason why cpu_up failed is simply that the cpu that was supposed to be
    taken online wasn't even there. That is because on s390 we never know when a
    new cpu comes and therefore cpu_possible_map consists of only ones and doesn't
    reflect reality.

    Signed-off-by: Heiko Carstens
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens