1. 09 3月, 2006 5 次提交
  2. 08 3月, 2006 6 次提交
    • P
      powerpc: Fix various syscall/signal/swapcontext bugs · 1bd79336
      Paul Mackerras 提交于
      A careful reading of the recent changes to the system call entry/exit
      paths revealed several problems, plus some things that could be
      simplified and improved:
      
      * 32-bit wasn't testing the _TIF_NOERROR bit in the syscall fast exit
        path, so it was only doing anything with it once it saw some other
        bit being set.  In other words, the noerror behaviour would apply to
        the next system call where we had to reschedule or deliver a signal,
        which is not necessarily the current system call.
      
      * 32-bit wasn't doing the call to ptrace_notify in the syscall exit
        path when the _TIF_SINGLESTEP bit was set.
      
      * _TIF_RESTOREALL was in both _TIF_USER_WORK_MASK and
        _TIF_PERSYSCALL_MASK, which is odd since _TIF_RESTOREALL is only set
        by system calls.  I took it out of _TIF_USER_WORK_MASK.
      
      * On 64-bit, _TIF_RESTOREALL wasn't causing the non-volatile registers
        to be restored (unless perhaps a signal was delivered or the syscall
        was traced or single-stepped).  Thus the non-volatile registers
        weren't restored on exit from a signal handler.  We probably got
        away with it mostly because signal handlers written in C wouldn't
        alter the non-volatile registers.
      
      * On 32-bit I simplified the code and made it more like 64-bit by
        making the syscall exit path jump to ret_from_except to handle
        preemption and signal delivery.
      
      * 32-bit was calling do_signal unnecessarily when _TIF_RESTOREALL was
        set - but I think because of that 32-bit was actually restoring the
        non-volatile registers on exit from a signal handler.
      
      * I changed the order of enabling interrupts and saving the
        non-volatile registers before calling do_syscall_trace_leave; now we
        enable interrupts first.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1bd79336
    • R
      [IA64] mca recovery return value when no bus check · e1c48554
      Russ Anderson 提交于
      When there is no bus check, the return code should be failure, not success.
      
      Signed-off-by: Russ Anderson (rja@sgi.com)
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      e1c48554
    • B
      [IA64] don't report !sn2 or !summit hardware as an error · 6c5e6215
      Bjorn Helgaas 提交于
      This stuff is all in the generic ia64 kernel, and the new initcall error
      reporting complains about them.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      6c5e6215
    • B
      [IA64] gensparse_defconfig: turn on PNPACPI · 57ebc991
      Bjorn Helgaas 提交于
      Turn on CONFIG_PNPACPI.  I recently removed 8250_acpi.c.  All devices
      previously claimed by 8250_acpi.c should now be claimed by 8250_pnp.c.
      This depends on having CONFIG_PNPACPI so ACPI devices show up as PNP
      devices.
      
      All other ia64 defconfigs either have CONFIG_PNPACPI already, or
      don't have 8250 support turned on at all.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      57ebc991
    • R
      [IA64] Increase severity of MCA recovery messages · ea0e92a6
      Russ Anderson 提交于
      The MCA recovery messages are currently KERN_DEBUG,
      so they don't show up in /var/log/messages (by default).
      Increase the severity to KERN_ERR, for the initial
      message (and also add the physical address to this
      message). Leave the successful isolation message as
      KERN_DEBUG, but increase the severity when isolation
      fails to KERN_CRIT.
      
      [Russ' patch made these all KERN_CRIT]
      
      Signed-off-by: Russ Anderson (rja@sgi.com)
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      ea0e92a6
    • A
      [ARM] 3353/1: NAS100d: protect nas100d_power_exit() with machine_is_nas100d() · 744bfe4c
      Alessandro Zummo 提交于
      Patch from Alessandro Zummo
      
      nas100d_power_exit(void) gets some protection
      to avoid freeing an irq when it is not appropriate to do so.
      Signed-off-by: NRod Whitby <rod@whitby.id.au>
      Signed-off-by: NAlessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      744bfe4c
  3. 07 3月, 2006 5 次提交
  4. 05 3月, 2006 2 次提交
  5. 03 3月, 2006 5 次提交
  6. 02 3月, 2006 1 次提交
  7. 01 3月, 2006 6 次提交
  8. 28 2月, 2006 10 次提交
    • M
      [PATCH] powerpc/iseries: Fix double phys_to_abs bug in htab_bolt_mapping · 56ec6462
      Michael Ellerman 提交于
      Before the merge I updated create_pte_mapping() to work for iSeries, by
      calling iSeries_hpte_bolt_or_insert. (4c55130b)
      
      Later we changed iSeries_hpte_insert to cope with the bolting case, and called
      that instead from create_pte_mapping() (which was renamed to htab_bolt_mapping)
      (3c726f8d).
      
      Unfortunately that change introduced a subtle bug, where we pass an absolute
      address to iSeries_hpte_insert() where it expects a physical address. This
      leads to us calling phys_to_abs() twice on the physical address, which is
      seriously bogus.
      
      This only causes a problem if the absolute address from the first translation
      can be looked up again in the chunk_map, which depends on the size and layout
      of memory. I've seen it fail on one box, but not others.
      
      The minimal fix is to pass the physical address to iSeries_hpte_insert(). For
      2.6.17 we should make phys_to_abs() BUG if we try to double-translate an
      address.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      56ec6462
    • O
      [PATCH] powerpc: fix NULL pointer in handle_eeh_events · 273d2803
      Olaf Hering 提交于
      This patch fixes a crash in handle_eeh_events,
      but ethtool -t still doesnt work right.
      
      ...
      pepino:~ # cpu 0x3: Vector: 300 (Data Access) at [c00000005192bbe0]
          pc: c00000000004a380: .handle_eeh_events+0xe0/0x23c
          lr: c00000000004a374: .handle_eeh_events+0xd4/0x23c
          sp: c00000005192be60
         msr: 9000000000009032
         dar: 268
       dsisr: 40000000
        current = 0xc0000001fe7bf1a0
        paca    = 0xc00000000048b280
          pid   = 16322, comm = eehd
      enter ? for help
      [c00000005192bf00] c00000000004a808 .eeh_event_handler+0xcc/0x130
      [c00000005192bf90] c000000000025e00 .kernel_thread+0x4c/0x68
      
      ...
      
      (none):/# /usr/sbin/ethtool -i eth0
      driver: e100
      version: 3.5.10-k2-NAPI
      firmware-version: N/A
      bus-info: 0000:21:01.0
      (none):/# /usr/sbin/ethtool -t eth0
      Call Trace:
      [C00000000F8DEFF0] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
      [C00000000F8DF0A0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
      [C00000000F8DF150] [C000000000049E58] .eeh_check_failure+0x10c/0x138
      [C00000000F8DF1E0] [C0000000002DFDB0] .e100_hw_reset+0x70/0xf4
      [C00000000F8DF270] [C0000000002E1BBC] .e100_hw_init+0x2c/0x260
      [C00000000F8DF310] [C0000000002E2464] .e100_loopback_test+0x8c/0x220
      [C00000000F8DF3C0] [C0000000002E28DC] .e100_diag_test+0xdc/0x16c
      [C00000000F8DF490] [C000000000420BE0] .dev_ethtool+0xf24/0x14f8
      [C00000000F8DF8F0] [C00000000041F4A8] .dev_ioctl+0x5cc/0x740
      [C00000000F8DFA20] [C00000000040FEFC] .sock_ioctl+0x3d0/0x404
      [C00000000F8DFAC0] [C0000000000D513C] .do_ioctl+0x68/0x108
      [C00000000F8DFB50] [C0000000000D56B0] .vfs_ioctl+0x4d4/0x510
      [C00000000F8DFC10] [C0000000000D5740] .sys_ioctl+0x54/0x94
      [C00000000F8DFCC0] [C0000000000FB6EC] .ethtool_ioctl+0x11c/0x150
      [C00000000F8DFD60] [C0000000000F7E40] .compat_sys_ioctl+0x338/0x3bc
      [C00000000F8DFE30] [C00000000000871C] syscall_exit+0x0/0x40
      EEH: Detected PCI bus error on device 0000:21:01.0
      EEH: This PCI device has failed 1 times since last reboot: <NULL> -
      
      modprobe: FATAL: Could not load /lib/modules/2.6.16-rc4-git7/modules.dep: No such file or directory
      
      Cannot get strings: No such device
      (none):/#
      (none):/# EEH: Unable to configure device bridge (-3) for /pci@400000000110/pci@2,2
      
      (none):/# Call Trace:
      [C00000000FA17940] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
      [C00000000FA179F0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
      [C00000000FA17AA0] [C00000000001E114] .rtas_read_config+0x120/0x154
      [C00000000FA17B40] [C000000000049664] .early_enable_eeh+0x274/0x2bc
      [C00000000FA17C00] [C000000000049708] .eeh_add_device_early+0x5c/0x6c
      [C00000000FA17C90] [C000000000049748] .eeh_add_device_tree_early+0x30/0x5c
      [C00000000FA17D20] [C000000000046568] .pcibios_add_pci_devices+0x8c/0x1f8
      [C00000000FA17DD0] [C00000000004A528] .eeh_reset_device+0xe0/0x110
      [C00000000FA17E60] [C00000000004A698] .handle_eeh_events+0x140/0x250
      [C00000000FA17F00] [C00000000004AC7C] .eeh_event_handler+0xe8/0x140
      [C00000000FA17F90] [C000000000025784] .kernel_thread+0x4c/0x68
      EEH: Detected PCI bus error on device <NULL>
      EEH: This PCI device has failed 1 times since last reboot: <NULL> -
      EEH: Unable to configure device bridge (-3) for /pci@400000000110/pci@2,2
      Call Trace:
      [C00000000FA17940] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
      [C00000000FA179F0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
      [C00000000FA17AA0] [C00000000001E114] .rtas_read_config+0x120/0x154
      [C00000000FA17B40] [C000000000049664] .early_enable_eeh+0x274/0x2bc
      [C00000000FA17C00] [C000000000049708] .eeh_add_device_early+0x5c/0x6c
      [C00000000FA17C90] [C000000000049748] .eeh_add_device_tree_early+0x30/0x5c
      [C00000000FA17D20] [C000000000046568] .pcibios_add_pci_devices+0x8c/0x1f8
      [C00000000FA17DD0] [C00000000004A528] .eeh_reset_device+0xe0/0x110
      [C00000000FA17E60] [C00000000004A698] .handle_eeh_events+0x140/0x250
      [C00000000FA17F00] [C00000000004AC7C] .eeh_event_handler+0xe8/0x140
      [C00000000FA17F90] [C000000000025784] .kernel_thread+0x4c/0x68
      EEH: Detected PCI bus error on device <NULL>
      EEH: This PCI device has failed 1 times since last reboot: <NULL> -
      EEH: Unable to configure device bridge (-3) for /pci@400000000110/pci@2,2
      Call Trace:
      [C00000000FA17940] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
      [C00000000FA179F0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
      [C00000000FA17AA0] [C00000000001E114] .rtas_read_config+0x120/0x154
      [C00000000FA17B40] [C000000000049664] .early_enable_eeh+0x274/0x2bc
      [C00000000FA17C00] [C000000000049708] .eeh_add_device_early+0x5c/0x6c
      [C00000000FA17C90] [C000000000049748] .eeh_add_device_tree_early+0x30/0x5c
      [C00000000FA17D20] [C000000000046568] .pcibios_add_pci_devices+0x8c/0x1f8
      [C00000000FA17DD0] [C00000000004A528] .eeh_reset_device+0xe0/0x110
      [C00000000FA17E60] [C00000000004A698] .handle_eeh_events+0x140/0x250
      [C00000000FA17F00] [C00000000004AC7C] .eeh_event_handler+0xe8/0x140
      [C00000000FA17F90] [C000000000025784] .kernel_thread+0x4c/0x68
      EEH: Detected PCI bus error on device <NULL>
      and so on
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Acked-by: NLinas Vepstas <linas@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      273d2803
    • B
      [PATCH] powerpc: vdso 64bits gettimeofday bug · 634473db
      Benjamin Herrenschmidt 提交于
      A bug in the assembly code of the vdso can cause gettimeofday() to hang
      or to return incorrect results. The wrong register was used to test for
      pending updates of the calibration variables and to create a dependency
      for subsequent loads. This fixes it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      634473db
    • J
      [PATCH] powerpc: fix dynamic PCI probe regression · 827c1a6c
      John Rose 提交于
      Some hotplug driver functions were migrated to the kernel for use by EEH
      in commit 2bf6a8fa.
      
      Previously, the PCI Hotplug module had been changed to use the new
      OFDT-based PCI probe when appropriate:
      5fa80fcd
      
      When rpaphp_pci_config_slot() was moved from the rpaphp driver to the
      new kernel function pcibios_add_pci_devices(), the OFDT-based probe
      stuff was dropped.  This patch restores it.
      Signed-off-by: NJohn Rose <johnrose@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      827c1a6c
    • L
      Revert "[PATCH] x86_64: Only do the clustered systems have unsynchronized TSC... · 637029c6
      Linus Torvalds 提交于
      Revert "[PATCH] x86_64: Only do the clustered systems have unsynchronized TSC assumption on IBM systems"
      
      This reverts commit 13a229ab.
      
      Quoth Andi:
        "After some consideration and feedback from various people it turns
         out this wasn't that good an idea.  It has some problems and needs
         more work.  Since it was only an optimization anyways it's best to
         just back it out again for now."
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      637029c6
    • T
      [IA64] refresh default config files · 9fe26a74
      Tony Luck 提交于
      Bring all ia64 config files up to date
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      9fe26a74
    • T
      [IA64] die_if_kernel() can return · e963701a
      Tony Luck 提交于
      arch/ia64/kernel/unaligned.c erroneously marked die_if_kernel()
      with a "noreturn" attribute ... which is silly (it returns whenever
      the argument regs say that the fault happened in user mode, as one
      might expect given the "if_kernel" part of its name!).  Thanks to
      Alan and Gareth for pointing this out.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      e963701a
    • C
      [IA64-SGI] revert export sn_pcidev_info_get · eb0911e2
      Christoph Hellwig 提交于
      Christoph Hellwig <hch@infradead.org> pointed that there are no
      in-tree uses of this.  So revert 9c65cb9bSigned-off-by: NTony Luck <tony.luck@intel.com>
      eb0911e2
    • M
      [IA64] Fix pcibios_setup · ac311ac2
      Matthew Wilcox 提交于
      pcibios_setup() should return NULL if it handled a parameter.  Since ia64
      handles no parameters, it should return the string that was passed in,
      not NULL.  This brings ia64 into line with all other architectures that
      handle no parameters.
      Signed-off-by: NMatthew Wilcox <matthew@wil.cx>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      ac311ac2
    • Z
      [IA64] Delete a redundant instruction in unaligned_access · 5d1a88af
      Zhang, Yanmin 提交于
      unaligned_access does fetch cr.ipsr, then calls
      dispatch_unaligned_handler, but dispatch_unaligned_handler fetches
      cr.ipsr again, so delete the first one.
      Signed-off-by: NZhang Yanmin <yanmin.zhang@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      5d1a88af