1. 17 10月, 2007 10 次提交
  2. 15 10月, 2007 1 次提交
  3. 13 10月, 2007 10 次提交
    • K
      [IA64] Fix kernel hangup in kdump on INIT · 2010d7fe
      Kenji Kaneshige 提交于
      Fix the problem that kdump on INIT hung up if kdump kernel image is
      not configured.
      
      The kdump_init_notifier() on monarch CPU stops its operation at
      DIE_INIT_MONARCH_LEAVE time if the kdump kernel image is not
      configured. On the other hand, kdump_init_notifier() on non-monarch
      CPUs get into spin because they don't know the fact the monarch stops
      its operation. This is the cause of this problem. To fix this problem,
      we need to check the kdump kernel image at the top of the
      kdump_init_notifier() function.
      Signed-off-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      2010d7fe
    • K
      [IA64] Fix kernel panic in kdump on INIT · ac542a51
      Kenji Kaneshige 提交于
      Fix the problem that kdump on INIT causes a kernel panic if kdump
      kernel image is not configured. The cause of this problem is
      machine_kexec_on_init() is using printk in INIT context. It should
      use ia64_mca_printk() instead.
      Signed-off-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      ac542a51
    • S
      [IA64] Remove vector from ia64_machine_kexec() · a62c9fe4
      Simon Horman 提交于
      The use of vector in ia64_machine_kexec() seems spurious,
      and removing it simplifies the code slightly.
      
      As suggested by Alex Williamson <alex.williamson@hp.com>
      
      Cc: Alex Williamson <alex.williamson@hp.com>
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a62c9fe4
    • R
      [IA64] Fix race when multiple cpus go through MCA · e1b1eb01
      Russ Anderson 提交于
      Additional testing uncovered a situation where the MCA recovery code could
      hang due to a race condition.
      
      According to the SAL spec, SAL sends a rendezvous interrupt to all but the first
      CPU that goes into MCA.  This includes other CPUs that go into MCA at the same
      time.  Those other CPUs will go into the linux MCA handler (rather than the
      slave loop) with the rendezvous interrupt pending.  When all the CPUs have
      completed MCA processing and the last monarch completes, freeing all the CPUs,
      the CPUs with the pended rendezvous interrupt then go into the
      ia64_mca_rendez_int_handler().  In ia64_mca_rendez_int_handler() the CPUs
      get marked as rendezvoused, but then leave the handler (due to no MCA).
      That leaves the CPUs marked as rendezvoused _before_ the next MCA event.
      
      When the next MCA hits, the monarch will mistakenly believe that all the CPUs
      are rendezvoused when they are not, opening up a window where a CPU can get
      stuck in the slave loop.
      
      This patch avoids leaving CPUs marked as rendezvoused when they are not.
      Signed-off-by: NRuss Anderson <rja@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      e1b1eb01
    • R
      [IA64] Remove needless delay in MCA rendezvous · 2bc5c282
      Russ Anderson 提交于
      While testing the MCA recovery code, noticed that some machines would have a
      five second delay rendezvousing cpus.  What was happening is that
      ia64_wait_for_slaves() would check to see if all the slave CPUs had
      rendezvoused.  If any had not, it would wait 1 millisecond then check again.
      If any CPUs had still not rendezvoused, it would wait 5 seconds before
      checking again.
      
      On some configs the rendezvous takes more than 1 millisecond, causing the code
      to wait the full 5 seconds, even though the last CPU rendezvoused after only
      a few milliseconds.
      
      The fix is to check every 1 millisecond to see if all the cpus have
      rendezvoused.  After 5 seconds the code concludes the CPUs will never
      rendezvous (same as before).
      
      The MCA code is, by definition, not performance critical, but a needless
      delay of 5 seconds is senseless.  The 5 seconds also adds up quickly
      when running the error injection code in a loop.
      
      This patch both simplifies the code and removes the needless delay.
      Signed-off-by: NRuss Anderson <rja@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      2bc5c282
    • B
      [IA64] add driver for ACPI methods to call native firmware · 28eda5b8
      Bjorn Helgaas 提交于
      This driver for HPQ5001 devices installs a global ACPI OpRegion handler.
      AML methods can use this OpRegion to call native firmware entry points.
      
      ACPI does not define a mechanism for AML methods to call native firmware
      interfaces such as PAL or SAL.  This OpRegion handler adds such a mechanism.
      After the handler is installed, an AML method can call native firmware by
      storing the arguments and firmware entry point to specific offsets in the
      OpRegion.  When AML reads the "return value" offset from the OpRegion, this
      handler loads up the arguments, makes the firmware call, and returns the
      result.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      28eda5b8
    • K
      Driver core: change add_uevent_var to use a struct · 7eff2e7a
      Kay Sievers 提交于
      This changes the uevent buffer functions to use a struct instead of a
      long list of parameters. It does no longer require the caller to do the
      proper buffer termination and size accounting, which is currently wrong
      in some places. It fixes a known bug where parts of the uevent
      environment are overwritten because of wrong index calculations.
      
      Many thanks to Mathieu Desnoyers for finding bugs and improving the
      error handling.
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      7eff2e7a
    • S
      [IA64] perfmon: Remove exit_pfm_fs() · 8e75ad89
      Satyam Sharma 提交于
      Because it is dead code and not referenced by anybody else (that file cannot
      be built modular).
      Signed-off-by: NSatyam Sharma <satyam@infradead.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Stephane Eranian <eranian@hpl.hp.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      8e75ad89
    • S
      [IA64] tree-wide: Misc __cpu{initdata, init, exit} annotations · db6a5cef
      Satyam Sharma 提交于
      * palinfo.c:
      
      palinfo_cpu_notifier is a CPU hotplug notifier_block, and can be
      marked __cpuinitdata, and the callback function palinfo_cpu_callback()
      itself can be marked __cpuinit. create_palinfo_proc_entries() is only
      called from __cpuinit callback or general __init code, therefore a
      candidate for __cpuinit itself. remove_palinfo_proc_entries() is only
      called from __cpuinit callback or general __exit code, therefore a
      candidate for __cpuexit.
      
      * salinfo.c:
      
      The CPU hotplug notifier_block can be __cpuinitdata. The callback
      salinfo_cpu_callback() is incorrectly marked __devinit -- it must
      be __cpuinit instead.
      
      * topology.c:
      
      cache_sysfs_init() is only called at device_initcall() time so marking
      it as __cpuinit is wrong and wasteful. It should be unconditionally
      __init. Also cleanup reference to hotplug notifier callback function
      from this function and replace with cache_add_dev(), which could also
      enable us to use other tricks to replace __cpuinit{data} annotations,
      as recently discussed on this list.
      
      cache_shared_cpu_map_setup() is only ever called from __cpuinit-marked
      functions hence both its definitions (SMP or !SMP) are candidates for
      __cpuinit itself. Also all_cpu_cache_info can be __cpuinitdata because
      only referenced from __cpuinit code.
      Signed-off-by: NSatyam Sharma <satyam@infradead.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      db6a5cef
    • M
      [SCSI] simscsi: Free scsi host on error · a60ebc52
      Matthew Wilcox 提交于
      If scsi_add_host returned an error, the host would never be freed.
      We need to call scsi_host_put() if an error happens.
      Signed-off-by: NMatthew Wilcox <matthew@wil.cx>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      a60ebc52
  4. 11 10月, 2007 2 次提交
  5. 05 10月, 2007 1 次提交
  6. 11 9月, 2007 1 次提交
    • R
      Fix spurious syscall tracing after PTRACE_DETACH + PTRACE_ATTACH · 7d941432
      Roland McGrath 提交于
      When PTRACE_SYSCALL was used and then PTRACE_DETACH is used, the
      TIF_SYSCALL_TRACE flag is left set on the formerly-traced task.  This
      means that when a new tracer comes along and does PTRACE_ATTACH, it's
      possible he gets a syscall tracing stop even though he's never used
      PTRACE_SYSCALL.  This happens if the task was in the middle of a system
      call when the second PTRACE_ATTACH was done.  The symptom is an
      unexpected SIGTRAP when the tracer thinks that only SIGSTOP should have
      been provoked by his ptrace calls so far.
      
      A few machines already fixed this in ptrace_disable (i386, ia64, m68k).
      But all other machines do not, and still have this bug.  On x86_64, this
      constitutes a regression in IA32 compatibility support.
      
      Since all machines now use TIF_SYSCALL_TRACE for this, I put the
      clearing of TIF_SYSCALL_TRACE in the generic ptrace_detach code rather
      than adding it to every other machine's ptrace_disable.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7d941432
  7. 01 9月, 2007 5 次提交
  8. 31 8月, 2007 1 次提交
    • D
      hugepage: fix broken check for offset alignment in hugepage mappings · dec4ad86
      David Gibson 提交于
      For hugepage mappings, the file offset, like the address and size, needs to
      be aligned to the size of a hugepage.
      
      In commit 68589bc3, the check for this was
      moved into prepare_hugepage_range() along with the address and size checks.
       But since BenH's rework of the get_unmapped_area() paths leading up to
      commit 4b1d8929, prepare_hugepage_range()
      is only called for MAP_FIXED mappings, not for other mappings.  This means
      we're no longer ever checking for an aligned offset - I've confirmed that
      mmap() will (apparently) succeed with a misaligned offset on both powerpc
      and i386 at least.
      
      This patch restores the check, removing it from prepare_hugepage_range()
      and putting it back into hugetlbfs_file_mmap().  I'm putting it there,
      rather than in the get_unmapped_area() path so it only needs to go in one
      place, than separately in the half-dozen or so arch-specific
      implementations of hugetlb_get_unmapped_area().
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Cc: Adam Litke <agl@us.ibm.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dec4ad86
  9. 29 8月, 2007 2 次提交
  10. 18 8月, 2007 2 次提交
  11. 17 8月, 2007 1 次提交
    • A
      [IA64] Failure to grow RBS · e8c59c0c
      Andrew Burgess 提交于
      There is a bug in the ia64_do_page_fault code that can cause a failure
      to grow the register backing store, or any mapping that is marked as
      VM_GROWSUP if the mapping is the highest mapped area of memory.
      
      When the address accessed is below the first mapping the previous mapping
      is returned as NULL, and this case is handled.  However, when the address
      accessed is above the highest mapping the vma returned is NULL, this
      case is not handled correctly, and it fails to spot that this access
      might require an existing mapping to grow upwards.
      Signed-off-by: NAndrew Burgess <andrew@transitive.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      e8c59c0c
  12. 16 8月, 2007 1 次提交
  13. 14 8月, 2007 3 次提交