29 Apr, 2008

1 commit


28 Apr, 2008

4 commits

  • Huge ptes have a special type on s390 and cannot be handled with the standard
    pte functions in certain cases, e.g. because of a different location of the
    invalid bit. This patch adds some new architecture- specific functions to
    hugetlb common code, as a prerequisite for the s390 large page support.

    This won't affect other architectures in functionality, but I need to add some
    new dummy inline functions to the headers.

    Acked-by: Martin Schwidefsky
    Signed-off-by: Gerald Schaefer
    Cc: Paul Mundt
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     
  • A cow break on a hugetlbfs page with page_count > 1 will set a new pte with
    set_huge_pte_at(), w/o any tlb flush operation. The old pte will remain in
    the tlb and subsequent write access to the page will result in a page fault
    loop, for as long as it may take until the tlb is flushed from somewhere else.
    This patch introduces an architecture-specific huge_ptep_clear_flush()
    function, which is called before the the set_huge_pte_at() in hugetlb_cow().

    ATTENTION: This is just a nop on all architectures for now, the s390
    implementation will come with our large page patch later. Other architectures
    should define their own huge_ptep_clear_flush() if needed.

    Acked-by: Martin Schwidefsky
    Signed-off-by: Gerald Schaefer
    Cc: Paul Mundt
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     
  • This patch moves all architecture functions for hugetlb to architecture header
    files (include/asm-foo/hugetlb.h) and converts all macros to inline functions.
    It also removes (!) ARCH_HAS_HUGEPAGE_ONLY_RANGE,
    ARCH_HAS_HUGETLB_FREE_PGD_RANGE, ARCH_HAS_PREPARE_HUGEPAGE_RANGE,
    ARCH_HAS_SETCLEAR_HUGE_PTE and ARCH_HAS_HUGETLB_PREFAULT_HOOK.

    Getting rid of the ARCH_HAS_xxx #ifdef and macro fugliness should increase
    readability and maintainability, at the price of some code duplication. An
    asm-generic common part would have reduced the loc, but we would end up with
    new ARCH_HAS_xxx defines eventually.

    Acked-by: Martin Schwidefsky
    Signed-off-by: Gerald Schaefer
    Cc: Paul Mundt
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     
  • s390 for one, cannot implement VM_MIXEDMAP with pfn_valid, due to their memory
    model (which is more dynamic than most). Instead, they had proposed to
    implement it with an additional path through vm_normal_page(), using a bit in
    the pte to determine whether or not the page should be refcounted:

    vm_normal_page()
    {
    ...
    if (unlikely(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))) {
    if (vma->vm_flags & VM_MIXEDMAP) {
    #ifdef s390
    if (!mixedmap_refcount_pte(pte))
    return NULL;
    #else
    if (!pfn_valid(pfn))
    return NULL;
    #endif
    goto out;
    }
    ...
    }

    This is fine, however if we are allowed to use a bit in the pte to determine
    refcountedness, we can use that to _completely_ replace all the vma based
    schemes. So instead of adding more cases to the already complex vma-based
    scheme, we can have a clearly seperate and simple pte-based scheme (and get
    slightly better code generation in the process):

    vm_normal_page()
    {
    #ifdef s390
    if (!mixedmap_refcount_pte(pte))
    return NULL;
    return pte_page(pte);
    #else
    ...
    #endif
    }

    And finally, we may rather make this concept usable by any architecture rather
    than making it s390 only, so implement a new type of pte state for this.
    Unfortunately the old vma based code must stay, because some architectures may
    not be able to spare pte bits. This makes vm_normal_page a little bit more
    ugly than we would like, but the 2 cases are clearly seperate.

    So introduce a pte_special pte state, and use it in mm/memory.c. It is
    currently a noop for all architectures, so this doesn't actually result in any
    compiled code changes to mm/memory.o.

    BTW:
    I haven't put vm_normal_page() into arch code as-per an earlier suggestion.
    The reason is that, regardless of where vm_normal_page is actually
    implemented, the *abstraction* is still exactly the same. Also, while it
    depends on whether the architecture has pte_special or not, that is the
    only two possible cases, and it really isn't an arch specific function --
    the role of the arch code should be to provide primitive functions and
    accessors with which to build the core code; pte_special does that. We do
    not want architectures to know or care about vm_normal_page itself, and
    we definitely don't want them being able to invent something new there
    out of sight of mm/ code. If we made vm_normal_page an arch function, then
    we have to make vm_insert_mixed (next patch) an arch function too. So I
    don't think moving it to arch code fundamentally improves any abstractions,
    while it does practically make the code more difficult to follow, for both
    mm and arch developers, and easier to misuse.

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Nick Piggin
    Acked-by: Carsten Otte
    Cc: Jared Hulbert
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

