mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 21:19:04 -04:00
Merge branch 'akpm' (patches from Andrew)
Merge third patchbomb from Andrew Morton:
- the rest of MM
- scripts/gdb updates
- ipc/ updates
- lib/ updates
- MAINTAINERS updates
- various other misc things
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (67 commits)
genalloc: rename of_get_named_gen_pool() to of_gen_pool_get()
genalloc: rename dev_get_gen_pool() to gen_pool_get()
x86: opt into HAVE_COPY_THREAD_TLS, for both 32-bit and 64-bit
MAINTAINERS: add zpool
MAINTAINERS: BCACHE: Kent Overstreet has changed email address
MAINTAINERS: move Jens Osterkamp to CREDITS
MAINTAINERS: remove unused nbd.h pattern
MAINTAINERS: update brcm gpio filename pattern
MAINTAINERS: update brcm dts pattern
MAINTAINERS: update sound soc intel patterns
MAINTAINERS: remove website for paride
MAINTAINERS: update Emulex ocrdma email addresses
bcache: use kvfree() in various places
libcxgbi: use kvfree() in cxgbi_free_big_mem()
target: use kvfree() in session alloc and free
IB/ehca: use kvfree() in ipz_queue_{cd}tor()
drm/nouveau/gem: use kvfree() in u_free()
drm: use kvfree() in drm_free_large()
cxgb4: use kvfree() in t4_free_mem()
cxgb3: use kvfree() in cxgb_free_mem()
...
This commit is contained in:
commit
2d01eedf1d
74 changed files with 894 additions and 339 deletions
|
|
@ -119,16 +119,16 @@ extern unsigned long gen_pool_best_fit(unsigned long *map, unsigned long size,
|
|||
|
||||
extern struct gen_pool *devm_gen_pool_create(struct device *dev,
|
||||
int min_alloc_order, int nid);
|
||||
extern struct gen_pool *dev_get_gen_pool(struct device *dev);
|
||||
extern struct gen_pool *gen_pool_get(struct device *dev);
|
||||
|
||||
bool addr_in_gen_pool(struct gen_pool *pool, unsigned long start,
|
||||
size_t size);
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
extern struct gen_pool *of_get_named_gen_pool(struct device_node *np,
|
||||
extern struct gen_pool *of_gen_pool_get(struct device_node *np,
|
||||
const char *propname, int index);
|
||||
#else
|
||||
static inline struct gen_pool *of_get_named_gen_pool(struct device_node *np,
|
||||
static inline struct gen_pool *of_gen_pool_get(struct device_node *np,
|
||||
const char *propname, int index)
|
||||
{
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -384,6 +384,14 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp);
|
|||
void drain_all_pages(struct zone *zone);
|
||||
void drain_local_pages(struct zone *zone);
|
||||
|
||||
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
|
||||
void page_alloc_init_late(void);
|
||||
#else
|
||||
static inline void page_alloc_init_late(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* gfp_allowed_mask is set to GFP_BOOT_MASK during early boot to restrict what
|
||||
* GFP flags are used before interrupts are enabled. Once interrupts are
|
||||
|
|
|
|||
|
|
@ -439,6 +439,9 @@ extern int panic_on_unrecovered_nmi;
|
|||
extern int panic_on_io_nmi;
|
||||
extern int panic_on_warn;
|
||||
extern int sysctl_panic_on_stackoverflow;
|
||||
|
||||
extern bool crash_kexec_post_notifiers;
|
||||
|
||||
/*
|
||||
* Only to be used by arch init code. If the user over-wrote the default
|
||||
* CONFIG_PANIC_TIMEOUT, honor it.
|
||||
|
|
|
|||
|
|
@ -101,6 +101,9 @@ void __next_mem_range_rev(u64 *idx, int nid, ulong flags,
|
|||
struct memblock_type *type_b, phys_addr_t *out_start,
|
||||
phys_addr_t *out_end, int *out_nid);
|
||||
|
||||
void __next_reserved_mem_region(u64 *idx, phys_addr_t *out_start,
|
||||
phys_addr_t *out_end);
|
||||
|
||||
/**
|
||||
* for_each_mem_range - iterate through memblock areas from type_a and not
|
||||
* included in type_b. Or just type_a if type_b is NULL.
|
||||
|
|
@ -142,6 +145,21 @@ void __next_mem_range_rev(u64 *idx, int nid, ulong flags,
|
|||
__next_mem_range_rev(&i, nid, flags, type_a, type_b, \
|
||||
p_start, p_end, p_nid))
|
||||
|
||||
/**
|
||||
* for_each_reserved_mem_region - iterate over all reserved memblock areas
|
||||
* @i: u64 used as loop variable
|
||||
* @p_start: ptr to phys_addr_t for start address of the range, can be %NULL
|
||||
* @p_end: ptr to phys_addr_t for end address of the range, can be %NULL
|
||||
*
|
||||
* Walks over reserved areas of memblock. Available as soon as memblock
|
||||
* is initialized.
|
||||
*/
|
||||
#define for_each_reserved_mem_region(i, p_start, p_end) \
|
||||
for (i = 0UL, \
|
||||
__next_reserved_mem_region(&i, p_start, p_end); \
|
||||
i != (u64)ULLONG_MAX; \
|
||||
__next_reserved_mem_region(&i, p_start, p_end))
|
||||
|
||||
#ifdef CONFIG_MOVABLE_NODE
|
||||
static inline bool memblock_is_hotpluggable(struct memblock_region *m)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1635,6 +1635,8 @@ extern void free_highmem_page(struct page *page);
|
|||
extern void adjust_managed_page_count(struct page *page, long count);
|
||||
extern void mem_init_print_info(const char *str);
|
||||
|
||||
extern void reserve_bootmem_region(unsigned long start, unsigned long end);
|
||||
|
||||
/* Free the reserved page into the buddy system, so it gets managed. */
|
||||
static inline void __free_reserved_page(struct page *page)
|
||||
{
|
||||
|
|
@ -1724,7 +1726,8 @@ extern void sparse_memory_present_with_active_regions(int nid);
|
|||
|
||||
#if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \
|
||||
!defined(CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID)
|
||||
static inline int __early_pfn_to_nid(unsigned long pfn)
|
||||
static inline int __early_pfn_to_nid(unsigned long pfn,
|
||||
struct mminit_pfnnid_cache *state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1732,7 +1735,8 @@ static inline int __early_pfn_to_nid(unsigned long pfn)
|
|||
/* please see mm/page_alloc.c */
|
||||
extern int __meminit early_pfn_to_nid(unsigned long pfn);
|
||||
/* there is a per-arch backend function. */
|
||||
extern int __meminit __early_pfn_to_nid(unsigned long pfn);
|
||||
extern int __meminit __early_pfn_to_nid(unsigned long pfn,
|
||||
struct mminit_pfnnid_cache *state);
|
||||
#endif
|
||||
|
||||
extern void set_dma_reserve(unsigned long new_dma_reserve);
|
||||
|
|
|
|||
|
|
@ -762,6 +762,14 @@ typedef struct pglist_data {
|
|||
/* Number of pages migrated during the rate limiting time interval */
|
||||
unsigned long numabalancing_migrate_nr_pages;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
|
||||
/*
|
||||
* If memory initialisation on large machines is deferred then this
|
||||
* is the first PFN that needs to be initialised.
|
||||
*/
|
||||
unsigned long first_deferred_pfn;
|
||||
#endif /* CONFIG_DEFERRED_STRUCT_PAGE_INIT */
|
||||
} pg_data_t;
|
||||
|
||||
#define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages)
|
||||
|
|
@ -1216,11 +1224,16 @@ void sparse_init(void);
|
|||
#define sparse_index_init(_sec, _nid) do {} while (0)
|
||||
#endif /* CONFIG_SPARSEMEM */
|
||||
|
||||
#ifdef CONFIG_NODES_SPAN_OTHER_NODES
|
||||
bool early_pfn_in_nid(unsigned long pfn, int nid);
|
||||
#else
|
||||
#define early_pfn_in_nid(pfn, nid) (1)
|
||||
#endif
|
||||
/*
|
||||
* During memory init memblocks map pfns to nids. The search is expensive and
|
||||
* this caches recent lookups. The implementation of __early_pfn_to_nid
|
||||
* may treat start/end as pfns or sections.
|
||||
*/
|
||||
struct mminit_pfnnid_cache {
|
||||
unsigned long last_start;
|
||||
unsigned long last_end;
|
||||
int last_nid;
|
||||
};
|
||||
|
||||
#ifndef early_pfn_valid
|
||||
#define early_pfn_valid(pfn) (1)
|
||||
|
|
|
|||
|
|
@ -265,13 +265,16 @@ int sg_alloc_table_from_pages(struct sg_table *sgt,
|
|||
unsigned long offset, unsigned long size,
|
||||
gfp_t gfp_mask);
|
||||
|
||||
size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
|
||||
size_t buflen, off_t skip, bool to_buffer);
|
||||
|
||||
size_t sg_copy_from_buffer(struct scatterlist *sgl, unsigned int nents,
|
||||
void *buf, size_t buflen);
|
||||
const void *buf, size_t buflen);
|
||||
size_t sg_copy_to_buffer(struct scatterlist *sgl, unsigned int nents,
|
||||
void *buf, size_t buflen);
|
||||
|
||||
size_t sg_pcopy_from_buffer(struct scatterlist *sgl, unsigned int nents,
|
||||
void *buf, size_t buflen, off_t skip);
|
||||
const void *buf, size_t buflen, off_t skip);
|
||||
size_t sg_pcopy_to_buffer(struct scatterlist *sgl, unsigned int nents,
|
||||
void *buf, size_t buflen, off_t skip);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue