1. 02 May, 2014 5 commits
    • David S. Miller's avatar
      Merge branch 'sparc32_generic_io_h' · bf656998
      David S. Miller authored
      Sam Ravnborg says:
      
      ====================
      sparc32: introduce asm-generic
      
      Inspired by Michal Simek <monstr@monstr.eu> this patch-set
      introduces asm-generic/io.h for sparc32.
      
      As the diff-stat tells this was a nice code-reduction.
      
      The changes are done on top of the previous sent sparse warning cleanup.
      But I do not expect any difficult conflicts if applied alone.
      
      leon_pci + pcic are touched because they had local
      and identical implementations of functiones that are
      static inline in asm-generic/io.h
      
      leon_pci_grpci1 + leon_pci_grpci2 are touched becuse they
      used a sparc spacific implmentation of swab32.
      They have just been changed to use the global variant.
      
      I also looked at sparc64 - but there were to many
      sparc64 assembler implementations of the io
      functons - and the generic io.h did not support this mix.
      
      The last patch kills a few defines in io.h for sbus.
      I assume they were introduced before the functions
      were all shifted over to __iomem style pointers.
      The same could be done for sparc64 - but then
      there were even more of the same so I left
      this for another time.
      
      The patch-set has been build tested only.
      My attempts to test this using qemu have failed as
      the qemu version I have errors out.
      And my fedora box are mssing some libs to build
      qemu from source :-(
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf656998
    • Sam Ravnborg's avatar
      sparc32: clean up io_32.h · c3373da9
      Sam Ravnborg authored
      After introducing asm-generic/io.h a few things could still be cleaned up
      o Drop useless macro indirection for sbus_* io access methods
        They were in the past used to hide casts between long and pointers
        but this is no longer so
      o Fix function definitions for sbus memory functions so
        return value appear on same line as function name
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c3373da9
    • Sam Ravnborg's avatar
      sparc32: introduce asm-generic/io.h · e1039fb4
      Sam Ravnborg authored
      Use asm-generic/io.h definitions where applicable.
      The inxx() and outxx() methods whcih was duplicated in pcic.c +
      leon_pci.c are replaced by a set of static inlins from asm-generic/io.h
      
      iomap.c is replaced by the generic versions, but are still
      present to support sparc64.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e1039fb4
    • Sam Ravnborg's avatar
      sparc32: replace flip_dword() with swab32() · 01c6505d
      Sam Ravnborg authored
      The latter is a generic implmentation.
      flip_{,d}word() is sparc32 specific and will be dropped.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      01c6505d
    • Sam Ravnborg's avatar
      sparc: move page_to_phys to page.h · c46064b4
      Sam Ravnborg authored
      Preparation for introducing asm-generic/io.h this move was required.
      In asm-generic page_to_phys is placed in page.h - so do the same here.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c46064b4
  2. 29 Apr, 2014 30 commits
    • David S. Miller's avatar
      Merge branch 'sparc32-sparse' · 8cf749a8
      David S. Miller authored
      Sam Ravnborg says:
      
      ====================
      sparse warning fixes in arch/sparc/
      
      The following patch-set address a lot of sparse warnings
      in the sparc32 specific parts of arch/sparc/.
      A few sparc64 bits are touched too when code are shared.
      
      Within arch/sparc/mm/ only two warnings remains.
      These are related to the return value of of_ioremap() which is __iomem.
      
      Within arch/sparc/kernel/ only three files now produces sparse warnings:
          sys_sparc_32.c
          time_32.c
          auxio_32.c
      
      The fixes was not obvious so the warnings was left for now.
      
      When looking at tadpole.c I was left with the impression that most
      of the code was actually unused - but for now I added a "TODO".
      
      This is made on top of 3.15-rc2.
      
      This set replaces the two sets sent the last days.
      V2:
      - Do not add extern in front of prototypes.
      - Tidy up a few changelongs
      
      There are still sparse warnings left that are easy to address.
      But this fixes the majority.
      ====================
      8cf749a8
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in leon_smp.c · 1bbc9060
      Sam Ravnborg authored
      Fix following warnings:
      leon_smp.c:133:6: warning: symbol 'leon_smp_setbroadcast' was not declared. Should it be static?
      leon_smp.c:151:14: warning: symbol 'leon_smp_getbroadcast' was not declared. Should it be static?
      leon_smp.c:269:6: warning: symbol 'leon_irq_rotate' was not declared. Should it be static?
      leon_smp.c:355:6: warning: symbol 'leonsmp_ipi_interrupt' was not declared. Should it be static?
      leon_smp.c:457:6: warning: symbol 'leon_cross_call_irq' was not declared. Should it be static?
      
      Add static.
      Remove unused functions.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1bbc9060
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in sun4d_smp.c · 65199b0a
      Sam Ravnborg authored
      Fix following warnings:
      sun4d_smp.c:113:13: warning: symbol 'smp4d_boot_cpus' was not declared. Should it be static?
      sun4d_smp.c:121:5: warning: symbol 'smp4d_boot_one_cpu' was not declared. Should it be static?
      sun4d_smp.c:162:13: warning: symbol 'smp4d_smp_done' was not declared. Should it be static?
      sun4d_smp.c:353:6: warning: symbol 'smp4d_cross_call_irq' was not declared. Should it be static?
      sun4d_smp.c:363:6: warning: symbol 'smp4d_percpu_timer_interrupt' was not declared. Should it be static?
      
      Add proper declarations
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      65199b0a
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in sun4m_smp.c · b8417de3
      Sam Ravnborg authored
      Fix following warnings:
      sun4m_smp.c:72:13: warning: symbol 'smp4m_boot_cpus' was not declared. Should it be static?
      sun4m_smp.c:78:5: warning: symbol 'smp4m_boot_one_cpu' was not declared. Should it be static?
      sun4m_smp.c:120:13: warning: symbol 'smp4m_smp_done' was not declared. Should it be static?
      sun4m_smp.c:230:6: warning: symbol 'smp4m_cross_call_irq' was not declared. Should it be static?
      sun4m_smp.c:240:6: warning: symbol 'smp4m_percpu_timer_interrupt' was not declared. Should it be static?
      
      Add proper declarations.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b8417de3
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in leon_pmc.c · 8b45c796
      Sam Ravnborg authored
      Fix following warnings:
      leon_pmc.c:15:14: warning: symbol 'pmc_leon_fixup_ids' was not declared. Should it be static?
      leon_pmc.c:22:5: warning: symbol 'pmc_leon_need_fixup' was not declared. Should it be static?
      leon_pmc.c:41:6: warning: symbol 'pmc_leon_idle_fixup' was not declared. Should it be static?
      leon_pmc.c:65:6: warning: symbol 'pmc_leon_idle' was not declared. Should it be static?
      
      Add static to definitions.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8b45c796
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in leon_kernel.c · 4007b65a
      Sam Ravnborg authored
      Fix following warnings:
      leon_kernel.c:40:15: warning: symbol 'leon3_gptimer_idx' was not declared. Should it be static?
      leon_kernel.c:68:6: warning: symbol 'leon_eirq_setup' was not declared. Should it be static?
      leon_kernel.c:273:13: warning: symbol 'leon_percpu_timer_ce_interrupt' was not declared. Should it be static?
      
      Define symbols as static.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4007b65a
    • Sam Ravnborg's avatar
      sparc: fix sparse warnings in of_device_common.c · 985edb5b
      Sam Ravnborg authored
      Fix following warnings (both sparc32 and sparc64):
      of_device_common.c:13:14: warning: symbol 'irq_of_parse_and_map' was not declared. Should it be static?
      of_device_common.c:24:5: warning: symbol 'of_address_to_resource' was not declared. Should it be static?
      of_device_common.c:37:14: warning: symbol 'of_iomap' was not declared. Should it be static?
      
      Add missing includes.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      985edb5b
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in unaligned_32.c · 9edfae3f
      Sam Ravnborg authored
      Fix following warnings:
      unaligned_32.c:146:15: warning: symbol 'safe_compute_effective_address' was not declared. Should it be static?
      unaligned_32.c:235:17: warning: symbol 'kernel_unaligned_trap' was not declared. Should it be static?
      unaligned_32.c:319:17: warning: symbol 'user_unaligned_trap' was not declared. Should it be static?
      
      Add proper declarations in kernel.h + setup.h
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9edfae3f
    • Sam Ravnborg's avatar
      sparc32: fix sparse warning in ptrace_32.c · c8c8782d
      Sam Ravnborg authored
      Fix following warning:
      ptrace_32.c:444:16: warning: symbol 'syscall_trace' was not declared. Should it be static?
      
      Add declaration in kernel.h
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c8c8782d
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in smp_32.c · c0b0ba84
      Sam Ravnborg authored
      Fix following warnings:
      smp_32.c:300:6: warning: symbol 'arch_cpu_pre_starting' was not declared. Should it be static?
      smp_32.c:320:6: warning: symbol 'arch_cpu_pre_online' was not declared. Should it be static?
      smp_32.c:347:6: warning: symbol 'sparc_start_secondary' was not declared. Should it be static?
      
      Add missing static definition.
      
      This left one warning:
         warning: symbol 'setup_profiling_timer' was not declared.
      
      This is a global symbol that has no declaration in any global header.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c0b0ba84
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in auxio_32.c · a3ee8faa
      Sam Ravnborg authored
      Fix following warnings:
      auxio_32.c:23:14: warning: symbol 'auxio_register' was not declared. Should it be static?
      auxio_32.c:26:13: warning: symbol 'auxio_probe' was not declared. Should it be static?
      auxio_32.c:108:13: warning: symbol 'auxio_power_probe' was not declared. Should it be static?
      
      Add proper decalarations for the above.
      
      The leaves one sparse warning:
      auxio_32.c:130:33: warning: cast removes address space of expression
      
      This is here:
          auxio_power_register = (unsigned char *) of_ioremap()
      
      This is __iomem that is removed from return value of of_ioremap()
      The pointer is later used without any helpers in process_32.c:
          *auxio_power_register |= AUXIO_POWER_OFF;
      
      It would be simple to introduce a few sbus() helpers.
      But as I was not sure this was correct the warning are left as-is.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a3ee8faa
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in leon_pci_grpci2.c · 3731e199
      Sam Ravnborg authored
      Fix following warnings:
      leon_pci_grpci2.c:218:1: warning: symbol 'grpci2_dev_lock' was not declared. Should it be static?
      leon_pci_grpci2.c:219:20: warning: symbol 'grpci2priv' was not declared. Should it be static?
      leon_pci_grpci2.c:221:5: warning: symbol 'grpci2_map_irq' was not declared. Should it be static?
      leon_pci_grpci2.c:564:6: warning: symbol 'grpci2_hw_init' was not declared. Should it be
      static?
      
      + a lot of these:
      leon_pci_grpci2.c:252:9: warning: incorrect type in argument 1 (different address spaces)
      
      Declare the symbols static as they are only used in this file.
      Added missing __iomem annotations.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3731e199
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in leon_pci_grpci1.c · d65f0cd3
      Sam Ravnborg authored
      Fix following warnings:
      leon_pci_grpci1.c:104:5: warning: symbol 'grpci1_map_irq' was not declared. Should it be static?
      leon_pci_grpci1.c:420:6: warning: symbol 'grpci1_hw_init' was not declared. Should it be static?
      + a lot of these:
      leon_pci_grpci1.c:693:18: warning: incorrect type in argument 1 (different address spaces)
      
      Added missing static to definitions.
      Added __iomem annotations
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d65f0cd3
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in tadpole.c · 6b5f02f3
      Sam Ravnborg authored
      Fix following warnings:
      tadpole.c:21:6: warning: symbol 'cpu_pwr_save' was not declared. Should it be static?
      tadpole.c:101:13: warning: symbol 'clock_stop_probe' was not declared. Should it be static?
      
      This actually revealed that cpu_pwr_save is only assigned.
      It was left static with a TODO comment for now - this should be cleaned up later.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b5f02f3
    • Sam Ravnborg's avatar
      sparc32: fix sparse warning in devices.c · 8885ec7c
      Sam Ravnborg authored
      Fix following warning:
      devices.c:114:13: warning: symbol 'device_scan' was not declared. Should it be static?
      
      Add prototype to asm/setup.h
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8885ec7c
    • Sam Ravnborg's avatar
      sparc: fix sparse warnings in cpu.c · fd250a66
      Sam Ravnborg authored
      Fix following sparc32 warning:
      cpu.c:430:29: warning: symbol 'cpuinfo_op' was not declared. Should it be static?
      
      Fix following sparc64 warnings:
      cpu.c:364:14: warning: symbol 'dcache_parity_tl1_occurred' was not declared. Should it be static?
      cpu.c:365:14: warning: symbol 'icache_parity_tl1_occurred' was not declared. Should it be static?
      
      Rearrange asm/cpu.h to share more stuff between sparc32 and sparc64.
      Added missing include to cpu.c of kernel.h
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fd250a66
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in windows.c · 7c8ee361
      Sam Ravnborg authored
      Fix following warnings:
      windows.c:16:6: warning: symbol 'flush_user_windows' was not declared. Should it be static?
      windows.c:109:6: warning: symbol 'try_to_clear_window_buffer' was not declared. Should it be static?
      
      Add missing include of cacheflush.h + add declaration of try_to_clear_window_buffer in kernel.h
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c8ee361
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in setup_32.c · d191723f
      Sam Ravnborg authored
      Fix following warnings:
      setup_32.c:106:15: warning: symbol 'cmdline_memory_size' was not declared. Should it be static?
      setup_32.c:270:16: warning: symbol 'fake_swapper_regs' was not declared. Should it be static?
      setup_32.c:368:55: warning: Using plain integer as NULL pointer
      
      Add missing declaration of cmdline_memory_size and remove the local one in init_32.c
      fake_swapper_regs was only used locally - so defined static.
      When replacing 0 with NULL also add a few spaces around operators
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d191723f
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in ioport.c · c31f7651
      Sam Ravnborg authored
      Fix following warnings:
      ioport.c:189:38: warning: Using plain integer as NULL pointer
      ioport.c:78:25: warning: symbol 'sparc_iomap' was not declared. Should it be static?
      ioport.c:403:20: warning: symbol 'sbus_dma_ops' was not declared. Should it be static?
      ioport.c:684:39: warning: Using plain integer as NULL pointer
      
      Add one missing prototype, and use NULL.
      sbus_dma_ops declared static.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c31f7651
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in signal_32.c · 529b17a9
      Sam Ravnborg authored
      Fix following warnings:
      signal_32.c:62:17: warning: symbol 'do_sigreturn' was not declared. Should it be static?
      signal_32.c:126:17: warning: symbol 'do_rt_sigreturn' was not declared. Should it be static?
      signal_32.c:344:39: warning: incorrect type in initializer (different address spaces)
      signal_32.c:344:39:    expected struct __siginfo_fpu_t [usertype] *fp
      signal_32.c:344:39:    got void [noderef] <asn:1>*[assigned] tail
      signal_32.c:346:45: warning: incorrect type in argument 2 (different address spaces)
      signal_32.c:346:45:    expected struct __siginfo_fpu_t [noderef] [usertype] <asn:1>*fpu
      signal_32.c:346:45:    got struct __siginfo_fpu_t [usertype] *fp
      signal_32.c:352:41: warning: incorrect type in initializer (different address spaces)
      signal_32.c:352:41:    expected struct __siginfo_rwin_t [usertype] *rwp
      signal_32.c:352:41:    got void [noderef] <asn:1>*[assigned] tail
      signal_32.c:354:48: warning: incorrect type in argument 2 (different address spaces)
      signal_32.c:354:48:    expected struct __siginfo_rwin_t [noderef] [usertype] <asn:1>*rwin
      signal_32.c:354:48:    got struct __siginfo_rwin_t [usertype] *rwp
      signal_32.c:509:6: warning: symbol 'do_notify_resume' was not declared. Should it be static?
      signal_32.c:520:16: warning: symbol 'do_sys_sigstack' was not declared. Should it be static?
      
      Add missing prototypes and annotate two variables with __user.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      529b17a9
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in process_32.h · 8bdd5a1b
      Sam Ravnborg authored
      Fix following warnings:
      process_32.c:67:6: warning: symbol 'arch_cpu_idle' was not declared. Should it be static?
      process_32.c:257:16: warning: symbol 'sparc_do_fork' was not declared. Should it be static?
      process_32.c:411:5: warning: symbol 'dump_fpu' was not declared. Should it be static?
      
      Add missing includes and add one missing prototype.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8bdd5a1b
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in irq_32.c · fbb86383
      Sam Ravnborg authored
      Fix following warnings:
      irq_32.c:239:5: warning: symbol 'sparc_floppy_request_irq' was not declared. Should it be static?
      irq_32.c:294:24: warning: symbol 'fdc_status' was not declared. Should it be static?
      irq_32.c:297:6: warning: symbol 'pdma_vaddr' was not declared. Should it be static?
      irq_32.c:300:15: warning: symbol 'pdma_size' was not declared. Should it be static?
      irq_32.c:303:14: warning: symbol 'doing_pdma' was not declared. Should it be static?
      irq_32.c:306:6: warning: symbol 'pdma_base' was not declared. Should it be static?
      irq_32.c:309:15: warning: symbol 'pdma_areasize' was not declared. Should it be static?
      irq_32.c:317:6: warning: symbol 'sparc_floppy_irq' was not declared. Should it be static?
      
      The floppy parts were all added to iasm/setup.h - no other header files looked obvious.
      floppy_32.h was not an option as this file can only be included once from the
      floppy driver.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fbb86383
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in sun4d_irq.c · 5ac75688
      Sam Ravnborg authored
      Fix following warnings:
      sun4d_irq.c:146:6: warning: symbol 'sun4d_handler_irq' was not declared. Should it be static?
      sun4d_irq.c:239:17: warning: symbol 'sun4d_irq' was not declared. Should it be static?
      sun4d_irq.c:288:14: warning: symbol '_sun4d_build_device_irq' was not declared. Should it be static?
      sun4d_irq.c:323:14: warning: symbol 'sun4d_build_device_irq' was not declared. Should it be static?
      sun4d_irq.c:386:14: warning: symbol 'sun4d_build_timer_irq' was not declared. Should it be static?
      sun4d_irq.c:482:13: warning: symbol 'sun4d_init_sbi_irq' was not declared. Should it be static?
      
      Apply static when applicable, otherwise add prototype
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ac75688
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in sun4m_irq.c and sun4d_irq.c · 2b399177
      Sam Ravnborg authored
      Fix following warnings:
      
      sun4m_irq.c:308:6: warning: symbol 'sun4m_nmi' was not declared. Should it be static?
      sun4m_irq.c:396:28: warning: incorrect type in assignment (different address spaces)
      sun4m_irq.c:396:28:    expected unsigned int volatile *extern [addressable] [toplevel] master_l10_counter
      sun4d_irq.c:469:28: warning: incorrect type in assignment (different address spaces)
      sun4d_irq.c:469:28:    expected unsigned int volatile *extern [addressable] [toplevel] master_l10_counter
      
      master_l10_counter is a pointer to __iomem - add annotations.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2b399177
    • Sam Ravnborg's avatar
      sparc32: fix sparse warning in traps_32.c · fcd0196b
      Sam Ravnborg authored
      Fix following warning:
      traps_32.c:47:6: error: symbol 'die_if_kernel' redeclared with different type - different modifiers
      
      Add __noreturn to both definition and declaration
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fcd0196b
    • Sam Ravnborg's avatar
      sparc32: fix sparse "Should it be static?" in mm/ · a2b0aa94
      Sam Ravnborg authored
      Fix following warnings:
      srmmu.c:870:13: warning: symbol 'srmmu_paging_init' was not declared. Should it be static?
      iommu.c:430:13: warning: symbol 'ld_mmu_iommu' was not declared. Should it be static?
      leon_mm.c:21:5: warning: symbol 'srmmu_swprobe_trace' was not declared. Should it be static?
      
      Add proper prototypes or define static to fix them.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2b0aa94
    • Sam Ravnborg's avatar
      sparc32: fix sparse warnings in srmmu.c · e8c29c83
      Sam Ravnborg authored
      Fix following warnings:
      srmmu.c:78:5: warning: symbol 'flush_page_for_dma_global' was not declared. Should it be static?
      srmmu.c:85:5: warning: symbol 'viking_mxcc_present' was not declared. Should it be static?
      srmmu.c:103:6: warning: symbol 'srmmu_nocache_bitmap' was not declared. Should it be static?
      srmmu.c:176:24: warning: Using plain integer as NULL pointer
      srmmu.c:731:46: warning: Using plain integer as NULL pointer
      srmmu.c:731:46: warning: Using plain integer as NULL pointer
      srmmu.c:731:46: warning: Using plain integer as NULL pointer
      srmmu.c:870:13: warning: symbol 'srmmu_paging_init' was not declared. Should it be static?
      
      Add proper prototypes in mm_32.h and drop local prototype in init_32.c
      Replace 0 with NULL
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e8c29c83
    • Sam Ravnborg's avatar
      sparc32: fix sparse warning in init_32.c · 4c9660f7
      Sam Ravnborg authored
      Fix following warning:
      init_32.c:112:22: warning: symbol 'bootmem_init' was not declared. Should it be static?
      
      Fix by adding a proper prototype in pgtable_32.h and drop
      the local prototype in srmmu.c
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4c9660f7
    • Sam Ravnborg's avatar
      sparc32: fix sparse warning in fault_32.c · e1b2f134
      Sam Ravnborg authored
      Fix following warning:
      fault_32.c:38:24: error: symbol 'unhandled_fault' redeclared with different type - different modifiers
      
      When this warning was fixed several new warnings popped up - fix them too.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e1b2f134
    • Sam Ravnborg's avatar
      sparc32: rename mm/srmmu.h to mm/mm_32.h · ddb7417e
      Sam Ravnborg authored
      This file will be used for more than just srmmu stuff, so the old name was misleading.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ddb7417e
  3. 28 Apr, 2014 5 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v3.15-rc2' of... · 2aafe1a4
      Linus Torvalds authored
      Merge tag 'trace-fixes-v3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull ftrace bugfix from Steven Rostedt:
       "Takao Indoh reported that he was able to cause a ftrace bug while
        loading a module and enabling function tracing at the same time.
      
        He uncovered a race where the module when loaded will convert the
        calls to mcount into nops, and expects the module's text to be RW.
        But when function tracing is enabled, it will convert all kernel text
        (core and module) from RO to RW to convert the nops to calls to ftrace
        to record the function.  After the convertion, it will convert all the
        text back from RW to RO.
      
        The issue is, it will also convert the module's text that is loading.
        If it converts it to RO before ftrace does its conversion, it will
        cause ftrace to fail and require a reboot to fix it again.
      
        This patch moves the ftrace module update that converts calls to
        mcount into nops to be done when the module state is still
        MODULE_STATE_UNFORMED.  This will ignore the module when the text is
        being converted from RW back to RO"
      
      * tag 'trace-fixes-v3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace/module: Hardcode ftrace_module_init() call into load_module()
      2aafe1a4
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · 87c7662b
      Linus Torvalds authored
      Pull devicetree bug fixes from Grant Likely:
       "These are some important bug fixes that need to get into v3.15.
      
        This branch contains a pair of important bug fixes for the DT code:
      
         - Fix some incorrect binding property names before they enter common
           usage
      
         - Fix bug where some platform devices will be unable to get their
           interrupt number when they depend on an interrupt controller that
           is not available at device creation time.  This is a problem
           causing mainline to fail on a number of ARM platforms"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        of/irq: do irq resolution in platform_get_irq
        of: selftest: add deferred probe interrupt test
        dt: Fix binding typos in clock-names and interrupt-names
      87c7662b
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 838b4c02
      Linus Torvalds authored
      Pull powerpc fixes from Ben Herrenschmidt:
       "Here is a bunch of post-merge window fixes that have been accumulating
        in patchwork while I was on vacation or buried under other stuff last
        week.
      
        We have the now usual batch of LE fixes from Anton (sadly some new
        stuff that went into this merge window had endian issues, we'll try to
        make sure we do better next time)
      
        Some fixes and cleanups to the new 24x7 performance monitoring stuff
        (mostly typos and cleaning up printk's)
      
        A series of fixes for an issue with our runlatch bit, which wasn't set
        properly for offlined threads/cores and under KVM, causing potentially
        some counters to misbehave along with possible power management
        issues.
      
        A fix for kexec nasty race where the new kernel wouldn't "see" the
        secondary processors having reached back into firmware in time.
      
        And finally a few other misc (and pretty simple) bug fixes"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (33 commits)
        powerpc/4xx: Fix section mismatch in ppc4xx_pci.c
        ppc/kvm: Clear the runlatch bit of a vcpu before napping
        ppc/kvm: Set the runlatch bit of a CPU just before starting guest
        ppc/powernv: Set the runlatch bits correctly for offline cpus
        powerpc/pseries: Protect remove_memory() with device hotplug lock
        powerpc: Fix error return in rtas_flash module init
        powerpc: Bump BOOT_COMMAND_LINE_SIZE to 2048
        powerpc: Bump COMMAND_LINE_SIZE to 2048
        powerpc: Rename duplicate COMMAND_LINE_SIZE define
        powerpc/perf/hv-24x7: Catalog version number is be64, not be32
        powerpc/perf/hv-24x7: Remove [static 4096], sparse chokes on it
        powerpc/perf/hv-24x7: Use (unsigned long) not (u32) values when calling plpar_hcall_norets()
        powerpc/perf/hv-gpci: Make device attr static
        powerpc/perf/hv_gpci: Probe failures use pr_debug(), and padding reduced
        powerpc/perf/hv_24x7: Probe errors changed to pr_debug(), padding fixed
        powerpc/mm: Fix tlbie to add AVAL fields for 64K pages
        powerpc/powernv: Fix little endian issues in OPAL dump code
        powerpc/powernv: Create OPAL sglist helper functions and fix endian issues
        powerpc/powernv: Fix little endian issues in OPAL error log code
        powerpc/powernv: Fix little endian issues with opal_do_notifier calls
        ...
      838b4c02
    • Linus Torvalds's avatar
      mm: don't pointlessly use BUG_ON() for sanity check · 50f5aa8a
      Linus Torvalds authored
      BUG_ON() is a big hammer, and should be used _only_ if there is some
      major corruption that you cannot possibly recover from, making it
      imperative that the current process (and possibly the whole machine) be
      terminated with extreme prejudice.
      
      The trivial sanity check in the vmacache code is *not* such a fatal
      error.  Recovering from it is absolutely trivial, and using BUG_ON()
      just makes it harder to debug for no actual advantage.
      
      To make matters worse, the placement of the BUG_ON() (only if the range
      check matched) actually makes it harder to hit the sanity check to begin
      with, so _if_ there is a bug (and we just got a report from Srivatsa
      Bhat that this can indeed trigger), it is harder to debug not just
      because the machine is possibly dead, but because we don't have better
      coverage.
      
      BUG_ON() must *die*.  Maybe we should add a checkpatch warning for it,
      because it is simply just about the worst thing you can ever do if you
      hit some "this cannot happen" situation.
      Reported-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Davidlohr Bueso <davidlohr@hp.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      50f5aa8a
    • Steven Rostedt (Red Hat)'s avatar
      ftrace/module: Hardcode ftrace_module_init() call into load_module() · a949ae56
      Steven Rostedt (Red Hat) authored
      A race exists between module loading and enabling of function tracer.
      
      	CPU 1				CPU 2
      	-----				-----
        load_module()
         module->state = MODULE_STATE_COMING
      
      				register_ftrace_function()
      				 mutex_lock(&ftrace_lock);
      				 ftrace_startup()
      				  update_ftrace_function();
      				   ftrace_arch_code_modify_prepare()
      				    set_all_module_text_rw();
      				   <enables-ftrace>
      				    ftrace_arch_code_modify_post_process()
      				     set_all_module_text_ro();
      
      				[ here all module text is set to RO,
      				  including the module that is
      				  loading!! ]
      
         blocking_notifier_call_chain(MODULE_STATE_COMING);
          ftrace_init_module()
      
           [ tries to modify code, but it's RO, and fails!
             ftrace_bug() is called]
      
      When this race happens, ftrace_bug() will produces a nasty warning and
      all of the function tracing features will be disabled until reboot.
      
      The simple solution is to treate module load the same way the core
      kernel is treated at boot. To hardcode the ftrace function modification
      of converting calls to mcount into nops. This is done in init/main.c
      there's no reason it could not be done in load_module(). This gives
      a better control of the changes and doesn't tie the state of the
      module to its notifiers as much. Ftrace is special, it needs to be
      treated as such.
      
      The reason this would work, is that the ftrace_module_init() would be
      called while the module is in MODULE_STATE_UNFORMED, which is ignored
      by the set_all_module_text_ro() call.
      
      Link: http://lkml.kernel.org/r/1395637826-3312-1-git-send-email-indou.takao@jp.fujitsu.comReported-by: default avatarTakao Indoh <indou.takao@jp.fujitsu.com>
      Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: stable@vger.kernel.org # 2.6.38+
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      a949ae56