27 Apr, 2008

3 commits

  • This functionality is definitely experimental, but is capable of running
    unmodified PowerPC 440 Linux kernels as guests on a PowerPC 440 host. (Only
    tested with 440EP "Bamboo" guests so far, but with appropriate userspace
    support other SoC/board combinations should work.)

    See Documentation/powerpc/kvm_440.txt for technical details.

    [stephen: build fix]

    Signed-off-by: Hollis Blanchard
    Acked-by: Paul Mackerras
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Avi Kivity

    Hollis Blanchard
     
  • PowerPC 440 KVM needs to know how many TLB entries are used for the host kernel
    linear mapping (it does not modify these mappings when switching between guest
    and host execution).

    Signed-off-by: Hollis Blanchard
    Acked-by: Josh Boyer
    Acked-by: Paul Mackerras
    Signed-off-by: Avi Kivity

    Hollis Blanchard
     
  • Implement __fls on all 64-bit archs:

    alpha has an implementation of fls64.
    Added __fls(x) = fls64(x) - 1.

    ia64 has fls, but not __fls.
    Added __fls based on code of fls.

    mips and powerpc have __ilog2, which is the same as __fls.
    Added __fls = __ilog2.

    parisc, s390, sh and sparc64:
    Include generic __fls.

    x86_64 already has __fls.

    Signed-off-by: Alexander van Heukelum
    Signed-off-by: Ingo Molnar

    Alexander van Heukelum
     

24 Apr, 2008

5 commits

  • This splits cell io-workaround code into spider-pci dependent code and
    a generic part, and also moves io-workarounds initialization into
    cell_setup_phb.

    Signed-off-by: Kou Ishizaki
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Ishizaki Kou
     
  • This adds the required functionality to fill in all pacas at runtime.

    With NR_CPUS=1024
    text data bss dec hex filename
    137 1704032 0 1704169 1a00e9 arch/powerpc/kernel/paca.o :Before
    121 1179744 524288 1704153 1a00d9 arch/powerpc/kernel/paca.o :After

    Also remove unneeded #includes from arch/powerpc/kernel/paca.c

    Signed-off-by: Tony Breeds
    Signed-off-by: Paul Mackerras

    Tony Breeds
     
  • The fixmap code from x86 allows us to have compile time virtual addresses
    that we change the physical addresses of at run time.

    This is useful for applications like kmap_atomic, PCI config that is done
    via direct memory map, kexec/kdump.

    We got ride of CONFIG_HIGHMEM_START as we can now determine a more optimal
    location for PKMAP_BASE based on where the fixmap addresses start and
    working back from there.

    Additionally, the kmap code in asm-powerpc/highmem.h always had debug
    enabled. Moved to using CONFIG_DEBUG_HIGHMEM to determine if we should
    have the extra debug checking.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • Added support to allow an 85xx kernel to be run from a non-zero physical
    address (useful for cooperative asymmetric multiprocessing situations and
    kdump). The support can be configured at compile time by setting
    CONFIG_PAGE_OFFSET, CONFIG_KERNEL_START, and CONFIG_PHYSICAL_START as
    desired.

    Alternatively, the kernel build can set CONFIG_RELOCATABLE. Setting this
    config option causes the kernel to determine at runtime the physical
    addresses of CONFIG_PAGE_OFFSET and CONFIG_KERNEL_START. If
    CONFIG_RELOCATABLE is set, then CONFIG_PHYSICAL_START has no meaning.
    However, CONFIG_PHYSICAL_START will always be used to set the LOAD program
    header physical address field in the resulting ELF image.

    Currently we are limited to running at a physical address that is a
    multiple of 256M. This is due to how we map TLBs to cover
    lowmem. This should be fixed to allow 64M or maybe even 16M alignment
    in the future. It is considered an error to try and run a kernel at a
    non-aligned physical address.

    All the magic for this support is accomplished by proper initialization
    of the kernel memory subsystem and use of ARCH_PFN_OFFSET.

    The use of ARCH_PFN_OFFSET only affects normal memory and not IO mappings.
    ioremap uses map_page and isn't affected by ARCH_PFN_OFFSET.

    /dev/mem continues to allow access to any physical address in the system
    regardless of how CONFIG_PHYSICAL_START is set.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • The powerpc kernel stacks need to be naturally aligned, as they
    contain the thread info at the bottom, which is obtained by
    clearing the low bits of the stack pointer.

    However, when using 64K pages, the stack is smaller than a page,
    so we use kmalloc to allocate it, but that doesn't provide the
    alignment guarantee we need.

    It appeared to work so far... until one enables SLUB debugging
    which then returns unaligned pointers. Ooops...

    This fixes it by using a slab cache with enforced alignment. It
    relies on my previous patch that adds a thread_info_cache_init()
    callback.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Andrew Morton
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

