mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
This commit is contained in:
commit
860dbce3d8
22885 changed files with 553000 additions and 416775 deletions
|
|
@ -10,7 +10,6 @@ config SUPERH
|
|||
select DMA_DECLARE_COHERENT
|
||||
select HAVE_IDE if HAS_IOPORT_MAP
|
||||
select HAVE_MEMBLOCK_NODE_MAP
|
||||
select ARCH_DISCARD_MEMBLOCK
|
||||
select HAVE_OPROFILE
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_PERF_EVENTS
|
||||
|
|
@ -53,6 +52,7 @@ config SUPERH
|
|||
select HAVE_FUTEX_CMPXCHG if FUTEX
|
||||
select HAVE_NMI
|
||||
select NEED_SG_DMA_LENGTH
|
||||
select ARCH_HAS_GIGANTIC_PAGE
|
||||
|
||||
help
|
||||
The SuperH is a RISC processor targeted for use in embedded systems
|
||||
|
|
@ -90,12 +90,6 @@ config ARCH_DEFCONFIG
|
|||
default "arch/sh/configs/shx3_defconfig" if SUPERH32
|
||||
default "arch/sh/configs/cayman_defconfig" if SUPERH64
|
||||
|
||||
config RWSEM_GENERIC_SPINLOCK
|
||||
def_bool y
|
||||
|
||||
config RWSEM_XCHGADD_ALGORITHM
|
||||
bool
|
||||
|
||||
config GENERIC_BUG
|
||||
def_bool y
|
||||
depends on BUG && SUPERH32
|
||||
|
|
|
|||
|
|
@ -191,8 +191,8 @@ cpuincdir-y += cpu-common # Must be last
|
|||
drivers-y += arch/sh/drivers/
|
||||
drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/
|
||||
|
||||
cflags-y += $(foreach d, $(cpuincdir-y), -Iarch/sh/include/$(d)) \
|
||||
$(foreach d, $(machdir-y), -Iarch/sh/include/$(d))
|
||||
cflags-y += $(foreach d, $(cpuincdir-y), -I $(srctree)/arch/sh/include/$(d)) \
|
||||
$(foreach d, $(machdir-y), -I $(srctree)/arch/sh/include/$(d))
|
||||
|
||||
KBUILD_CFLAGS += -pipe $(cflags-y)
|
||||
KBUILD_CPPFLAGS += $(cflags-y)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <asm/clock.h>
|
||||
|
||||
static struct mtd_partition nor_flash_partitions[] = {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include <linux/smc91x.h>
|
||||
#include <linux/sh_intc.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
#define SMC_IOBASE 0xA2000000
|
||||
#define SMC_IO_OFFSET 0x300
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#include <asm/addrspace.h>
|
||||
#include <asm/delay.h>
|
||||
#include <asm/i2c-sh7760.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
/* Bus state controller registers for CS4 area */
|
||||
#define BSC_CS4BCR 0xA4FD0010
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/sh_eth.h>
|
||||
#include <linux/sh_intc.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
/* NOR Flash */
|
||||
static struct mtd_partition espt_nor_flash_partitions[] = {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#include <mach/urquell.h>
|
||||
#include <cpu/sh7786.h>
|
||||
#include <asm/heartbeat.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <asm/smp-ops.h>
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
*/
|
||||
#include <linux/irq.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/err.h>
|
||||
#include <mach/sysasic.h>
|
||||
|
|
|
|||
|
|
@ -806,7 +806,6 @@ static struct spi_board_info spi_bus[] = {
|
|||
.platform_data = &mmc_spi_info,
|
||||
.max_speed_hz = 5000000,
|
||||
.mode = SPI_MODE_0,
|
||||
.controller_data = (void *) GPIO_PTM4,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
@ -838,6 +837,14 @@ static struct platform_device msiof0_device = {
|
|||
.resource = msiof0_resources,
|
||||
};
|
||||
|
||||
static struct gpiod_lookup_table msiof_gpio_table = {
|
||||
.dev_id = "spi_sh_msiof.0",
|
||||
.table = {
|
||||
GPIO_LOOKUP("sh7724_pfc", GPIO_PTM4, "cs", GPIO_ACTIVE_HIGH),
|
||||
{ },
|
||||
},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/* FSI */
|
||||
|
|
@ -1296,12 +1303,11 @@ static int __init arch_setup(void)
|
|||
gpio_request(GPIO_FN_MSIOF0_TXD, NULL);
|
||||
gpio_request(GPIO_FN_MSIOF0_RXD, NULL);
|
||||
gpio_request(GPIO_FN_MSIOF0_TSCK, NULL);
|
||||
gpio_request(GPIO_PTM4, NULL); /* software CS control of TSYNC pin */
|
||||
gpio_direction_output(GPIO_PTM4, 1); /* active low CS */
|
||||
gpio_request(GPIO_PTB6, NULL); /* 3.3V power control */
|
||||
gpio_direction_output(GPIO_PTB6, 0); /* disable power by default */
|
||||
|
||||
gpiod_add_lookup_table(&mmc_spi_gpio_table);
|
||||
gpiod_add_lookup_table(&msiof_gpio_table);
|
||||
spi_register_board_info(spi_bus, ARRAY_SIZE(spi_bus));
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include <mach/microdev.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
static struct resource smc91x_resources[] = {
|
||||
[0] = {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/bcd.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
#define FPGA_REGS_OFFSET 0x03fff800
|
||||
#define FPGA_REGS_SIZE 0x490
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
#include <mach/irq.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/heartbeat.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <asm/clock.h>
|
||||
#include <asm/reboot.h>
|
||||
#include <asm/smp-ops.h>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/string.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <asm/sram.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
static int __init fpga_sram_init(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <mach-se/mach/se7343.h>
|
||||
|
||||
#define PA_CPLD_BASE_ADDR 0x11400000
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
#include <linux/irqdomain.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/err.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <mach-se/mach/se7722.h>
|
||||
|
||||
#define IRQ01_BASE_ADDR 0x11800000
|
||||
|
|
|
|||
1
arch/sh/boot/.gitignore
vendored
1
arch/sh/boot/.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
|||
zImage
|
||||
vmlinux*
|
||||
uImage*
|
||||
!vmlinux.scr
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
ifneq ($(CONFIG_BUILTIN_DTB_SOURCE),"")
|
||||
obj-$(CONFIG_USE_BUILTIN_DTB) += $(patsubst "%",%,$(CONFIG_BUILTIN_DTB_SOURCE)).dtb.o
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-$(CONFIG_HD64461) += hd64461.o
|
||||
|
||||
ccflags-y := -Werror
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ CONFIG_MTD_BLOCK=y
|
|||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_SH_FLCTL=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ CONFIG_SLAB=y
|
|||
CONFIG_PROFILING=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_CFQ_GROUP_IOSCHED=y
|
||||
CONFIG_CPU_SUBTYPE_SH7786=y
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ CONFIG_LOG_BUF_SHIFT=14
|
|||
CONFIG_BLK_DEV_INITRD=y
|
||||
# CONFIG_KALLSYMS is not set
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_CPU_SUBTYPE_SH7724=y
|
||||
CONFIG_MEMORY_SIZE=0x10000000
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ CONFIG_MTD_BLOCK=y
|
|||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=4
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ CONFIG_MTD_BLOCK=y
|
|||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_PLATFORM=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_SCSI=y
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ CONFIG_PERF_COUNTERS=y
|
|||
CONFIG_SLAB=y
|
||||
CONFIG_MMAP_ALLOW_UNINITIALIZED=y
|
||||
CONFIG_PROFILING=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
|||
CONFIG_EMBEDDED=y
|
||||
# CONFIG_VM_EVENT_COUNTERS is not set
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ CONFIG_MTD_ROM=m
|
|||
CONFIG_MTD_ABSENT=m
|
||||
CONFIG_MTD_PLATRAM=y
|
||||
CONFIG_MTD_PHRAM=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_PLATFORM=y
|
||||
CONFIG_MTD_NAND_SH_FLCTL=m
|
||||
CONFIG_MTD_UBI=y
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ CONFIG_MTD_BLOCK=y
|
|||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=4
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_PROFILING=y
|
|||
CONFIG_GCOV_KERNEL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_CPU_SUBTYPE_SH7785=y
|
||||
CONFIG_MEMORY_START=0x40000000
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ CONFIG_INFTL=m
|
|||
CONFIG_RFD_FTL=m
|
||||
CONFIG_MTD_CFI=m
|
||||
CONFIG_MTD_JEDECPROBE=m
|
||||
CONFIG_MTD_NAND=m
|
||||
CONFIG_MTD_RAW_NAND=m
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
#include <linux/io.h>
|
||||
#include "pci-sh4.h"
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
static int __init __area_sdram_check(struct pci_channel *chan,
|
||||
unsigned int area)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include <linux/log2.h>
|
||||
#include "pci-sh4.h"
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
#if defined(CONFIG_CPU_BIG_ENDIAN)
|
||||
# define PCICR_ENDIANNESS SH4_PCICR_BSWP
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
#include <linux/sh_intc.h>
|
||||
#include <cpu/sh7786.h>
|
||||
#include "pcie-sh7786.h"
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
struct sh7786_pcie_port {
|
||||
struct pci_channel *hose;
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ generic-y += mm-arch-hooks.h
|
|||
generic-y += parport.h
|
||||
generic-y += percpu.h
|
||||
generic-y += preempt.h
|
||||
generic-y += rwsem.h
|
||||
generic-y += serial.h
|
||||
generic-y += sizes.h
|
||||
generic-y += trace_clock.h
|
||||
generic-y += xor.h
|
||||
|
|
|
|||
|
|
@ -229,9 +229,6 @@ __BUILD_IOPORT_STRING(q, u64)
|
|||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
/* synco on SH-4A, otherwise a nop */
|
||||
#define mmiowb() wmb()
|
||||
|
||||
/* We really want to try and get these to memcpy etc */
|
||||
void memcpy_fromio(void *, const volatile void __iomem *, unsigned long);
|
||||
void memcpy_toio(volatile void __iomem *, const void *, unsigned long);
|
||||
|
|
|
|||
12
arch/sh/include/asm/mmiowb.h
Normal file
12
arch/sh/include/asm/mmiowb.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef __ASM_SH_MMIOWB_H
|
||||
#define __ASM_SH_MMIOWB_H
|
||||
|
||||
#include <asm/barrier.h>
|
||||
|
||||
/* synco on SH-4A, otherwise a nop */
|
||||
#define mmiowb() wmb()
|
||||
|
||||
#include <asm-generic/mmiowb.h>
|
||||
|
||||
#endif /* __ASM_SH_MMIOWB_H */
|
||||
|
|
@ -70,6 +70,15 @@ do { \
|
|||
tlb_remove_page((tlb), (pte)); \
|
||||
} while (0)
|
||||
|
||||
#if CONFIG_PGTABLE_LEVELS > 2
|
||||
#define __pmd_free_tlb(tlb, pmdp, addr) \
|
||||
do { \
|
||||
struct page *page = virt_to_page(pmdp); \
|
||||
pgtable_pmd_page_dtor(page); \
|
||||
tlb_remove_page((tlb), page); \
|
||||
} while (0);
|
||||
#endif
|
||||
|
||||
static inline void check_pgt_cache(void)
|
||||
{
|
||||
quicklist_trim(QUICK_PT, NULL, 25, 16);
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock)
|
|||
{
|
||||
unsigned long tmp;
|
||||
|
||||
/* This could be optimised with ARCH_HAS_MMIOWB */
|
||||
mmiowb();
|
||||
__asm__ __volatile__ (
|
||||
"mov #1, %0 ! arch_spin_unlock \n\t"
|
||||
"mov.l %0, @%1 \n\t"
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ static inline void syscall_set_arguments(struct task_struct *task,
|
|||
regs->regs[4] = args[0];
|
||||
}
|
||||
|
||||
static inline int syscall_get_arch(void)
|
||||
static inline int syscall_get_arch(struct task_struct *task)
|
||||
{
|
||||
int arch = AUDIT_ARCH_SH;
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ static inline void syscall_set_arguments(struct task_struct *task,
|
|||
memcpy(®s->regs[2], args, 6 * sizeof(args[0]));
|
||||
}
|
||||
|
||||
static inline int syscall_get_arch(void)
|
||||
static inline int syscall_get_arch(struct task_struct *task)
|
||||
{
|
||||
int arch = AUDIT_ARCH_SH;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,133 +11,8 @@
|
|||
|
||||
#ifdef CONFIG_MMU
|
||||
#include <linux/swap.h>
|
||||
#include <asm/pgalloc.h>
|
||||
#include <asm/tlbflush.h>
|
||||
#include <asm/mmu_context.h>
|
||||
|
||||
/*
|
||||
* TLB handling. This allows us to remove pages from the page
|
||||
* tables, and efficiently handle the TLB issues.
|
||||
*/
|
||||
struct mmu_gather {
|
||||
struct mm_struct *mm;
|
||||
unsigned int fullmm;
|
||||
unsigned long start, end;
|
||||
};
|
||||
|
||||
static inline void init_tlb_gather(struct mmu_gather *tlb)
|
||||
{
|
||||
tlb->start = TASK_SIZE;
|
||||
tlb->end = 0;
|
||||
|
||||
if (tlb->fullmm) {
|
||||
tlb->start = 0;
|
||||
tlb->end = TASK_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
arch_tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm,
|
||||
unsigned long start, unsigned long end)
|
||||
{
|
||||
tlb->mm = mm;
|
||||
tlb->start = start;
|
||||
tlb->end = end;
|
||||
tlb->fullmm = !(start | (end+1));
|
||||
|
||||
init_tlb_gather(tlb);
|
||||
}
|
||||
|
||||
static inline void
|
||||
arch_tlb_finish_mmu(struct mmu_gather *tlb,
|
||||
unsigned long start, unsigned long end, bool force)
|
||||
{
|
||||
if (tlb->fullmm || force)
|
||||
flush_tlb_mm(tlb->mm);
|
||||
|
||||
/* keep the page table cache within bounds */
|
||||
check_pgt_cache();
|
||||
}
|
||||
|
||||
static inline void
|
||||
tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long address)
|
||||
{
|
||||
if (tlb->start > address)
|
||||
tlb->start = address;
|
||||
if (tlb->end < address + PAGE_SIZE)
|
||||
tlb->end = address + PAGE_SIZE;
|
||||
}
|
||||
|
||||
#define tlb_remove_huge_tlb_entry(h, tlb, ptep, address) \
|
||||
tlb_remove_tlb_entry(tlb, ptep, address)
|
||||
|
||||
/*
|
||||
* In the case of tlb vma handling, we can optimise these away in the
|
||||
* case where we're doing a full MM flush. When we're doing a munmap,
|
||||
* the vmas are adjusted to only cover the region to be torn down.
|
||||
*/
|
||||
static inline void
|
||||
tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
|
||||
{
|
||||
if (!tlb->fullmm)
|
||||
flush_cache_range(vma, vma->vm_start, vma->vm_end);
|
||||
}
|
||||
|
||||
static inline void
|
||||
tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
|
||||
{
|
||||
if (!tlb->fullmm && tlb->end) {
|
||||
flush_tlb_range(vma, tlb->start, tlb->end);
|
||||
init_tlb_gather(tlb);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void tlb_flush_mmu_tlbonly(struct mmu_gather *tlb)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void tlb_flush_mmu_free(struct mmu_gather *tlb)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void tlb_flush_mmu(struct mmu_gather *tlb)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int __tlb_remove_page(struct mmu_gather *tlb, struct page *page)
|
||||
{
|
||||
free_page_and_swap_cache(page);
|
||||
return false; /* avoid calling tlb_flush_mmu */
|
||||
}
|
||||
|
||||
static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
|
||||
{
|
||||
__tlb_remove_page(tlb, page);
|
||||
}
|
||||
|
||||
static inline bool __tlb_remove_page_size(struct mmu_gather *tlb,
|
||||
struct page *page, int page_size)
|
||||
{
|
||||
return __tlb_remove_page(tlb, page);
|
||||
}
|
||||
|
||||
static inline void tlb_remove_page_size(struct mmu_gather *tlb,
|
||||
struct page *page, int page_size)
|
||||
{
|
||||
return tlb_remove_page(tlb, page);
|
||||
}
|
||||
|
||||
#define tlb_remove_check_page_size_change tlb_remove_check_page_size_change
|
||||
static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb,
|
||||
unsigned int page_size)
|
||||
{
|
||||
}
|
||||
|
||||
#define pte_free_tlb(tlb, ptep, addr) pte_free((tlb)->mm, ptep)
|
||||
#define pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, pmdp)
|
||||
#define pud_free_tlb(tlb, pudp, addr) pud_free((tlb)->mm, pudp)
|
||||
|
||||
#define tlb_migrate_finish(mm) do { } while (0)
|
||||
#include <asm-generic/tlb.h>
|
||||
|
||||
#if defined(CONFIG_CPU_SH4) || defined(CONFIG_SUPERH64)
|
||||
extern void tlb_wire_entry(struct vm_area_struct *, unsigned long, pte_t);
|
||||
|
|
@ -157,11 +32,6 @@ static inline void tlb_unwire_entry(void)
|
|||
|
||||
#else /* CONFIG_MMU */
|
||||
|
||||
#define tlb_start_vma(tlb, vma) do { } while (0)
|
||||
#define tlb_end_vma(tlb, vma) do { } while (0)
|
||||
#define __tlb_remove_tlb_entry(tlb, pte, address) do { } while (0)
|
||||
#define tlb_flush(tlb) do { } while (0)
|
||||
|
||||
#include <asm-generic/tlb.h>
|
||||
|
||||
#endif /* CONFIG_MMU */
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ enum {
|
|||
|
||||
static inline u32 sh7786_mm_sel(void)
|
||||
{
|
||||
return __raw_readl(0xFC400020) & 0x7;
|
||||
return __raw_readl((const volatile void __iomem *)0xFC400020) & 0x7;
|
||||
}
|
||||
|
||||
#endif /* __CPU_SH7786_H__ */
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#define SIOCSPGRP _IOW('s', 8, pid_t)
|
||||
#define SIOCGPGRP _IOR('s', 9, pid_t)
|
||||
|
||||
#define SIOCGSTAMP _IOR('s', 100, struct timeval) /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS _IOR('s', 101, struct timespec) /* Get stamp (timespec) */
|
||||
#define SIOCGSTAMP_OLD _IOR('s', 100, struct timeval) /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS_OLD _IOR('s', 101, struct timespec) /* Get stamp (timespec) */
|
||||
|
||||
#endif /* __ASM_SH_SOCKIOS_H */
|
||||
|
|
|
|||
|
|
@ -49,8 +49,6 @@ void save_stack_trace(struct stack_trace *trace)
|
|||
unsigned long *sp = (unsigned long *)current_stack_pointer;
|
||||
|
||||
unwind_stack(current, NULL, sp, &save_stack_ops, trace);
|
||||
if (trace->nr_entries < trace->max_entries)
|
||||
trace->entries[trace->nr_entries++] = ULONG_MAX;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(save_stack_trace);
|
||||
|
||||
|
|
@ -84,7 +82,5 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
|
|||
unsigned long *sp = (unsigned long *)tsk->thread.sp;
|
||||
|
||||
unwind_stack(current, NULL, sp, &save_stack_ops_nosched, trace);
|
||||
if (trace->nr_entries < trace->max_entries)
|
||||
trace->entries[trace->nr_entries++] = ULONG_MAX;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
|
||||
|
|
|
|||
|
|
@ -426,3 +426,13 @@
|
|||
421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait
|
||||
422 common futex_time64 sys_futex
|
||||
423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
|
||||
424 common pidfd_send_signal sys_pidfd_send_signal
|
||||
425 common io_uring_setup sys_io_uring_setup
|
||||
426 common io_uring_enter sys_io_uring_enter
|
||||
427 common io_uring_register sys_io_uring_register
|
||||
428 common open_tree sys_open_tree
|
||||
429 common move_mount sys_move_mount
|
||||
430 common fsopen sys_fsopen
|
||||
431 common fsconfig sys_fsconfig
|
||||
432 common fsmount sys_fsmount
|
||||
433 common fspick sys_fspick
|
||||
|
|
|
|||
|
|
@ -15,8 +15,7 @@ quiet_cmd_syscall = SYSCALL $@
|
|||
|
||||
export CPPFLAGS_vsyscall.lds += -P -C -Ush
|
||||
|
||||
vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 \
|
||||
$(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
|
||||
vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1 -Wl,--hash-style=sysv
|
||||
|
||||
SYSCFLAGS_vsyscall-trapa.so = $(vsyscall-flags)
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1,2 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-y := math.o
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/cache-j2.c
|
||||
*
|
||||
* Copyright (C) 2015-2016 Smart Energy Instruments, Inc.
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/cache-sh2.c
|
||||
*
|
||||
* Copyright (C) 2002 Paul Mundt
|
||||
* Copyright (C) 2008 Yoshinori Sato
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/cache-sh2a.c
|
||||
*
|
||||
* Copyright (C) 2008 Yoshinori Sato
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/cache-sh3.c
|
||||
*
|
||||
* Copyright (C) 1999, 2000 Niibe Yutaka
|
||||
* Copyright (C) 2002 Paul Mundt
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/cache.c
|
||||
*
|
||||
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
|
||||
* Copyright (C) 2002 - 2010 Paul Mundt
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
#include <linux/mm.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
* get_user_pages_fast() - pin user pages in memory
|
||||
* @start: starting user address
|
||||
* @nr_pages: number of pages from start to pin
|
||||
* @write: whether pages will be written to
|
||||
* @gup_flags: flags modifying pin behaviour
|
||||
* @pages: array that receives pointers to the pages pinned.
|
||||
* Should be at least nr_pages long.
|
||||
*
|
||||
|
|
@ -216,8 +216,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
* requested. If nr_pages is 0 or negative, returns 0. If no pages
|
||||
* were pinned, returns -errno.
|
||||
*/
|
||||
int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
||||
struct page **pages)
|
||||
int get_user_pages_fast(unsigned long start, int nr_pages,
|
||||
unsigned int gup_flags, struct page **pages)
|
||||
{
|
||||
struct mm_struct *mm = current->mm;
|
||||
unsigned long addr, len, end;
|
||||
|
|
@ -241,7 +241,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
next = pgd_addr_end(addr, end);
|
||||
if (pgd_none(pgd))
|
||||
goto slow;
|
||||
if (!gup_pud_range(pgd, addr, next, write, pages, &nr))
|
||||
if (!gup_pud_range(pgd, addr, next, gup_flags & FOLL_WRITE,
|
||||
pages, &nr))
|
||||
goto slow;
|
||||
} while (pgdp++, addr = next, addr != end);
|
||||
local_irq_enable();
|
||||
|
|
@ -261,7 +262,7 @@ slow_irqon:
|
|||
|
||||
ret = get_user_pages_unlocked(start,
|
||||
(end - start) >> PAGE_SHIFT, pages,
|
||||
write ? FOLL_WRITE : 0);
|
||||
gup_flags);
|
||||
|
||||
/* Have to be a bit careful with return values */
|
||||
if (nr > 0) {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* linux/arch/sh/mm/init.c
|
||||
*
|
||||
|
|
@ -26,7 +27,7 @@
|
|||
#include <asm/sections.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
||||
|
||||
|
|
@ -403,28 +404,16 @@ void __init mem_init(void)
|
|||
mem_init_done = 1;
|
||||
}
|
||||
|
||||
void free_initmem(void)
|
||||
{
|
||||
free_initmem_default(-1);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
void free_initrd_mem(unsigned long start, unsigned long end)
|
||||
{
|
||||
free_reserved_area((void *)start, (void *)end, -1, "initrd");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
int arch_add_memory(int nid, u64 start, u64 size, struct vmem_altmap *altmap,
|
||||
bool want_memblock)
|
||||
int arch_add_memory(int nid, u64 start, u64 size,
|
||||
struct mhp_restrictions *restrictions)
|
||||
{
|
||||
unsigned long start_pfn = PFN_DOWN(start);
|
||||
unsigned long nr_pages = size >> PAGE_SHIFT;
|
||||
int ret;
|
||||
|
||||
/* We only have ZONE_NORMAL, so this is easy.. */
|
||||
ret = __add_pages(nid, start_pfn, nr_pages, altmap, want_memblock);
|
||||
ret = __add_pages(nid, start_pfn, nr_pages, restrictions);
|
||||
if (unlikely(ret))
|
||||
printk("%s: Failed, __add_pages() == %d\n", __func__, ret);
|
||||
|
||||
|
|
@ -441,20 +430,15 @@ EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
|
|||
#endif
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTREMOVE
|
||||
int arch_remove_memory(int nid, u64 start, u64 size, struct vmem_altmap *altmap)
|
||||
void arch_remove_memory(int nid, u64 start, u64 size,
|
||||
struct vmem_altmap *altmap)
|
||||
{
|
||||
unsigned long start_pfn = PFN_DOWN(start);
|
||||
unsigned long nr_pages = size >> PAGE_SHIFT;
|
||||
struct zone *zone;
|
||||
int ret;
|
||||
|
||||
zone = page_zone(pfn_to_page(start_pfn));
|
||||
ret = __remove_pages(zone, start_pfn, nr_pages, altmap);
|
||||
if (unlikely(ret))
|
||||
pr_warn("%s: Failed, __remove_pages() == %d\n", __func__,
|
||||
ret);
|
||||
|
||||
return ret;
|
||||
__remove_pages(zone, start_pfn, nr_pages, altmap);
|
||||
}
|
||||
#endif
|
||||
#endif /* CONFIG_MEMORY_HOTPLUG */
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/kmap.c
|
||||
*
|
||||
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
|
||||
* Copyright (C) 2002 - 2009 Paul Mundt
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
#include <linux/mm.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/nommu.c
|
||||
*
|
||||
* Various helper routines and stubs for MMUless SH.
|
||||
*
|
||||
* Copyright (C) 2002 - 2009 Paul Mundt
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#include <linux/spinlock.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/page.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/tlb-sh3.c
|
||||
*
|
||||
|
|
@ -5,8 +6,6 @@
|
|||
*
|
||||
* Copyright (C) 1999 Niibe Yutaka
|
||||
* Copyright (C) 2002 Paul Mundt
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
#include <linux/signal.h>
|
||||
#include <linux/sched.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* arch/sh/mm/tlb-sh4.c
|
||||
*
|
||||
|
|
@ -5,8 +6,6 @@
|
|||
*
|
||||
* Copyright (C) 1999 Niibe Yutaka
|
||||
* Copyright (C) 2002 - 2007 Paul Mundt
|
||||
*
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mm.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/addrspace.h>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue