mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
commit
d6754b401a
202 changed files with 4026 additions and 2551 deletions
|
|
@ -18,6 +18,9 @@
|
|||
#define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval)
|
||||
#define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval))
|
||||
|
||||
#define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
|
||||
#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
|
||||
|
||||
#define ptep_get_and_clear(mm,addr,xp) __pte(xchg(&(xp)->pte_low, 0))
|
||||
#define pte_same(a, b) ((a).pte_low == (b).pte_low)
|
||||
#define pte_page(x) pfn_to_page(pte_pfn(x))
|
||||
|
|
|
|||
|
|
@ -85,6 +85,26 @@ static inline void pud_clear (pud_t * pud) { }
|
|||
#define pmd_offset(pud, address) ((pmd_t *) pud_page(*(pud)) + \
|
||||
pmd_index(address))
|
||||
|
||||
/*
|
||||
* For PTEs and PDEs, we must clear the P-bit first when clearing a page table
|
||||
* entry, so clear the bottom half first and enforce ordering with a compiler
|
||||
* barrier.
|
||||
*/
|
||||
static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
|
||||
{
|
||||
ptep->pte_low = 0;
|
||||
smp_wmb();
|
||||
ptep->pte_high = 0;
|
||||
}
|
||||
|
||||
static inline void pmd_clear(pmd_t *pmd)
|
||||
{
|
||||
u32 *tmp = (u32 *)pmd;
|
||||
*tmp = 0;
|
||||
smp_wmb();
|
||||
*(tmp + 1) = 0;
|
||||
}
|
||||
|
||||
static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
|
||||
{
|
||||
pte_t res;
|
||||
|
|
|
|||
|
|
@ -203,12 +203,10 @@ extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
|
|||
extern unsigned long pg0[];
|
||||
|
||||
#define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
|
||||
#define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
|
||||
|
||||
/* To avoid harmful races, pmd_none(x) should check only the lower when PAE */
|
||||
#define pmd_none(x) (!(unsigned long)pmd_val(x))
|
||||
#define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT)
|
||||
#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
|
||||
#define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
|
||||
|
||||
|
||||
|
|
@ -267,7 +265,7 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long
|
|||
pte_t pte;
|
||||
if (full) {
|
||||
pte = *ptep;
|
||||
*ptep = __pte(0);
|
||||
pte_clear(mm, addr, ptep);
|
||||
} else {
|
||||
pte = ptep_get_and_clear(mm, addr, ptep);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -321,8 +321,9 @@
|
|||
#define __NR_splice 313
|
||||
#define __NR_sync_file_range 314
|
||||
#define __NR_tee 315
|
||||
#define __NR_vmsplice 316
|
||||
|
||||
#define NR_syscalls 316
|
||||
#define NR_syscalls 317
|
||||
|
||||
/*
|
||||
* user-visible error numbers are in the range -1 - -128: see
|
||||
|
|
|
|||
Loading…
Reference in a new issue