22 Apr, 2008

1 commit

  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (202 commits)
    [POWERPC] Fix compile breakage for 64-bit UP configs
    [POWERPC] Define copy_siginfo_from_user32
    [POWERPC] Add compat handler for PTRACE_GETSIGINFO
    [POWERPC] i2c: Fix build breakage introduced by OF helpers
    [POWERPC] Optimize fls64() on 64-bit processors
    [POWERPC] irqtrace support for 64-bit powerpc
    [POWERPC] Stacktrace support for lockdep
    [POWERPC] Move stackframe definitions to common header
    [POWERPC] Fix device-tree locking vs. interrupts
    [POWERPC] Make pci_bus_to_host()'s struct pci_bus * argument const
    [POWERPC] Remove unused __max_memory variable
    [POWERPC] Simplify xics direct/lpar irq_host setup
    [POWERPC] Use pseries_setup_i8259_cascade() in pseries_mpic_init_IRQ()
    [POWERPC] Turn xics_setup_8259_cascade() into a generic pseries_setup_i8259_cascade()
    [POWERPC] Move xics_setup_8259_cascade() into platforms/pseries/setup.c
    [POWERPC] Use asm-generic/bitops/find.h in bitops.h
    [POWERPC] 83xx: mpc8315 - fix USB UTMI Host setup
    [POWERPC] 85xx: Fix the size of qe muram for MPC8568E
    [POWERPC] 86xx: mpc86xx_hpcn - Temporarily accept old dts node identifier.
    [POWERPC] 86xx: mark functions static, other minor cleanups
    ...

    Linus Torvalds
     

20 Apr, 2008

2 commits

  • The rearrangements in 945feb174b14e7098cc7ecf0cf4768d35bc52f9c
    ("[POWERPC] irqtrace support for 64-bit powerpc") caused 64-bit
    non-SMP configs to fail to compile with a message about
    local_irq_save being undefined in include/linux/proportions.h.
    This follows the lead of x86 in including in
    asm/system.h, which fixes the problem.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • Create a simple macro to always return a pointer to the node_to_cpumask(node)
    value. This relies on compiler optimization to remove the extra indirection:

    #define node_to_cpumask_ptr(v, node) \
    cpumask_t _##v = node_to_cpumask(node), *v = &_##v

    For those systems with a large cpumask size, then a true pointer
    to the array element can be used:

    #define node_to_cpumask_ptr(v, node) \
    cpumask_t *v = &(node_to_cpumask_map[node])

    A node_to_cpumask_ptr_next() macro is provided to access another
    node_to_cpumask value.

    The other change is to always include asm-generic/topology.h moving the
    ifdef CONFIG_NUMA to this same file.

    Note: there are no references to either of these new macros in this patch,
    only the definition.

    Based on 2.6.25-rc5-mm1

    # alpha
    Cc: Richard Henderson

    # fujitsu
    Cc: David Howells

    # ia64
    Cc: Tony Luck

    # powerpc
    Cc: Paul Mackerras
    Cc: Anton Blanchard

    # sparc
    Cc: David S. Miller
    Cc: William L. Irwin

    # x86
    Cc: H. Peter Anvin

    Signed-off-by: Mike Travis
    Signed-off-by: Ingo Molnar

    Mike Travis
     

18 Apr, 2008

