1. 05 Sep, 2005 1 commit
    • Martin Schwidefsky's avatar
      [PATCH] s390: machine check handler bugs · ae6aa2ea
      Martin Schwidefsky authored
      
      
      The new machine check handler still has a few bugs.
      
      1) The system entry time has to be stored in the machine check handler,
      
      2) the machine check return psw may not be stored at the usual place
         because it might overwrite the return psw of the interrupted context,
      
      3) the return address for the call to s390_handle_mcck in the i/o interrupt
         handler is not correct,
      
      4) the system call cleanup has to take the different save area of the
         machine check handler into account,
      
      5) the machine check handler may not call UPDATE_VTIME before
         CREATE_STACK_FRAME, and
      
      6) the io leave path needs a critical section cleanup to make sure that the
         TIF_MCCK_PENDING bit is really checked before switching back to user space.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ae6aa2ea
  2. 29 Aug, 2005 1 commit
    • Steven Rostedt's avatar
      [PATCH] convert signal handling of NODEFER to act like other Unix boxes. · 69be8f18
      Steven Rostedt authored
      
      
      It has been reported that the way Linux handles NODEFER for signals is
      not consistent with the way other Unix boxes handle it.  I've written a
      program to test the behavior of how this flag affects signals and had
      several reports from people who ran this on various Unix boxes,
      confirming that Linux seems to be unique on the way this is handled.
      
      The way NODEFER affects signals on other Unix boxes is as follows:
      
      1) If NODEFER is set, other signals in sa_mask are still blocked.
      
      2) If NODEFER is set and the signal is in sa_mask, then the signal is
      still blocked. (Note: this is the behavior of all tested but Linux _and_
      NetBSD 2.0 *).
      
      The way NODEFER affects signals on Linux:
      
      1) If NODEFER is set, other signals are _not_ blocked regardless of
      sa_mask (Even NetBSD doesn't do this).
      
      2) If NODEFER is set and the signal is in sa_mask, then the signal being
      handled is not blocked.
      
      The patch converts signal handling in all current Linux architectures to
      the way most Unix boxes work.
      
      Unix boxes that were tested:  DU4, AIX 5.2, Irix 6.5, NetBSD 2.0, SFU
      3.5 on WinXP, AIX 5.3, Mac OSX, and of course Linux 2.6.13-rcX.
      
      * NetBSD was the only other Unix to behave like Linux on point #2. The
      main concern was brought up by point #1 which even NetBSD isn't like
      Linux.  So with this patch, we leave NetBSD as the lonely one that
      behaves differently here with #2.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      69be8f18
  3. 24 Aug, 2005 1 commit
  4. 02 Aug, 2005 2 commits
  5. 29 Jul, 2005 3 commits
  6. 27 Jul, 2005 4 commits
  7. 26 Jul, 2005 1 commit
  8. 13 Jul, 2005 1 commit
    • Martin Schwidefsky's avatar
      [PATCH] s390: fadvise hint values. · 068e1b94
      Martin Schwidefsky authored
      
      
      Add special case for the POSIX_FADV_DONTNEED and POSIX_FADV_NOREUSE hint
      values for s390-64.  The user space values in the s390-64 glibc headers for
      these two defines have always been 6 and 7 instead of 4 and 5.  All 64 bit
      applications therefore use the "wrong" values.  To get these applications
      working without recompiling the kernel needs to accept the "wrong" values.
      Since the values for s390-31 are 4 and 5 the compat wrapper for fadvise64
      and fadvise64_64 need to rewrite the values for 31 bit system calls.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      068e1b94
  9. 12 Jul, 2005 1 commit
    • Sam Ravnborg's avatar
      [NET]: add a top-level Networking menu to *config · d5950b43
      Sam Ravnborg authored
      
      
      Create a new top-level menu named "Networking" thus moving
      net related options and protocol selection way from the drivers
      menu and up on the top-level where they belong.
      
      To implement this all architectures has to source "net/Kconfig" before
      drivers/*/Kconfig in their Kconfig file. This change has been
      implemented for all architectures.
      
      Device drivers for ordinary NIC's are still to be found
      in the Device Drivers section, but Bluetooth, IrDA and ax25
      are located with their corresponding menu entries under the new
      networking menu item.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d5950b43
  10. 25 Jun, 2005 7 commits
    • Maneesh Soni's avatar
      [PATCH] kexec code cleanup · 72414d3f
      Maneesh Soni authored
      
      
      o Following patch provides purely cosmetic changes and corrects CodingStyle
        guide lines related certain issues like below in kexec related files
      
        o braces for one line "if" statements, "for" loops,
        o more than 80 column wide lines,
        o No space after "while", "for" and "switch" key words
      
      o Changes:
        o take-2: Removed the extra tab before "case" key words.
        o take-3: Put operator at the end of line and space before "*/"
      Signed-off-by: default avatarManeesh Soni <maneesh@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      72414d3f
    • Alexander Nyberg's avatar
      [PATCH] kdump: Use real pt_regs from exception · 6e274d14
      Alexander Nyberg authored
      
      
      Makes kexec_crashdump() take a pt_regs * as an argument.  This allows to
      get exact register state at the point of the crash.  If we come from direct
      panic assertion NULL will be passed and the current registers saved before
      crashdump.
      
      This hooks into two places:
      die(): check the conditions under which we will panic when calling
      do_exit and go there directly with the pt_regs that caused the fatal
      fault.
      
      die_nmi(): If we receive an NMI lockup while in the kernel use the
      pt_regs and go directly to crash_kexec(). We're probably nested up badly
      at this point so this might be the only chance to escape with proper
      information.
      Signed-off-by: default avatarAlexander Nyberg <alexn@telia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6e274d14
    • Heiko Carstens's avatar
      [PATCH] kexec: s390 support · cf13f0ea
      Heiko Carstens authored
      
      
      Add kexec support for s390 architecture.
      
      From: Milton Miller <miltonm@bga.com>
      
      - Fix passing of first argument to relocate_kernel assembly.
      - Fix Kconfig description.
      - Remove wrong comment and comments that describe obvious things.
      - Allow only KEXEC_TYPE_DEFAULT as image type -> dump not supported.
      Acked-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      cf13f0ea
    • Michael Holzheu's avatar
      [PATCH] s390: debug feature changes · 66a464db
      Michael Holzheu authored
      
      
      This patch changes the memory allocation method for the s390 debug feature.
      Trace buffers had been allocated using the get_free_pages() function before.
      Therefore it was not possible to get big memory areas in a running system due
      to memory fragmentation.  Now the trace buffers are subdivided into several
      subbuffers with pagesize.  Therefore it is now possible to allocate more
      memory for the trace buffers and more trace records can be written.
      
      In addition to that, dynamic specification of the size of the trace buffers is
      implemented.  It is now possible to change the size of a trace buffer using a
      new debugfs file instance.  When writing a number into this file, the trace
      buffer size is changed to 'number * pagesize'.
      
      In the past all the traces could be obtained from userspace by accessing files
      in the "proc" filesystem.  Now with debugfs we have a new filesystem which
      should be used for debugging purposes.  This patch moves the debug feature
      from procfs to debugfs.
      
      Since the interface of debug_register() changed, all device drivers, which use
      the debug feature had to be adjusted.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      66a464db
    • Christian Borntraeger's avatar
      [PATCH] s390: add vmcp interface · 6b979de3
      Christian Borntraeger authored
      
      
      Add interface to issue VM control program commands.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6b979de3
    • Heiko Carstens's avatar
      [PATCH] s390: improved machine check handling · 77fa2245
      Heiko Carstens authored
      
      
      Improved machine check handling.  Kernel is now able to receive machine checks
      while in kernel mode (system call, interrupt and program check handling).
      Also register validation is now performed.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      77fa2245
    • Zwane Mwaikambo's avatar
      [PATCH] i386 CPU hotplug · f3705136
      Zwane Mwaikambo authored
      
      
      (The i386 CPU hotplug patch provides infrastructure for some work which Pavel
      is doing as well as for ACPI S3 (suspend-to-RAM) work which Li Shaohua
      <shaohua.li@intel.com> is doing)
      
      The following provides i386 architecture support for safely unregistering and
      registering processors during runtime, updated for the current -mm tree.  In
      order to avoid dumping cpu hotplug code into kernel/irq/* i dropped the
      cpu_online check in do_IRQ() by modifying fixup_irqs().  The difference being
      that on cpu offline, fixup_irqs() is called before we clear the cpu from
      cpu_online_map and a long delay in order to ensure that we never have any
      queued external interrupts on the APICs.  There are additional changes to s390
      and ppc64 to account for this change.
      
      1) Add CONFIG_HOTPLUG_CPU
      2) disable local APIC timer on dead cpus.
      3) Disable preempt around irq balancing to prevent CPUs going down.
      4) Print irq stats for all possible cpus.
      5) Debugging check for interrupts on offline cpus.
      6) Hacky fixup_irqs() to redirect irqs when cpus go off/online.
      7) play_dead() for offline cpus to spin inside.
      8) Handle offline cpus set in flush_tlb_others().
      9) Grab lock earlier in smp_call_function() to prevent CPUs going down.
      10) Implement __cpu_disable() and __cpu_die().
      11) Enable local interrupts in cpu_enable() after fixup_irqs()
      12) Don't fiddle with NMI on dead cpu, but leave intact on other cpus.
      13) Program IRQ affinity whilst cpu is still in cpu_online_map on offline.
      Signed-off-by: default avatarZwane Mwaikambo <zwane@linuxpower.ca>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f3705136
  11. 23 Jun, 2005 3 commits
  12. 22 Jun, 2005 5 commits
  13. 05 Jun, 2005 4 commits
    • Gerald Schaefer's avatar
      [PATCH] s390: deadlock in appldata · f26d583e
      Gerald Schaefer authored
      
      
      The system might hang when using appldata_mem with high I/O traffic and a
      large number of devices.  The spinlocks bdev_lock and swaplock are acquired
      via calls to si_meminfo() and si_swapinfo() from a tasklet, i.e.  interrupt
      context, which can lead to a deadlock.  Replace tasklet with work queue.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f26d583e
    • Martin Schwidefsky's avatar
      [PATCH] s390: in_interrupt vs. in_atomic · 595bf2aa
      Martin Schwidefsky authored
      
      
      The condition for no context in do_exception checks for hard and soft
      interrupts by using in_interrupt() but not for preemption.  This is bad for
      the users of __copy_from/to_user_inatomic because the fault handler might call
      schedule although the preemption count is != 0.  Use in_atomic() instead
      in_interrupt().
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      595bf2aa
    • Bodo Stroesser's avatar
      [PATCH] s390: uml ptrace fixes · c5c3a6d8
      Bodo Stroesser authored
      
      
      To make UML build and run on s390, I needed to do these two little
      changes:
      
      1) UML includes some of the subarch's (s390) headers. I had to
         change one of them with the following one-liner, to make this
         compile. AFAICS, this change doesn't break compilation of s390
         itself.
      
      2) UML needs to intercept syscalls via ptrace to invalidate the syscall,
         read syscall's parameters and write the result with the result of
         UML's syscall processing. Also, UML needs to make sure, that the host
         does no syscall restart processing. On i386 for example, this can be
         done by writing -1 to orig_eax on the 2nd syscall interception
         (orig_eax is the syscall number, which after the interception is used
         as a "interrupt was a syscall" flag only.
         Unfortunately, s390 holds syscall number and syscall result in gpr2 and
         its "interrupt was a syscall" flag (trap) is unreachable via ptrace.
         So I changed the host to set trap to -1, if the syscall number is changed
         to an invalid value on the first syscall interception.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c5c3a6d8
    • Martin Schwidefsky's avatar
      [PATCH] s390: ptrace peek and poke · 778959db
      Martin Schwidefsky authored
      
      
      The special cases of peek and poke on acrs[15] and the fpc register are not
      handled correctly.  A poke on acrs[15] will clobber the 4 bytes after the
      access registers in the thread_info structure.  That happens to be the kernel
      stack pointer.  A poke on the fpc with an invalid value is not caught by the
      validity check.  On the next context switch the broken fpc value will cause a
      program check in the kernel.  Improving the checks in peek and poke fixes
      this.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      778959db
  14. 01 May, 2005 6 commits