Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+74 -75
+4 -45
arch/tile/include/uapi/arch/abi.h
··· 20 20 21 21 #ifndef __ARCH_ABI_H__ 22 22 23 - #if !defined __need_int_reg_t && !defined __DOXYGEN__ 24 - # define __ARCH_ABI_H__ 25 - # include <arch/chip.h> 26 - #endif 27 - 28 - /* Provide the basic machine types. */ 29 - #ifndef __INT_REG_BITS 30 - 31 - /** Number of bits in a register. */ 32 - #if defined __tilegx__ 33 - # define __INT_REG_BITS 64 34 - #elif defined __tilepro__ 35 - # define __INT_REG_BITS 32 36 - #elif !defined __need_int_reg_t 23 + #ifndef __tile__ /* support uncommon use of arch headers in non-tile builds */ 37 24 # include <arch/chip.h> 38 25 # define __INT_REG_BITS CHIP_WORD_SIZE() 39 - #else 40 - # error Unrecognized architecture with __need_int_reg_t 41 26 #endif 42 27 43 - #if __INT_REG_BITS == 64 28 + #include <arch/intreg.h> 44 29 45 - #ifndef __ASSEMBLER__ 46 - /** Unsigned type that can hold a register. */ 47 - typedef unsigned long long __uint_reg_t; 48 - 49 - /** Signed type that can hold a register. */ 50 - typedef long long __int_reg_t; 51 - #endif 52 - 53 - /** String prefix to use for printf(). */ 54 - #define __INT_REG_FMT "ll" 55 - 56 - #else 57 - 58 - #ifndef __ASSEMBLER__ 59 - /** Unsigned type that can hold a register. */ 60 - typedef unsigned long __uint_reg_t; 61 - 62 - /** Signed type that can hold a register. */ 63 - typedef long __int_reg_t; 64 - #endif 65 - 66 - /** String prefix to use for printf(). */ 67 - #define __INT_REG_FMT "l" 68 - 69 - #endif 70 - #endif /* __INT_REG_BITS */ 71 - 72 - 30 + /* __need_int_reg_t is deprecated: just include <arch/intreg.h> */ 73 31 #ifndef __need_int_reg_t 74 32 33 + #define __ARCH_ABI_H__ 75 34 76 35 #ifndef __ASSEMBLER__ 77 36 /** Unsigned type that can hold a register. */
+70
arch/tile/include/uapi/arch/intreg.h
··· 1 + /* 2 + * Copyright 2017 Tilera Corporation. All Rights Reserved. 3 + * 4 + * This program is free software; you can redistribute it and/or 5 + * modify it under the terms of the GNU General Public License 6 + * as published by the Free Software Foundation, version 2. 7 + * 8 + * This program is distributed in the hope that it will be useful, but 9 + * WITHOUT ANY WARRANTY; without even the implied warranty of 10 + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 11 + * NON INFRINGEMENT. See the GNU General Public License for 12 + * more details. 13 + */ 14 + 15 + /** 16 + * @file 17 + * 18 + * Provide types and defines for the type that can hold a register, 19 + * in the implementation namespace. 20 + */ 21 + 22 + #ifndef __ARCH_INTREG_H__ 23 + #define __ARCH_INTREG_H__ 24 + 25 + /* 26 + * Get number of bits in a register. __INT_REG_BITS may be defined 27 + * prior to including this header to force a particular bit width. 28 + */ 29 + 30 + #ifndef __INT_REG_BITS 31 + # if defined __tilegx__ 32 + # define __INT_REG_BITS 64 33 + # elif defined __tilepro__ 34 + # define __INT_REG_BITS 32 35 + # else 36 + # error Unrecognized architecture 37 + # endif 38 + #endif 39 + 40 + #if __INT_REG_BITS == 64 41 + 42 + # ifndef __ASSEMBLER__ 43 + /** Unsigned type that can hold a register. */ 44 + typedef unsigned long long __uint_reg_t; 45 + 46 + /** Signed type that can hold a register. */ 47 + typedef long long __int_reg_t; 48 + # endif 49 + 50 + /** String prefix to use for printf(). */ 51 + # define __INT_REG_FMT "ll" 52 + 53 + #elif __INT_REG_BITS == 32 54 + 55 + # ifndef __ASSEMBLER__ 56 + /** Unsigned type that can hold a register. */ 57 + typedef unsigned long __uint_reg_t; 58 + 59 + /** Signed type that can hold a register. */ 60 + typedef long __int_reg_t; 61 + # endif 62 + 63 + /** String prefix to use for printf(). */ 64 + # define __INT_REG_FMT "l" 65 + 66 + #else 67 + # error Unrecognized value of __INT_REG_BITS 68 + #endif 69 + 70 + #endif /* !__ARCH_INTREG_H__ */
-30
arch/tile/mm/init.c
··· 857 857 #endif 858 858 } 859 859 860 - /* 861 - * this is for the non-NUMA, single node SMP system case. 862 - * Specifically, in the case of x86, we will always add 863 - * memory to the highmem for now. 864 - */ 865 - #ifndef CONFIG_NEED_MULTIPLE_NODES 866 - int arch_add_memory(u64 start, u64 size, bool for_device) 867 - { 868 - struct pglist_data *pgdata = &contig_page_data; 869 - struct zone *zone = pgdata->node_zones + MAX_NR_ZONES-1; 870 - unsigned long start_pfn = start >> PAGE_SHIFT; 871 - unsigned long nr_pages = size >> PAGE_SHIFT; 872 - 873 - return __add_pages(zone, start_pfn, nr_pages); 874 - } 875 - 876 - int remove_memory(u64 start, u64 size) 877 - { 878 - return -EINVAL; 879 - } 880 - 881 - #ifdef CONFIG_MEMORY_HOTREMOVE 882 - int arch_remove_memory(u64 start, u64 size) 883 - { 884 - /* TODO */ 885 - return -EBUSY; 886 - } 887 - #endif 888 - #endif 889 - 890 860 struct kmem_cache *pgd_cache; 891 861 892 862 void __init pgtable_cache_init(void)