11 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (58 commits)
    ide: remove ide_init_default_irq() macro
    ide: move default IDE ports setup to ide_generic host driver
    ide: remove obsoleted "idex=noprobe" kernel parameter (take 2)
    ide: remove needless hwif->irq check from ide_hwif_configure()
    ide: init hwif->{io_ports,irq} explicitly in legacy VLB host drivers
    ide: limit legacy VLB host drivers to alpha, x86 and mips
    cmd640: init hwif->{io_ports,irq} explicitly
    cmd640: cleanup setup_device_ptrs()
    ide: add ide-4drives host driver (take 3)
    ide: remove ppc ifdef from init_ide_data()
    ide: remove ide_default_io_ctl() macro
    ide: remove CONFIG_IDE_ARCH_OBSOLETE_INIT
    ide: add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS (take 2)
    ppc/pmac: remove no longer needed IDE quirk
    ppc: don't include
    ppc: remove ppc_ide_md
    ppc/pplus: remove ppc_ide_md.ide_init_hwif hook
    ppc/sandpoint: remove ppc_ide_md hooks
    ppc/lopec: remove ppc_ide_md hooks
    ppc/mpc8xx: remove ppc_ide_md hooks
    ...

    Linus Torvalds
     
  • 64-bit powerpc processors can find the leftmost 1 bit in a 64-bit
    doubleword in one instruction, so use that rather than using the
    generic fls64(), which does two 32-bit fls() calls.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • This adds the low level irq tracing hooks to the powerpc architecture
    needed to enable full lockdep functionality.

    This is partly based on Johannes Berg's initial version. I removed
    the asm trampoline that isn't needed (thus improving performance) and
    modified all sorts of bits and pieces, reworking most of the assembly,
    etc...

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This moves various definitions used all over the place to parse stack
    frames to ptrace.h so only one definition is needed.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • A) It's not modified and so it can be made const. const is good.
    B) If one has a function that was given a const pci_bus pointer and you
    want to get a pointer to its pci_controller, you'll get a warning from gcc
    when you use pci_bus_to_host(). This is the right way to stop that
    warning.

    Signed-off-by: Trent Piepho
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Trent Piepho
     
  • Powerpc and ppc have some code in their bitops.h that is exactly the
    same as asm-generic/bitops/find.h. Include this header instead of the
    private implementation.

    Signed-off-by: Alexander van Heukelum
    Signed-off-by: Paul Mackerras

    Alexander van Heukelum
     
  • * Use ide_default_irq() instead of ide_init_default_irq() in
    ide_generic host driver (so the correct IRQ is always set
    regardless of CONFIG_PCI / CONFIG_BLK_DEV_IDEPCI).

    * Remove no longer needed ide_init_default_irq() macro.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • It is always == '((base) + 0x206)' if CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=y
    and it is not needed otherwise (arm, blackfin, parisc, ppc64, sh, sparc[64]).

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS to drivers/ide/Kconfig and use
    it instead of defining IDE_ARCH_OBSOLETE_DEFAULTS in .

    v2:
    * Define ide_default_irq() in ide-probe.c/ns87415.c if not already defined
    and drop defining ide_default_irq() for CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=n.

    [ Thanks to Stephen Rothwell and David Miller for noticing the problem. ]

    Cc: Stephen Rothwell
    Cc: David Miller
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • * Add special cases for pplus and prep to ide_default_{irq,io_base}()
    (+ FIXMEs about the need to use IDE platform host driver instead).

    * Remove no longer needed ppc_ide_md and struct ide_machdep_calls.

    * Then remove include from:
    - arch/powerpc/kernel/setup_32.c
    - arch/ppc/kernel/ppc_ksyms.c
    - arch/ppc/kernel/setup.c
    - arch/ppc/platforms/pplus.c
    - arch/ppc/platforms/prep_setup.c

    There should be no functional changes caused by this patch.

    Cc: Benjamin Herrenschmidt
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     
  • Rework PowerMac media-bay support in such way that instead of
    un/registering the IDE interface we un/register IDE devices:

    * Add ide_port_scan() helper for probing+registerering devices on a port.

    * Rename ide_port_unregister_devices() to __ide_port_unregister_devices().

    * Add ide_port_unregister_devices() helper for unregistering devices on a port.

    * Add 'ide_hwif_t *cd_port' to 'struct media_bay_info', pass 'hwif' instead
    of hwif->index to media_bay_set_ide_infos() and use it to setup 'cd_port'.

    * Use ide_port_unregister_devices() instead of ide_unregister()
    and ide_port_scan() instead of ide_register_hw() in media_bay_step().

    * Unexport ide_register_hw() and make it static.

    v2:
    * Fix build by adding include to .
    (Reported by Michael/Kamalesh/Andrew).

    Cc: Kamalesh Babulal
    Cc: Michael Ellerman
    Cc: Andrew Morton
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

17 Apr, 2008

