forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'arc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/…
…git/vgupta/arc Pull ARC updates from Vineet Gupta: - Support for new MM features in ARCv2 cores (THP, PAE40) Some generic THP bits are touched - all ACKed by Kirill - Platform framework updates to prepare for EZChip arrival (still in works) - ARC Public Mailing list setup finally ([email protected]) * tag 'arc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (42 commits) ARC: mm: PAE40 support ARC: mm: PAE40: tlbex.S: Explicitify the size of pte_t ARC: mm: PAE40: switch to using phys_addr_t for physical addresses ARC: mm: HIGHMEM: populate high memory from DT ARC: mm: HIGHMEM: kmap API implementation ARC: mm: preps ahead of HIGHMEM support #2 ARC: mm: preps ahead of HIGHMEM support ARC: mm: use generic macros _BITUL()/_AC() ARC: mm: Improve Duplicate PD Fault handler MAINTAINERS: Add public mailing list for ARC ARC: Ensure DT mem base is same as what kernel is built with ARC: boot: Non Master cpus only need to call EARLY_CPU_SETUP once ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_smp() ARC: smp: Introduce smp hook @init_irq_cpu called for all cores ARC: smp: Rename platform hook @init_smp -> @init_cpu_smp ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_early_smp() ARC: smp: Introduce smp hook @init_early_smp for Master core ARC: remove @init_time, @init_irq platform callbacks ARC: smp: irqchip: handle IPI as percpu irq like timer ARC: boot: Support Halt-on-reset and Run-on-reset SMP booting modes ...
- Loading branch information
Showing
53 changed files
with
1,075 additions
and
479 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10121,6 +10121,7 @@ F: include/net/switchdev.h | |
|
||
SYNOPSYS ARC ARCHITECTURE | ||
M: Vineet Gupta <[email protected]> | ||
L: [email protected] | ||
S: Supported | ||
F: arch/arc/ | ||
F: Documentation/devicetree/bindings/arc/* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
/* | ||
* Copyright (C) 2015 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
*/ | ||
|
||
#ifndef _ASM_HIGHMEM_H | ||
#define _ASM_HIGHMEM_H | ||
|
||
#ifdef CONFIG_HIGHMEM | ||
|
||
#include <uapi/asm/page.h> | ||
#include <asm/kmap_types.h> | ||
|
||
/* start after vmalloc area */ | ||
#define FIXMAP_BASE (PAGE_OFFSET - FIXMAP_SIZE - PKMAP_SIZE) | ||
#define FIXMAP_SIZE PGDIR_SIZE /* only 1 PGD worth */ | ||
#define KM_TYPE_NR ((FIXMAP_SIZE >> PAGE_SHIFT)/NR_CPUS) | ||
#define FIXMAP_ADDR(nr) (FIXMAP_BASE + ((nr) << PAGE_SHIFT)) | ||
|
||
/* start after fixmap area */ | ||
#define PKMAP_BASE (FIXMAP_BASE + FIXMAP_SIZE) | ||
#define PKMAP_SIZE PGDIR_SIZE | ||
#define LAST_PKMAP (PKMAP_SIZE >> PAGE_SHIFT) | ||
#define LAST_PKMAP_MASK (LAST_PKMAP - 1) | ||
#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) | ||
#define PKMAP_NR(virt) (((virt) - PKMAP_BASE) >> PAGE_SHIFT) | ||
|
||
#define kmap_prot PAGE_KERNEL | ||
|
||
|
||
#include <asm/cacheflush.h> | ||
|
||
extern void *kmap(struct page *page); | ||
extern void *kmap_high(struct page *page); | ||
extern void *kmap_atomic(struct page *page); | ||
extern void __kunmap_atomic(void *kvaddr); | ||
extern void kunmap_high(struct page *page); | ||
|
||
extern void kmap_init(void); | ||
|
||
static inline void flush_cache_kmaps(void) | ||
{ | ||
flush_cache_all(); | ||
} | ||
|
||
static inline void kunmap(struct page *page) | ||
{ | ||
BUG_ON(in_interrupt()); | ||
if (!PageHighMem(page)) | ||
return; | ||
kunmap_high(page); | ||
} | ||
|
||
|
||
#endif | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
/* | ||
* Copyright (C) 2013-15 Synopsys, Inc. (www.synopsys.com) | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
|
||
#ifndef _ASM_ARC_HUGEPAGE_H | ||
#define _ASM_ARC_HUGEPAGE_H | ||
|
||
#include <linux/types.h> | ||
#include <asm-generic/pgtable-nopmd.h> | ||
|
||
static inline pte_t pmd_pte(pmd_t pmd) | ||
{ | ||
return __pte(pmd_val(pmd)); | ||
} | ||
|
||
static inline pmd_t pte_pmd(pte_t pte) | ||
{ | ||
return __pmd(pte_val(pte)); | ||
} | ||
|
||
#define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd))) | ||
#define pmd_mkwrite(pmd) pte_pmd(pte_mkwrite(pmd_pte(pmd))) | ||
#define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd))) | ||
#define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd))) | ||
#define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd))) | ||
#define pmd_mkhuge(pmd) pte_pmd(pte_mkhuge(pmd_pte(pmd))) | ||
#define pmd_mknotpresent(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd))) | ||
#define pmd_mksplitting(pmd) pte_pmd(pte_mkspecial(pmd_pte(pmd))) | ||
#define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd))) | ||
|
||
#define pmd_write(pmd) pte_write(pmd_pte(pmd)) | ||
#define pmd_young(pmd) pte_young(pmd_pte(pmd)) | ||
#define pmd_pfn(pmd) pte_pfn(pmd_pte(pmd)) | ||
#define pmd_dirty(pmd) pte_dirty(pmd_pte(pmd)) | ||
#define pmd_special(pmd) pte_special(pmd_pte(pmd)) | ||
|
||
#define mk_pmd(page, prot) pte_pmd(mk_pte(page, prot)) | ||
|
||
#define pmd_trans_huge(pmd) (pmd_val(pmd) & _PAGE_HW_SZ) | ||
#define pmd_trans_splitting(pmd) (pmd_trans_huge(pmd) && pmd_special(pmd)) | ||
|
||
#define pfn_pmd(pfn, prot) (__pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))) | ||
|
||
static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) | ||
{ | ||
/* | ||
* open-coded pte_modify() with additional retaining of HW_SZ bit | ||
* so that pmd_trans_huge() remains true for this PMD | ||
*/ | ||
return __pmd((pmd_val(pmd) & (_PAGE_CHG_MASK | _PAGE_HW_SZ)) | pgprot_val(newprot)); | ||
} | ||
|
||
static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr, | ||
pmd_t *pmdp, pmd_t pmd) | ||
{ | ||
*pmdp = pmd; | ||
} | ||
|
||
extern void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr, | ||
pmd_t *pmd); | ||
|
||
#define has_transparent_hugepage() 1 | ||
|
||
/* Generic variants assume pgtable_t is struct page *, hence need for these */ | ||
#define __HAVE_ARCH_PGTABLE_DEPOSIT | ||
extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, | ||
pgtable_t pgtable); | ||
|
||
#define __HAVE_ARCH_PGTABLE_WITHDRAW | ||
extern pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); | ||
|
||
#define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE | ||
extern void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, | ||
unsigned long end); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.