1. 29 4月, 2014 12 次提交
    • S
      sparc32: fix sparse warnings in tadpole.c · 6b5f02f3
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6b5f02f3
    • S
      sparc32: fix sparse warning in devices.c · 8885ec7c
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8885ec7c
    • S
      sparc: fix sparse warnings in cpu.c · fd250a66
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd250a66
    • S
      sparc32: fix sparse warnings in windows.c · 7c8ee361
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7c8ee361
    • S
      sparc32: fix sparse warnings in setup_32.c · d191723f
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d191723f
    • S
      sparc32: fix sparse warnings in ioport.c · c31f7651
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c31f7651
    • S
      sparc32: fix sparse warnings in signal_32.c · 529b17a9
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      529b17a9
    • S
      sparc32: fix sparse warnings in process_32.h · 8bdd5a1b
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8bdd5a1b
    • S
      sparc32: fix sparse warnings in irq_32.c · fbb86383
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fbb86383
    • S
      sparc32: fix sparse warnings in sun4d_irq.c · 5ac75688
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ac75688
    • S
      sparc32: fix sparse warnings in sun4m_irq.c and sun4d_irq.c · 2b399177
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2b399177
    • S
      sparc32: fix sparse warning in traps_32.c · fcd0196b
      Sam Ravnborg 提交于
      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: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fcd0196b
  2. 25 3月, 2014 1 次提交
  3. 20 3月, 2014 2 次提交
    • S
      sparc, sysfs: Fix CPU hotplug callback registration · 1e0b0c4c
      Srivatsa S. Bhat 提交于
      Subsystems that want to register CPU hotplug callbacks, as well as perform
      initialization for the CPUs that are already online, often do it as shown
      below:
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	put_online_cpus();
      
      This is wrong, since it is prone to ABBA deadlocks involving the
      cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
      with CPU hotplug operations).
      
      Instead, the correct and race-free way of performing the callback
      registration is:
      
      	cpu_notifier_register_begin();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	/* Note the use of the double underscored version of the API */
      	__register_cpu_notifier(&foobar_cpu_notifier);
      
      	cpu_notifier_register_done();
      
      Fix the sysfs code in sparc by using this latter form of callback
      registration.
      
      Cc: Ingo Molnar <mingo@kernel.org>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      1e0b0c4c
    • B
      sparc/PCI: Use default pcibios_enable_device() (Leon only) · f6baf35f
      Bjorn Helgaas 提交于
      We don't need anything arch-specific in pcibios_enable_device() so drop
      the arch implementation and use the default generic one.
      
      Note that sparc has two pcibios_enable_device() implementations other than
      the one removed here.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: Daniel Hellstrom <daniel@gaisler.com
      f6baf35f
  4. 19 3月, 2014 1 次提交
  5. 18 3月, 2014 1 次提交
  6. 11 3月, 2014 1 次提交
  7. 07 3月, 2014 2 次提交
  8. 05 3月, 2014 1 次提交
  9. 14 2月, 2014 1 次提交
    • P
      sparc: fix implicit include of slab.h in leon_pci_grpci2.c · d6250ee2
      Paul Gortmaker 提交于
      To fix:
      
      arch/sparc/kernel/leon_pci_grpci2.c: In function 'grpci2_of_probe':
      arch/sparc/kernel/leon_pci_grpci2.c:720:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
      arch/sparc/kernel/leon_pci_grpci2.c:720:20: error: assignment makes pointer from integer without a cast [-Werror]
      arch/sparc/kernel/leon_pci_grpci2.c:882:2: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
      cc1: all warnings being treated as errors
      make[2]: *** [arch/sparc/kernel/leon_pci_grpci2.o] Error 1
      
      According to Stephen, these types of failures are caused by commit
      2bd59d48 ("cgroup: convert to kernfs") which was being included
      implicitly via cgroup.h's inclusion of xattr.h (which has now been
      removed).
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      d6250ee2
  10. 13 2月, 2014 1 次提交
  11. 29 1月, 2014 3 次提交
  12. 05 1月, 2014 2 次提交
  13. 22 12月, 2013 1 次提交
    • Y
      PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev · fc279850
      Yinghai Lu 提交于
      These interfaces:
      
        pcibios_resource_to_bus(struct pci_dev *dev, *bus_region, *resource)
        pcibios_bus_to_resource(struct pci_dev *dev, *resource, *bus_region)
      
      took a pci_dev, but they really depend only on the pci_bus.  And we want to
      use them in resource allocation paths where we have the bus but not a
      device, so this patch converts them to take the pci_bus instead of the
      pci_dev:
      
        pcibios_resource_to_bus(struct pci_bus *bus, *bus_region, *resource)
        pcibios_bus_to_resource(struct pci_bus *bus, *resource, *bus_region)
      
      In fact, with standard PCI-PCI bridges, they only depend on the host
      bridge, because that's the only place address translation occurs, but
      we aren't going that far yet.
      
      [bhelgaas: changelog]
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      fc279850
  14. 12 12月, 2013 1 次提交
  15. 04 12月, 2013 1 次提交
  16. 15 11月, 2013 3 次提交
  17. 14 11月, 2013 1 次提交
  18. 13 11月, 2013 5 次提交
    • J
      mm/arch: use NUMA_NO_NODE · 40c3baa7
      Jianguo Wu 提交于
      Use more appropriate NUMA_NO_NODE instead of -1 in all archs' module_alloc()
      Signed-off-by: NJianguo Wu <wujianguo@huawei.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      40c3baa7
    • D
      sparc64: Move from 4MB to 8MB huge pages. · 37b3a8ff
      David S. Miller 提交于
      The impetus for this is that we would like to move to 64-bit PMDs and
      PGDs, but that would result in only supporting a 42-bit address space
      with the current page table layout.  It'd be nice to support at least
      43-bits.
      
      The reason we'd end up with only 42-bits after making PMDs and PGDs
      64-bit is that we only use half-page sized PTE tables in order to make
      PMDs line up to 4MB, the hardware huge page size we use.
      
      So what we do here is we make huge pages 8MB, and fabricate them using
      4MB hw TLB entries.
      
      Facilitate this by providing a "REAL_HPAGE_SHIFT" which is used in
      places that really need to operate on hardware 4MB pages.
      
      Use full pages (512 entries) for PTE tables, and adjust PMD_SHIFT,
      PGD_SHIFT, and the build time CPP test as needed.  Use a CPP test to
      make sure REAL_HPAGE_SHIFT and the _PAGE_SZHUGE_* we use match up.
      
      This makes the pgtable cache completely unused, so remove the code
      managing it and the state used in mm_context_t.  Now we have less
      spinlocks taken in the page table allocation path.
      
      The technique we use to fabricate the 8MB pages is to transfer bit 22
      from the missing virtual address into the PTEs physical address field.
      That takes care of the transparent huge pages case.
      
      For hugetlb, we fill things in at the PTE level and that code already
      puts the sub huge page physical bits into the PTEs, based upon the
      offset, so there is nothing special we need to do.  It all just works
      out.
      
      So, a small amount of complexity in the THP case, but this code is
      about to get much simpler when we move the 64-bit PMDs as we can move
      away from the fancy 32-bit huge PMD encoding and just put a real PTE
      value in there.
      
      With bug fixes and help from Bob Picco.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37b3a8ff
    • D
      sparc64: Make PAGE_OFFSET variable. · b2d43834
      David S. Miller 提交于
      Choose PAGE_OFFSET dynamically based upon cpu type.
      
      Original UltraSPARC-I (spitfire) chips only supported a 44-bit
      virtual address space.
      
      Newer chips (T4 and later) support 52-bit virtual addresses
      and up to 47-bits of physical memory space.
      
      Therefore we have to adjust PAGE_SIZE dynamically based upon
      the capabilities of the chip.
      
      Note that this change alone does not allow us to support > 43-bit
      physical memory, to do that we need to re-arrange our page table
      support.  The current encodings of the pmd_t and pgd_t pointers
      restricts us to "32 + 11" == 43 bits.
      
      This change can waste quite a bit of memory for the various tables.
      In particular, a future change should work to size and allocate
      kern_linear_bitmap[] and sparc64_valid_addr_bitmap[] dynamically.
      This isn't easy as we really cannot take a TLB miss when accessing
      kern_linear_bitmap[].  We'd have to lock it into the TLB or similar.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      b2d43834
    • D
      sparc64: Document the shift counts used to validate linear kernel addresses. · bb7b4353
      David S. Miller 提交于
      This way we can see exactly what they are derived from, and in particular
      how they would change if we were to use a different PAGE_OFFSET value.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      bb7b4353
    • D
      sparc64: Clean up 64-bit mmap exclusion defines. · c920745e
      David S. Miller 提交于
      Older UltraSPARC chips had an address space hole due to the MMU only
      supporting 44-bit virtual addresses.
      
      The top end of this hole also has the same value as the current
      definition of PAGE_OFFSET, so this can be confusing.
      
      Consolidate the defines for the userspace mmap exclusion range into
      page_64.h and use them in sys_sparc_64.c and hugetlbpage.c
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBob Picco <bob.picco@oracle.com>
      c920745e