1. 26 10月, 2006 9 次提交
  2. 25 10月, 2006 17 次提交
    • A
      [PATCH] uml: mconsole fixes · 3a51237d
      Al Viro 提交于
       * when we have stop/sysrq/go, we get pt_regs of whatever executes
         mc_work_proc().  Would be better to see what we had at the time of
         interrupt that got us stop.
      
       * stop/stop/stop.....  will give stack overflow.  Shouldn't allow stop
         from mconsole_stop().
      
       * stop/stop/go leaves us inside mconsole_stop() with
      	os_set_fd_block(req->originating_fd, 0);
      	reactivate_fd(req->originating_fd, MCONSOLE_IRQ);
         just done by nested mconsole_stop().  Ditto.
      
       * once we'd seen stop, there's a period when INTR commands are executed
         out of order (as they should; we might have the things stuck badly
         enough to never reach mconsole_stop(), but still not badly enough to
         block mconsole_interrupt(); in that situation we _want_ things like
         "cad" to be executed immediately).  Once we enter monsole_stop(), all
         INTR commands will be executed in order, mixed with PROC ones.  We'd
         better let user see that such change of behaviour has happened.
         (Suggested by lennert).
      
       * stack footprint of monsole_interrupt() is an atrocity; AFAICS we can
         safely make struct mc_request req; static in function there.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Acked-by: NJeff Dike <jdike@addtoit.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3a51237d
    • B
      [POWERPC] Fix CHRP platforms with only 8259 · f4d4c354
      Benjamin Herrenschmidt 提交于
      On CHRP platforms with only a 8259 controller, we should set the
      default IRQ host to the 8259 driver's one for the IRQ probing
      fallbacks to work in case the IRQ tree is incorrect (like on
      Pegasos for example). Without this fix, we get a bunch of WARN_ON's
      during boot.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f4d4c354
    • S
      [POWERPC] IPIC: Fix spinlock recursion in set_irq_handler · f49196a5
      Scott Wood 提交于
      This causes ipic_set_irq_type to set the handler directly rather
      than call set_irq_handler, which causes spinlock recursion because
      the lock is already held when ipic_set_irq_type is called.
      
      I'm also not convinced that ipic_set_irq_type should be changing the
      handler at all.  There seem to be several controllers that don't and
      several that do.  Those that do would break what appears to be a common
      usage of calling set_irq_chip_and_handler followed by set_irq_type, if a
      non-standard handler were to be used.  OTOH, irq_create_of_mapping()
      doesn't set the handler, but only calls set_irq_type().
      
      This patch gets things working in the spinlock-debugging-enabled case,
      but I'm curious as to where the handler setting is ideally supposed to be
      done.  I don't see any documentation on set_irq_type() that clarifies
      what the semantics are supposed to be.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f49196a5
    • L
      [POWERPC] Fix the UCC rx/tx clock of QE · f84c39da
      Liu Dave-r63238 提交于
      MPC8323EMDS board ethernet interface with RMII uses the CLK16 divisor
      for the rx and tx clock, but the ucc_set_qe_mux_rxtx() function doesn't
      handle the CLK16 setting of the CMXUCR3 and CMXUCR4 registers.  This
      fixes it.
      Signed-off-by: NDave Liu <daveliu@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f84c39da
    • A
      [POWERPC] cell: update defconfig · b910ecf6
      Arnd Bergmann 提交于
      ===================================================================
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b910ecf6
    • A
      [POWERPC] spufs: fix another off-by-one bug in spufs_mbox_read · 274cef5e
      Arnd Bergmann 提交于
      Currently, spufs_mbox_read transfers more bytes than requested on a
      read.  If you ask for four bytes, you get eight.  This fixes it to
      transfer the largest multiple of four bytes that is less than or equal
      to the number you asked for.
      
      Note: one nasty property of this file in spufs is that you can only
      read multiples of four bytes in the first place, since there is no way
      to atomically put back a few bytes into the hardware register.  Thus,
      reading less than four bytes returns -EINVAL.  Asking for more than
      four returns the largest possible multiple of four.
      Signed-off-by: NArnd Bergmann <arnd.bergmann@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      274cef5e
    • D
      [POWERPC] spufs: fix signal2 file to report signal2 · f6b301b8
      Dwayne Grant Mcconnell 提交于
      This fixes the /signal2 file to actually give signal2 data.
      Signed-off-by: NDwayne Grant Mcconnell <decimal@us.ibm.com>
      Signed-off-by: NArnd Bergmann <arnd.bergmann@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f6b301b8
    • B
      [POWERPC] Fix device_is_compatible() const warning · e2100efb
      Benjamin Herrenschmidt 提交于
      Fix a const'ification related warning with device_is_compatible()
      and friends related to get_property() not properly having const
      on it's input device node argument.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e2100efb
    • B
      [POWERPC] Cell timebase bug workaround · 859deea9
      Benjamin Herrenschmidt 提交于
      The Cell CPU timebase has an erratum. When reading the entire 64 bits
      of the timebase with one mftb instruction, there is a handful of cycles
      window during which one might read a value with the low order 32 bits
      already reset to 0x00000000 but the high order bits not yet incremeted
      by one. This fixes it by reading the timebase again until the low order
      32 bits is no longer 0. That might introduce occasional latencies if
      hitting mftb just at the wrong time, but no more than 70ns on a cell
      blade, and that was considered acceptable.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      859deea9
    • B
      [POWERPC] Support feature fixups in modules · 21c4ff80
      Benjamin Herrenschmidt 提交于
      This patch adds support for feature fixups in modules. This involves
      adding support for R_PPC64_REL64 relocs to the 64 bits module loader.
      It also modifies modpost.c to ignore the powerpc fixup sections (or it
      would warn when used in .init.text).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      21c4ff80
    • B
      [POWERPC] Support feature fixups in vdso's · 0909c8c2
      Benjamin Herrenschmidt 提交于
      This patch reworks the feature fixup mecanism so vdso's can be fixed up.
      The main issue was that the construct:
      
              .long   label  (or .llong on 64 bits)
      
      will not work in the case of a shared library like the vdso. It will
      generate an empty placeholder in the fixup table along with a reloc,
      which is not something we can deal with in the vdso.
      
      The idea here (thanks Alan Modra !) is to instead use something like:
      
      1:
              .long   label - 1b
      
      That is, the feature fixup tables no longer contain addresses of bits of
      code to patch, but offsets of such code from the fixup table entry
      itself. That is properly resolved by ld when building the .so's. I've
      modified the fixup mecanism generically to use that method for the rest
      of the kernel as well.
      
      Another trick is that the 32 bits vDSO included in the 64 bits kernel
      need to have a table in the 64 bits format. However, gas does not
      support 32 bits code with a statement of the form:
      
              .llong  label - 1b  (Or even just .llong label)
      
      That is, it cannot emit the right fixup/relocation for the linker to use
      to assign a 32 bits address to an .llong field. Thus, in the specific
      case of the 32 bits vdso built as part of the 64 bits kernel, we are
      using a modified macro that generates:
      
              .long   0xffffffff
              .llong  label - 1b
      
      Note that is assumes that the value is negative which is enforced by
      the .lds (those offsets are always negative as the .text is always
      before the fixup table and gas doesn't support emiting the reloc the
      other way around).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0909c8c2
    • B
      [POWERPC] Consolidate feature fixup code · 42c4aaad
      Benjamin Herrenschmidt 提交于
      There are currently two versions of the functions for applying the
      feature fixups, one for CPU features and one for firmware features. In
      addition, they are both in assembly and with separate implementations
      for 32 and 64 bits. identify_cpu() is also implemented in assembly and
      separately for 32 and 64 bits.
      
      This patch replaces them with a pair of C functions. The call sites are
      slightly moved on ppc64 as well to be called from C instead of from
      assembly, though it's a very small change, and thus shouldn't cause any
      problem.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      42c4aaad
    • O
      [POWERPC] Fix hang in start_ldr if _end or _edata is unaligned · fb20f65a
      Olaf Hering 提交于
      Quick fix for lack of memset(__bss_start, 0, _end-__bss_start) in
      load_kernel().  If edata is unaligned, the loop will overwrite all
      memory because r3 and r4 will never be equal.
      Signed-off-by: NOlaf Hering <olaf@aepfle.de>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      fb20f65a
    • E
      [PATCH] x86-64: Only look at per_cpu data for online cpus. · 70a0a535
      Eric W. Biederman 提交于
      When I generalized __assign_irq_vector I failed to pay attention
      to what happens when you access a per cpu data structure for
      a cpu that is not online.   It is an undefined case making any
      code that does it have undefined behavior as well.
      
      The code still needs to be able to allocate a vector across cpus
      that are not online to properly handle combinations like lowest
      priority interrupt delivery and cpu_hotplug.  Not that we can do
      that today but the infrastructure shouldn't prevent it.
      
      So this patch updates the places where we touch per cpu data
      to only touch online cpus, it makes cpu vector allocation
      an atomic operation with respect to cpu hotplug, and it updates
      the cpu start code to properly initialize vector_irq so we
      don't have inconsistencies.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      70a0a535
    • E
      [PATCH] x86-64: Simplify the vector allocator. · d1752aa8
      Eric W. Biederman 提交于
      There is no reason to remember a per cpu position of which vector
      to try.  Keeping a global position is simpler and more likely to
      result in a global vector allocation even if I don't need or require
      it.  For level triggered interrupts this means we are less likely to
      acknowledge another cpus irq, and cause the level triggered irq to
      harmlessly refire.
      
      This simplification makes it easier to only access data structures
      of  online cpus, by having fewer special cases to deal with.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      d1752aa8
    • R
      [ARM] Comment out missing configuration symbols · 52f0c673
      Russell King 提交于
      HAS_TOUCHSCREEN_ADS7843_LH7 and HAS_TOUCHSCREEN_ADC_LH7 are referenced
      but not defined in the LH7A40x configuration.  Comment them out to
      prevent them causing warnings.
      
      Marc Singer said:
      
         Feel free to remove the Kconfig lines.  I'll add it back with
         the rest of the config entries.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      52f0c673
    • R
      [ARM] Fix breakage in 7281c248 · cf610ca2
      Russell King 提交于
      A couple of missing semicolons.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      cf610ca2
  3. 23 10月, 2006 6 次提交
  4. 22 10月, 2006 8 次提交