Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull arch/tile updates from Chris Metcalf: "This adds support for an <arch/intreg.h> to help with removing __need_xxx #defines from glibc, and removes some dead code in arch/tile/mm/init.c" * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: mm, tile: drop arch_{add,remove}_memory tile: prefer <arch/intreg.h> to __need_int_reg_t
This commit is contained in:
commit
01ea917735
|
@ -20,58 +20,17 @@
|
||||||
|
|
||||||
#ifndef __ARCH_ABI_H__
|
#ifndef __ARCH_ABI_H__
|
||||||
|
|
||||||
#if !defined __need_int_reg_t && !defined __DOXYGEN__
|
#ifndef __tile__ /* support uncommon use of arch headers in non-tile builds */
|
||||||
# define __ARCH_ABI_H__
|
|
||||||
# include <arch/chip.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Provide the basic machine types. */
|
|
||||||
#ifndef __INT_REG_BITS
|
|
||||||
|
|
||||||
/** Number of bits in a register. */
|
|
||||||
#if defined __tilegx__
|
|
||||||
# define __INT_REG_BITS 64
|
|
||||||
#elif defined __tilepro__
|
|
||||||
# define __INT_REG_BITS 32
|
|
||||||
#elif !defined __need_int_reg_t
|
|
||||||
# include <arch/chip.h>
|
# include <arch/chip.h>
|
||||||
# define __INT_REG_BITS CHIP_WORD_SIZE()
|
# define __INT_REG_BITS CHIP_WORD_SIZE()
|
||||||
#else
|
|
||||||
# error Unrecognized architecture with __need_int_reg_t
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __INT_REG_BITS == 64
|
#include <arch/intreg.h>
|
||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
|
||||||
/** Unsigned type that can hold a register. */
|
|
||||||
typedef unsigned long long __uint_reg_t;
|
|
||||||
|
|
||||||
/** Signed type that can hold a register. */
|
|
||||||
typedef long long __int_reg_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** String prefix to use for printf(). */
|
|
||||||
#define __INT_REG_FMT "ll"
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
|
||||||
/** Unsigned type that can hold a register. */
|
|
||||||
typedef unsigned long __uint_reg_t;
|
|
||||||
|
|
||||||
/** Signed type that can hold a register. */
|
|
||||||
typedef long __int_reg_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** String prefix to use for printf(). */
|
|
||||||
#define __INT_REG_FMT "l"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif /* __INT_REG_BITS */
|
|
||||||
|
|
||||||
|
|
||||||
|
/* __need_int_reg_t is deprecated: just include <arch/intreg.h> */
|
||||||
#ifndef __need_int_reg_t
|
#ifndef __need_int_reg_t
|
||||||
|
|
||||||
|
#define __ARCH_ABI_H__
|
||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
#ifndef __ASSEMBLER__
|
||||||
/** Unsigned type that can hold a register. */
|
/** Unsigned type that can hold a register. */
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2017 Tilera Corporation. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation, version 2.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||||
|
* NON INFRINGEMENT. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
*
|
||||||
|
* Provide types and defines for the type that can hold a register,
|
||||||
|
* in the implementation namespace.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __ARCH_INTREG_H__
|
||||||
|
#define __ARCH_INTREG_H__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get number of bits in a register. __INT_REG_BITS may be defined
|
||||||
|
* prior to including this header to force a particular bit width.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __INT_REG_BITS
|
||||||
|
# if defined __tilegx__
|
||||||
|
# define __INT_REG_BITS 64
|
||||||
|
# elif defined __tilepro__
|
||||||
|
# define __INT_REG_BITS 32
|
||||||
|
# else
|
||||||
|
# error Unrecognized architecture
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __INT_REG_BITS == 64
|
||||||
|
|
||||||
|
# ifndef __ASSEMBLER__
|
||||||
|
/** Unsigned type that can hold a register. */
|
||||||
|
typedef unsigned long long __uint_reg_t;
|
||||||
|
|
||||||
|
/** Signed type that can hold a register. */
|
||||||
|
typedef long long __int_reg_t;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/** String prefix to use for printf(). */
|
||||||
|
# define __INT_REG_FMT "ll"
|
||||||
|
|
||||||
|
#elif __INT_REG_BITS == 32
|
||||||
|
|
||||||
|
# ifndef __ASSEMBLER__
|
||||||
|
/** Unsigned type that can hold a register. */
|
||||||
|
typedef unsigned long __uint_reg_t;
|
||||||
|
|
||||||
|
/** Signed type that can hold a register. */
|
||||||
|
typedef long __int_reg_t;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/** String prefix to use for printf(). */
|
||||||
|
# define __INT_REG_FMT "l"
|
||||||
|
|
||||||
|
#else
|
||||||
|
# error Unrecognized value of __INT_REG_BITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !__ARCH_INTREG_H__ */
|
|
@ -857,36 +857,6 @@ void __init mem_init(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* this is for the non-NUMA, single node SMP system case.
|
|
||||||
* Specifically, in the case of x86, we will always add
|
|
||||||
* memory to the highmem for now.
|
|
||||||
*/
|
|
||||||
#ifndef CONFIG_NEED_MULTIPLE_NODES
|
|
||||||
int arch_add_memory(u64 start, u64 size, bool for_device)
|
|
||||||
{
|
|
||||||
struct pglist_data *pgdata = &contig_page_data;
|
|
||||||
struct zone *zone = pgdata->node_zones + MAX_NR_ZONES-1;
|
|
||||||
unsigned long start_pfn = start >> PAGE_SHIFT;
|
|
||||||
unsigned long nr_pages = size >> PAGE_SHIFT;
|
|
||||||
|
|
||||||
return __add_pages(zone, start_pfn, nr_pages);
|
|
||||||
}
|
|
||||||
|
|
||||||
int remove_memory(u64 start, u64 size)
|
|
||||||
{
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_MEMORY_HOTREMOVE
|
|
||||||
int arch_remove_memory(u64 start, u64 size)
|
|
||||||
{
|
|
||||||
/* TODO */
|
|
||||||
return -EBUSY;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct kmem_cache *pgd_cache;
|
struct kmem_cache *pgd_cache;
|
||||||
|
|
||||||
void __init pgtable_cache_init(void)
|
void __init pgtable_cache_init(void)
|
||||||
|
|
Loading…
Reference in New Issue