1. 03 2月, 2007 2 次提交
  2. 27 1月, 2007 1 次提交
  3. 24 1月, 2007 1 次提交
  4. 12 1月, 2007 1 次提交
    • A
      [PATCH] FD_ZERO build fix · aae7d14f
      Andrew Morton 提交于
      unionfs managed to hit this on s390.  Some architectures use __ptr_t in their
      FD_ZERO implementation.  We don't have a __ptr_t.  Switch them over to plain
      old void*.
      
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      aae7d14f
  5. 14 12月, 2006 3 次提交
    • T
      [IA64] Move sg_dma_{len,address} from pci.h to scatterlist.h · 7806ca89
      Tony Luck 提交于
      IA64 is in a tiny minority providing these defines in pci.h.
      Almost everyone else has them in scatterlist.h
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      7806ca89
    • R
      [PATCH] Optimize D-cache alias handling on fork · ec8c0446
      Ralf Baechle 提交于
      Virtually index, physically tagged cache architectures can get away
      without cache flushing when forking.  This patch adds a new cache
      flushing function flush_cache_dup_mm(struct mm_struct *) which for the
      moment I've implemented to do the same thing on all architectures
      except on MIPS where it's a no-op.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ec8c0446
    • R
      [PATCH] PM: Fix SMP races in the freezer · 8a102eed
      Rafael J. Wysocki 提交于
      Currently, to tell a task that it should go to the refrigerator, we set the
      PF_FREEZE flag for it and send a fake signal to it.  Unfortunately there
      are two SMP-related problems with this approach.  First, a task running on
      another CPU may be updating its flags while the freezer attempts to set
      PF_FREEZE for it and this may leave the task's flags in an inconsistent
      state.  Second, there is a potential race between freeze_process() and
      refrigerator() in which freeze_process() running on one CPU is reading a
      task's PF_FREEZE flag while refrigerator() running on another CPU has just
      set PF_FROZEN for the same task and attempts to reset PF_FREEZE for it.  If
      the refrigerator wins the race, freeze_process() will state that PF_FREEZE
      hasn't been set for the task and will set it unnecessarily, so the task
      will go to the refrigerator once again after it's been thawed.
      
      To solve first of these problems we need to stop using PF_FREEZE to tell
      tasks that they should go to the refrigerator.  Instead, we can introduce a
      special TIF_*** flag and use it for this purpose, since it is allowed to
      change the other tasks' TIF_*** flags and there are special calls for it.
      
      To avoid the freeze_process()-refrigerator() race we can make
      freeze_process() to always check the task's PF_FROZEN flag after it's read
      its "freeze" flag.  We should also make sure that refrigerator() will
      always reset the task's "freeze" flag after it's set PF_FROZEN for it.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8a102eed
  6. 13 12月, 2006 2 次提交
    • T
      [IA64] enable trap code on slot 1 · 08ed38b6
      Tony Luck 提交于
      Because slot 1 of one instr bundle crosses border of two consecutive
      8-bytes, kprobe on slot 1 is disabled. This patch enables kprobe on
      slot1, it only replaces higher 8-bytes of the instruction bundle and
      changes the exception code to ignore the low 12 bits of the break
      number (which is across the border in the lower 8-bytes of the bundle).
      
      For those instructions which must execute regardless qp bits,
      kprobe on slot 1 is still disabled.
      Signed-off-by: Nbibo,mao <bibo.mao@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      08ed38b6
    • D
      [IA64] fix possible XPC deadlock when disconnecting · a460ef8d
      Dean Nelson 提交于
      This patch eliminates a potential deadlock that is possible when XPC
      disconnects a channel to a partition that has gone down. This deadlock will
      occur if at least one of the kthreads created by XPC for the purpose of making
      callouts to the channel's registerer is detained in the registerer and will
      not be returning back to XPC until some registerer request occurs on the now
      downed partition. The potential for a deadlock is removed by ensuring that
      there always is a kthread available to make the channel disconnecting callout
      to the registerer.
      Signed-off-by: NDean Nelson <dcn@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a460ef8d
  7. 11 12月, 2006 1 次提交
  8. 09 12月, 2006 1 次提交
    • A
      [PATCH] tty: preparatory structures for termios revamp · be90038a
      Alan Cox 提交于
      In order to sort out our struct termios and add proper speed control we need
      to separate the kernel and user termios structures.  Glibc is fine but the
      other libraries rely on the kernel exported struct termios and we need to
      extend this without breaking the ABI/API
      
      To do so we add a struct ktermios which is the kernel view of a termios
      structure and overlaps the struct termios with extra fields on the end for
      now.  (That limitation will go away in later patches).  Some platforms (eg
      alpha) planned ahead and thus use the same struct for both, others did not.
      
      This just adds the structures but does not use them, it seems a sensible
      splitting point for bisect if there are compile failures (not that I expect
      them)
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      be90038a
  9. 08 12月, 2006 12 次提交
  10. 03 12月, 2006 1 次提交
  11. 02 12月, 2006 4 次提交
    • B
      ACPI: Change ACPI to use dev_archdata instead of firmware_data · 465ae641
      Benjamin Herrenschmidt 提交于
      Change ACPI to use dev_archdata instead of firmware_data
      
      This patch changes ACPI to use the new dev_archdata on i386, x86_64
      and ia64 (is there any other arch using ACPI ?) to store it's
      acpi_handle.
      
      It also removes the firmware_data field from struct device as this
      was the only user.
      
      Only build-tested on x86
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      465ae641
    • B
      Driver core: add dev_archdata to struct device · c6dbaef2
      Benjamin Herrenschmidt 提交于
      Add arch specific dev_archdata to struct device
      
      Adds an arch specific struct dev_arch to struct device. This enables
      architecture to add specific fields to every device in the system, like
      DMA operation pointers, NUMA node ID, firmware specific data, etc...
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NAndi Kleen <ak@suse.de>
      Acked-By: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      c6dbaef2
    • J
      Altix: Add initial ACPI IO support · 8ea6091f
      John Keller 提交于
      First phase in introducing ACPI support to SN.
      In this phase, when running with an ACPI capable PROM,
      the DSDT will define the root busses and all SN nodes
      (SGIHUB, SGITIO). An ACPI bus driver will be registered
      for the node devices, with the acpi_pci_root_driver being
      used for the root busses. An ACPI vendor descriptor is
      now used to pass platform specific information for both
      nodes and busses, eliminating the need for the current
      SAL calls. Also, with ACPI support, SN fixup code is no longer
      needed to initiate the PCI bus scans, as the acpi_pci_root_driver
      does that.
      
      However, to maintain backward compatibility with non-ACPI capable
      PROMs, none of the current 'fixup' code can been deleted, though
      much restructuring has been done. For example, the bulk of the code
      in io_common.c is relocated code that is now common regardless
      of what PROM is running, while io_acpi_init.c and io_init.c contain
      routines specific to an ACPI or non ACPI capable PROM respectively.
      
      A new pci bus fixup platform vector has been created to provide
      a hook for invoking platform specific bus fixup from pcibios_fixup_bus().
      
      The size of io_space[] has been increased to support systems with
      large IO configurations.
      Signed-off-by: NJohn Keller <jpk@sgi.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      8ea6091f
    • M
      PCI: Use pci_generic_prep_mwi on ia64 · 3efe2d84
      Matthew Wilcox 提交于
      The pci_generic_prep_mwi() code does everything that pcibios_prep_mwi()
      does on ia64.  All we need to do is be sure that pci_cache_line_size
      is set appropriately, and we can delete pcibios_prep_mwi().
      
      Using SMP_CACHE_BYTES as the default was wrong on uniprocessor machines
      as it is only 8 bytes.  The default in the generic code of L1_CACHE_BYTES
      is at least as good.
      Signed-off-by: NMatthew Wilcox <matthew@wil.cx>
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3efe2d84
  12. 13 11月, 2006 1 次提交
    • J
      [PATCH] mspec driver build fix · 1a4b0fc5
      Jes Sorensen 提交于
      Fix MSPEC driver to build for non SN2 enabled configs as the driver should
      work in cached and uncached modes (no fetchop) on these systems.  In
      addition make MSPEC select IA64_UNCACHED_ALLOCATOR, which is required for
      it and move it to arch/ia64/Kconfig to avoid warnings on non ia64
      architectures running allmodconfig.  Once the Kconfig code is fixed, we can
      move it back.
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Cc: Fernando Luis Vzquez Cao <fernando@oss.ntt.co.jp>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1a4b0fc5
  13. 01 11月, 2006 1 次提交
    • T
      [IA64] move SAL_CACHE_FLUSH check later in boot · fa1d19e5
      Troy Heber 提交于
      The check to see if the firmware drops interrupts during a
      SAL_CACHE_FLUSH is done to early in the boot. SAL_CACHE_FLUSH expects
      to be able to make PAL calls in virtual mode, on some cell based
      machines a fault occurs causing a MCA. This patch moves the check
      after mmu_context_init so the TLB and VHPT are properly setup.
      
      Signed-off-by Troy Heber <troy.heber@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      fa1d19e5
  14. 27 10月, 2006 1 次提交
  15. 18 10月, 2006 2 次提交
    • B
      [IA64] remove unused PAL_CALL_IC_OFF · c12fb188
      Bjorn Helgaas 提交于
      Linux maps PAL instructions with an ITR, but uses a DTC for PAL data.
      Section 11.10.2.1.3, "Making PAL Procedures Calls in Physical or Virtual
      Mode," of the SDM (rev 2.2), says we must therefore make all PAL calls
      with PSR.ic = 1 so that Linux can handle any TLB faults.
      
      PAL_CALL_IC_OFF is currently unused, and as long as we use the ITR + DTC
      strategy, we can't use it.  So remove it.  I also removed the code in
      ia64_pal_call_static() that conditionally cleared PSR.ic.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      c12fb188
    • A
      [IA64] move ioremap/ioremap_nocache under __KERNEL__ · ffc45571
      Aron Griffis 提交于
      I noticed these are declared extern outside of __KERNEL__, but surely
      they wouldn't be available to userland since they're defined in
      ioremap.c.  Am I missing something here?
      
      If I'm right about this, then there's probably a good deal of other
      stuff in io.h that could move inside __KERNEL__, but at least this is
      a start.
      Signed-off-by: NAron Griffis <aron@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      ffc45571
  16. 11 10月, 2006 1 次提交
  17. 09 10月, 2006 1 次提交
  18. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  19. 04 10月, 2006 1 次提交
    • E
      [PATCH] msi: refactor and move the msi irq_chip into the arch code · 3b7d1921
      Eric W. Biederman 提交于
      It turns out msi_ops was simply not enough to abstract the architecture
      specific details of msi.  So I have moved the resposibility of constructing
      the struct irq_chip to the architectures, and have two architecture specific
      functions arch_setup_msi_irq, and arch_teardown_msi_irq.
      
      For simple architectures those functions can do all of the work.  For
      architectures with platform dependencies they can call into the appropriate
      platform code.
      
      With this msi.c is finally free of assuming you have an apic, and this
      actually takes less code.
      
      The helpers for the architecture specific code are declared in the linux/msi.h
      to keep them separate from the msi functions used by drivers in linux/pci.h
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Greg KH <greg@kroah.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3b7d1921
  20. 03 10月, 2006 1 次提交
  21. 02 10月, 2006 1 次提交
    • A
      [PATCH] rename the provided execve functions to kernel_execve · 3db03b4a
      Arnd Bergmann 提交于
      Some architectures provide an execve function that does not set errno, but
      instead returns the result code directly.  Rename these to kernel_execve to
      get the right semantics there.  Moreover, there is no reasone for any of these
      architectures to still provide __KERNEL_SYSCALLS__ or _syscallN macros, so
      remove these right away.
      
      [akpm@osdl.org: build fix]
      [bunk@stusta.de: build fix]
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Andi Kleen <ak@muc.de>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ian Molton <spyro@f2s.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Hirokazu Takata <takata.hirokazu@renesas.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
      Cc: Richard Curnow <rc@rc0.org.uk>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3db03b4a