1. 05 12月, 2008 1 次提交
  2. 04 12月, 2008 1 次提交
    • J
      sparc64: Fix VIS emulation bugs · 726c12f5
      Joseph Myers 提交于
      This patch fixes some bugs in VIS emulation that cause the GCC test
      failure
      
      FAIL: gcc.target/sparc/pdist-3.c execution test
      
      for both 32-bit and 64-bit testing on hardware lacking these
      instructions.  The emulation code for the pdist instruction uses
      RS1(insn) for both source registers rs1 and rs2, which is obviously
      wrong and leads to the instruction doing nothing (the observed
      problem), and further inspection of the code shows that RS1 uses a
      shift of 24 and RD a shift of 25, which clearly cannot both be right;
      examining SPARC documentation indicates the correct shift for RS1 is
      14.
      
      This patch fixes the bug if single-stepping over the affected
      instruction in the debugger, but not if the testcase is run
      standalone.  For that, Wind River has another patch I hope they will
      send as a followup to this patch submission.
      Signed-off-by: NJoseph Myers <joseph@codesourcery.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      726c12f5
  3. 03 12月, 2008 1 次提交
  4. 01 12月, 2008 4 次提交
  5. 20 11月, 2008 1 次提交
  6. 11 11月, 2008 1 次提交
  7. 02 11月, 2008 1 次提交
    • M
      sparc64: Fix PCI resource mapping on sparc64 · 5769907a
      Max Dmitrichenko 提交于
      There is a problem discovered in recent versions of ATI Mach64 driver
      in X.org on sparc64 architecture. In short, the driver fails to mmap
      MMIO aperture (PCI resource #2).
      
      I've found that kernel's __pci_mmap_make_offset() returns EINVAL. It
      checks whether user attempts to mmap more than the resource length,
      which is 0x1000 bytes in our case. But PAGE_SIZE on SPARC64 is 0x2000
      and this is what actually is being mmaped. So __pci_mmap_make_offset()
      failed for this PCI resource.
      Signed-off-by: NMax Dmitrichenko <dmitrmax@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5769907a
  8. 31 10月, 2008 1 次提交
  9. 30 10月, 2008 2 次提交
  10. 28 10月, 2008 1 次提交
  11. 23 10月, 2008 4 次提交
  12. 21 10月, 2008 1 次提交
  13. 20 10月, 2008 1 次提交
    • M
      container freezer: implement freezer cgroup subsystem · dc52ddc0
      Matt Helsley 提交于
      This patch implements a new freezer subsystem in the control groups
      framework.  It provides a way to stop and resume execution of all tasks in
      a cgroup by writing in the cgroup filesystem.
      
      The freezer subsystem in the container filesystem defines a file named
      freezer.state.  Writing "FROZEN" to the state file will freeze all tasks
      in the cgroup.  Subsequently writing "RUNNING" will unfreeze the tasks in
      the cgroup.  Reading will return the current state.
      
      * Examples of usage :
      
         # mkdir /containers/freezer
         # mount -t cgroup -ofreezer freezer  /containers
         # mkdir /containers/0
         # echo $some_pid > /containers/0/tasks
      
      to get status of the freezer subsystem :
      
         # cat /containers/0/freezer.state
         RUNNING
      
      to freeze all tasks in the container :
      
         # echo FROZEN > /containers/0/freezer.state
         # cat /containers/0/freezer.state
         FREEZING
         # cat /containers/0/freezer.state
         FROZEN
      
      to unfreeze all tasks in the container :
      
         # echo RUNNING > /containers/0/freezer.state
         # cat /containers/0/freezer.state
         RUNNING
      
      This is the basic mechanism which should do the right thing for user space
      task in a simple scenario.
      
      It's important to note that freezing can be incomplete.  In that case we
      return EBUSY.  This means that some tasks in the cgroup are busy doing
      something that prevents us from completely freezing the cgroup at this
      time.  After EBUSY, the cgroup will remain partially frozen -- reflected
      by freezer.state reporting "FREEZING" when read.  The state will remain
      "FREEZING" until one of these things happens:
      
      	1) Userspace cancels the freezing operation by writing "RUNNING" to
      		the freezer.state file
      	2) Userspace retries the freezing operation by writing "FROZEN" to
      		the freezer.state file (writing "FREEZING" is not legal
      		and returns EIO)
      	3) The tasks that blocked the cgroup from entering the "FROZEN"
      		state disappear from the cgroup's set of tasks.
      
      [akpm@linux-foundation.org: coding-style fixes]
      [akpm@linux-foundation.org: export thaw_process]
      Signed-off-by: NCedric Le Goater <clg@fr.ibm.com>
      Signed-off-by: NMatt Helsley <matthltc@us.ibm.com>
      Acked-by: NSerge E. Hallyn <serue@us.ibm.com>
      Tested-by: NMatt Helsley <matthltc@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dc52ddc0
  14. 17 10月, 2008 4 次提交
  15. 16 10月, 2008 2 次提交
  16. 13 10月, 2008 2 次提交
  17. 23 9月, 2008 1 次提交
  18. 21 9月, 2008 1 次提交
    • D
      sparc64: Fix disappearing PCI devices on e3500. · 7ee766d8
      David S. Miller 提交于
      Based upon a bug report by Meelis Roos.
      
      The OF device layer builds properties by matching bus types and
      applying 'range' properties as appropriate, up to the root.
      
      The match for "PCI" busses is looking at the 'device_type' property,
      and this does work %99 of the time.
      
      But on an E3500 system with a PCI QFE card, the DEC 21153 bridge
      sitting above the QFE network interface devices has a 'name' of "pci",
      but it completely lacks a 'device_type' property.  So we don't match
      it as a PCI bus, and subsequently we end up with no resource values at
      all for the devices sitting under that DEC bridge.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ee766d8
  19. 17 9月, 2008 2 次提交
  20. 13 9月, 2008 3 次提交
    • D
      sparc: Fix user_regset 'n' field values. · 7d4ee289
      David S. Miller 提交于
      As noticed by Russell King, we were not setting this properly
      to the number of entries, but rather the total size.
      
      This results in the core dumping code allocating waayyyy too
      much memory.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d4ee289
    • D
      sparc64: Fix PCI error interrupt registry on PSYCHO. · 80a56ab6
      David S. Miller 提交于
      We need to pass IRQF_SHARED, otherwise we get things like:
      
      IRQ handler type mismatch for IRQ 33
      current handler: PSYCHO_UE
      Call Trace:
       [000000000048394c] request_irq+0xac/0x120
       [00000000007c5f6c] psycho_scan_bus+0x98/0x158
       [00000000007c2bc0] pcibios_init+0xdc/0x12c
       [0000000000426a5c] do_one_initcall+0x1c/0x160
       [00000000007c0180] kernel_init+0x9c/0xfc
       [0000000000427050] kernel_thread+0x30/0x60
       [00000000006ae1d0] rest_init+0x10/0x60
      
      on e3500 and similar systems.
      
      On a single board, the UE interrupts of two Psycho nodes
      are funneled through the same interrupt, from of_debug=3
      dump:
      
      /pci@b,4000: direct translate 2ee --> 21
       ...
      /pci@b,2000: direct translate 2ee --> 21
      
      Decimal "33" mentioned above is the hex "21" mentioned here.
      
      Thanks to Meelis Roos for dumps and testing.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      80a56ab6
    • D
      sparc: Fix user_regset 'n' field values. · 3c503701
      David S. Miller 提交于
      As noticed by Russell King, we were not setting this properly
      to the number of entries, but rather the total size.
      
      This results in the core dumping code allocating waayyyy too
      much memory.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3c503701
  21. 12 9月, 2008 5 次提交