1. 02 May, 2008 5 commits
    • David S. Miller's avatar
      sparc32: More memory probing consolidation. · 9f2b2a5f
      David S. Miller authored
      The PROM library function prom_meminit() builds a table,
      prom_phys_avail[], just so that probe_memory() in
      arch/sparc/mm/fault.c can copy it into sp_banks[].
      
      Just have prom_meminit() fill in the sp_banks[] array directly, and
      remove duplicated sort() function.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9f2b2a5f
    • David S. Miller's avatar
      sparc32: Kill totally unused memory information tables. · ccc34028
      David S. Miller authored
      The code in arch/sparc/prom/memory.c computes three tables, the list
      of total memory, the list of available memory (total minus what
      firmware is using), and the list of firmware taken memory.
      
      Only the available memory list is even used.
      
      Therefore, kill those unused tables and make prom_meminfo() return
      just the available memory list.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccc34028
    • David S. Miller's avatar
      sparc64: Fix syscall restart, for real... · 2678fefe
      David S. Miller authored
      The change I put into copy_thread() just papered over the real
      problem.
      
      When we are looking to see if we should do a syscall restart, when
      deliverying a signal, we should only interpret the syscall return
      value as an error if the carry condition code(s) are set.
      
      Otherwise it's a success return.
      
      Also, sigreturn paths should do a pt_regs_clear_trap_type().
      
      It turns out that doing a syscall restart when returning from a fork()
      does and should happen, from time to time.  Even if copy_thread()
      returns success, copy_process() can still unwind and signal
      -ERESTARTNOINTR in the parent.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2678fefe
    • David S. Miller's avatar
      serial: Fix sparc driver name strings. · 32039f49
      David S. Miller authored
      They were all "serial" so if multiple of these drivers registered,
      we'd trigger sysfs directory creation errors:
      
      [    1.695793] proc_dir_entry 'serial' already registered
      [    1.695839] Call Trace:
      [    1.831891]  [00000000004f2534] create_proc_entry+0x7c/0x98
      [    1.833608]  [00000000004f3a58] proc_tty_register_driver+0x40/0x70
      [    1.833663]  [0000000000594700] tty_register_driver+0x1fc/0x208
      [    1.835371]  [00000000005aade4] uart_register_driver+0x134/0x16c
      [    1.841762]  [00000000005ac274] sunserial_register_minors+0x34/0x68
      [    1.841818]  [00000000007db2a4] sunsu_init+0xf8/0x150
      [    1.867697]  [00000000007c62a4] kernel_init+0x190/0x330
      [    1.939147]  [0000000000426cf8] kernel_thread+0x38/0x48
      [    1.939198]  [00000000006a0d90] rest_init+0x18/0x5c
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      32039f49
    • David S. Miller's avatar
      sparc64: Stop creating dummy root PCI host controller devices. · c26d3c01
      David S. Miller authored
      It just creates confusion, errors, and bugs.
      
      For one thing, this can cause dup sysfs or procfs nodes to get
      created:
      
      [    1.198015] proc_dir_entry '00.0' already registered
      [    1.198036] Call Trace:
      [    1.198052]  [00000000004f2534] create_proc_entry+0x7c/0x98
      [    1.198092]  [00000000005719e4] pci_proc_attach_device+0xa4/0xd4
      [    1.198126]  [00000000007d991c] pci_proc_init+0x64/0x88
      [    1.198158]  [00000000007c62a4] kernel_init+0x190/0x330
      [    1.198183]  [0000000000426cf8] kernel_thread+0x38/0x48
      [    1.198210]  [00000000006a0d90] rest_init+0x18/0x5c
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c26d3c01
  2. 01 May, 2008 35 commits