1. 30 1月, 2009 1 次提交
  2. 05 12月, 2008 2 次提交
  3. 17 9月, 2008 1 次提交
    • D
      sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace. · 9843099f
      David S. Miller 提交于
      Based upon a report by Meelis Roos.
      
      Any function call can try to access the current
      thread register via the _mcount hooks when the kernel
      is built with -pg (via ftrace or STACK_DEBUG).
      
      That can't be setup properly very early on during
      the bootup of other cpus for sun4u and some early
      sun4v systems.
      
      So add notrace markers to these specific functions, so
      that _mcount doesn't get invoked too early.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9843099f
  4. 09 9月, 2008 1 次提交
  5. 29 8月, 2008 1 次提交
  6. 13 8月, 2008 1 次提交
  7. 05 8月, 2008 1 次提交
  8. 23 7月, 2008 1 次提交
    • D
      sparc64: Fix lockdep issues in LDC protocol layer. · b7c2a757
      David S. Miller 提交于
      We're calling request_irq() with a IRQs disabled.
      
      No straightforward fix exists because we want to
      enable these IRQs and setup state atomically before
      getting into the IRQ handler the first time.
      
      What happens now is that we mark the VIRQ to not be
      automatically enabled by request_irq().  Then we
      make explicit enable_irq() calls when we grab the
      LDC channel.
      
      This way we don't need to call request_irq() illegally
      under the LDC channel lock any more.
      
      Bump LDC version and release date.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b7c2a757
  9. 27 4月, 2008 1 次提交
    • D
      sparc64: Fix wedged irq regression. · 227c3311
      David S. Miller 提交于
      Kernel bugzilla 10273
      
      As reported by Jos van der Ende, ever since commit
      5a606b72 ("[SPARC64]: Do not ACK an
      INO if it is disabled or inprogress.") sun4u interrupts
      can get stuck.
      
      What this changset did was add the following conditional to
      the various IRQ chip ->enable() handlers on sparc64:
      
      	if (unlikely(desc->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
      		return;
      
      which is correct, however it means that special care is needed
      in the ->enable() method.
      
      Specifically we must put the interrupt into IDLE state during
      an enable, or else it might never be sent out again.
      
      Setting the INO interrupt state to IDLE resets the state machine,
      the interrupt input to the INO is retested by the hardware, and
      if an interrupt is being signalled by the device, the INO
      moves back into TRANSMIT state, and an interrupt vector is sent
      to the cpu.
      
      The two sun4v IRQ chip handlers were already doing this properly,
      only sun4u got it wrong.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      227c3311
  10. 26 3月, 2008 1 次提交
  11. 09 2月, 2008 1 次提交
  12. 22 10月, 2007 1 次提交
  13. 18 10月, 2007 1 次提交
  14. 14 10月, 2007 11 次提交
  15. 31 8月, 2007 2 次提交
    • D
      [SPARC64]: Fix several bugs in MSI handling. · 5f92c329
      David S. Miller 提交于
      1) sun4{u,v}_build_msi() have improper return value handling.
      
         We should always return negative error codes, instead of
         using the magic value "0" which could in fact be a valid
         MSI number.
      
      2) sun4{u,v}_build_msi() should return -ENOMEM instead of
         calling prom_prom() halt with kzalloc() of the interrupt
         data fails.
      
      3) We 'remembered' the MSI number using a singleton in the
         struct device archdata area, this doesn't work for MSI-X
         which can cause multiple MSIs assosciated with one device.
      
         Delete that archdata member, and instead store the MSI
         number in the IRQ chip data area.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f92c329
    • D
      [SPARC64]: Fix type and constant sizes wrt. sun4u IMAP/ICLR handling. · 6e69d606
      David S. Miller 提交于
      Sometimes we were using 32-bit values and the top bits were
      getting inadvertantly chopped off.  This will matter for the
      forthcoming Fire controller MSI support.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6e69d606
  16. 09 8月, 2007 1 次提交
  17. 21 7月, 2007 2 次提交
  18. 20 7月, 2007 1 次提交
  19. 16 7月, 2007 3 次提交
  20. 26 6月, 2007 2 次提交
  21. 13 6月, 2007 1 次提交
  22. 29 5月, 2007 1 次提交
  23. 07 5月, 2007 1 次提交
    • D
      [SPARC64]: SUN4U PCI-E controller support. · 861fe906
      David S. Miller 提交于
      Some minor refactoring in the generic code was necessary for
      this:
      
      1) This controller requires 8-byte access to the interrupt map
         and clear register.  They are 64-bits on all the other
         SBUS and PCI controllers anyways, so this was easy to cure.
      
      2) The IMAP register has a different layout and some bits that we
         need to preserve, so use a read/modify/write when making
         changes to the IMAP register in generic code.
      
      3) Flushing the entire IOMMU TLB is best done with a single write
         to a register on this PCI controller, add a iommu->iommu_flushinv
         for this.
      
      Still lacks MSI support, that will come later.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      861fe906
  24. 26 4月, 2007 1 次提交