13 commits

  • Semaphores are no longer performance-critical, so a generic C
    implementation is better for maintainability, debuggability and
    extensibility. Thanks to Peter Zijlstra for fixing the lockdep
    warning. Thanks to Harvey Harrison for pointing out that the
    unlikely() was unnecessary.

    Signed-off-by: Matthew Wilcox
    Acked-by: Ingo Molnar

    Matthew Wilcox
     
  • qe_get_brg_clk() will be used by the fsl_gtm routines.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • Headers should include prototypes they use, otherwise build will
    break if we use it without explicitly including io.h:

    CC arch/powerpc/sysdev/qe_lib/gtm.o
    In file included from include/asm/qe.h:20,
    from arch/powerpc/sysdev/qe_lib/gtm.c:18:
    include/asm/immap_qe.h: In function ‘immrbar_virt_to_phys’:
    include/asm/immap_qe.h:480: error: implicit declaration of function ‘virt_to_phys’
    make[2]: *** [arch/powerpc/sysdev/qe_lib/gtm.o] Error 1
    make[1]: *** [arch/powerpc/sysdev/qe_lib] Error 2

    gtm.c needs qe.h (which includes immap_qe.h) to use qe_get_brg_clk().

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • qe_muram_offset is the reverse of the qe_muram_addr, will be
    used for the Freescale QE USB Host Controller driver.

    This patch also moves qe_muram_addr into the qe.h header, plus
    adds __iomem hints to use with sparse.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • Freescale UPM can be used to adjust localbus timings or to generate
    orbitrary, pre-programmed "patterns" on the external Localbus signals.
    This patch implements few routines so drivers could work with UPMs in
    safe and generic manner.

    So far there is just one user of these routines: Freescale UPM NAND
    driver.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • This is needed to support other localbus peripherals, such as
    NAND on FSL UPM.

    Signed-off-by: David Woodhouse
    Signed-off-by: Anton Vorontsov
    Signed-off-by: Kumar Gala

    Anton Vorontsov
     
  • Signed-off-by: Laurent Pinchart
    Signed-off-by: Kumar Gala

    Laurent Pinchart
     
  • When we moved to arch/powerpc we actively tried to avoid using the
    ppc_md.setup_io_mappings(). Currently no board ports use it so let's
    remove it to avoid any new boards using it.

    Also, remove early_serial_map() since we don't even have a call out for
    it in arch/powerpc.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • This changes the way we calculate how much space to reserve for the
    pHyp dump. Currently we reserve 256MB only. With this change, the
    code first checks to see if an amount has been specified on the boot
    command line with the "phyp_dump_reserve_size" option, and if so, uses
    that much.

    Otherwise it computes 5% of total ram and rounds it down to a multiple
    of 256MB, and uses the larger of that or 256MB.

    This is for large systems with a lot of memory (10GB or more). The
    aim is to have more space available for the kernel on reboot on
    machines with more resources. Although the dump will be collected
    pretty fast and the memory released really early on allowing the
    machine to have the full memory available, this alleviates any issues
    that can be caused by having way too little memory on very very large
    systems during those few minutes.

    Signed-off-by: Manish Ahuja
    Signed-off-by: Paul Mackerras

    Manish Ahuja
     
  • * Removed defines KERNEL_PGD_PTRS & USER_PGD_PTRS since they aren't
    used anywhere
    * Changed pmd_page macro to use pfn_to_page so we get proper behavior
    if ARCH_PFN_OFFSET is set as well if we use a different memory model
    on ppc32.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • We can set LOAD_OFFSET and use the AT attribute on sections and the
    linker will properly set the physical address of the LOAD program
    header for us.

    This allows us to know how the PHYSICAL_START the user configured a
    kernel with by just looking at the resulting vmlinux ELF.

    This is pretty much stolen from how x86 does things in their linker
    scripts.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • Moved phys_addr_t out of mmu-*.h and into asm/types.h so we can use it in
    places that before would have caused recursive includes.

    For example to use phys_addr_t in we would have included
    which would have possibly included which
    includes . Wheeee recursive include.

    CONFIG_PHYS_64BIT is a bit counterintuitive in light of ppc64 systems
    and thus the config option is only used for ppc32 systems with >32-bit
    physical addresses (44x, 85xx, 745x, etc.).

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala
     
  • Now that we have a proper variable that is the address of the top
    of low memory we can use it to limit the lmb allocations.

    Signed-off-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Kumar Gala