Microblaze patches for 4.13-rc1

- Timer fix
 - Using simplified macro in dma.c
 - Wire-up new syscall
 - Remove asp-generic wrappers
 - Fix MMU table handling
 - Defconfig updates
 - Low level entry.S changes
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAllaKO0ACgkQykllyylKDCHDPgCfcEfC56Qm90UbzEIbnpykvLQ3
 wXoAniB0GP+K2PJnlzcatbH1iNbDnHb6
 =fL57
 -----END PGP SIGNATURE-----

Merge tag 'microblaze-4.13-rc1' of git://git.monstr.eu/linux-2.6-microblaze

Pull microblaze updates from Michal Simek:

 - timer fix

 - use simplified macro in dma.c

 - wire-up new syscall

 - remove asp-generic wrappers

 - fix MMU table handling

 - defconfig updates

 - low-level entry.S changes

* tag 'microblaze-4.13-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Fix MSR flags when returning from exception
  microblaze: Separate GP registers from MSR handling
  microblaze: Enabling CONFIG_BRIDGE in mmu_defconfig
  microblaze: Enabling CONFIGS related to MTD
  microblaze: Update defconfigs
  microblaze: mm: Flush TLB to ensure correct mapping when higmem ON
  microblaze: remove asm-generic wrapper headers
  microblaze: wire up statx syscall
  microblaze: Set ->min_delta_ticks and ->max_delta_ticks for timer
  microblaze: use sg_phys()
This commit is contained in:
Linus Torvalds 2017-07-03 15:17:19 -07:00
commit 058e88d37f
54 changed files with 92 additions and 100 deletions

View File

@ -1,8 +1,6 @@
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_AUDIT=y CONFIG_AUDIT=y
CONFIG_AUDIT_LOGINUID_IMMUTABLE=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED=y
@ -33,10 +31,12 @@ CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_INET=y CONFIG_INET=y
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_BRIDGE=m
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_PROC_DEVICETREE=y CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
@ -47,9 +47,9 @@ CONFIG_XILINX_LL_TEMAC=y
# CONFIG_VT is not set # CONFIG_VT is not set
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_UARTLITE=y CONFIG_SERIAL_UARTLITE=y
CONFIG_SERIAL_UARTLITE_CONSOLE=y CONFIG_SERIAL_UARTLITE_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
CONFIG_XILINX_HWICAP=y CONFIG_XILINX_HWICAP=y
CONFIG_I2C=y CONFIG_I2C=y
@ -66,7 +66,6 @@ CONFIG_FB=y
CONFIG_FB_XILINX=y CONFIG_FB_XILINX=y
# CONFIG_USB_SUPPORT is not set # CONFIG_USB_SUPPORT is not set
CONFIG_UIO=y CONFIG_UIO=y
CONFIG_UIO_PDRV=y
CONFIG_UIO_PDRV_GENIRQ=y CONFIG_UIO_PDRV_GENIRQ=y
CONFIG_UIO_DMEM_GENIRQ=y CONFIG_UIO_DMEM_GENIRQ=y
CONFIG_EXT2_FS=y CONFIG_EXT2_FS=y
@ -77,14 +76,13 @@ CONFIG_NFS_FS=y
CONFIG_CIFS=y CONFIG_CIFS=y
CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS=y
CONFIG_CIFS_STATS2=y CONFIG_CIFS_STATS2=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_SLAB=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_KGDB=y CONFIG_KGDB=y
CONFIG_KGDB_TESTS=y CONFIG_KGDB_TESTS=y
CONFIG_KGDB_KDB=y CONFIG_KGDB_KDB=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_KEYS=y CONFIG_KEYS=y
CONFIG_ENCRYPTED_KEYS=y CONFIG_ENCRYPTED_KEYS=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set

View File

@ -1,9 +1,6 @@
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_AUDIT=y CONFIG_AUDIT=y
CONFIG_AUDIT_LOGINUID_IMMUTABLE=y
CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
@ -34,18 +31,15 @@ CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_INET=y CONFIG_INET=y
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_RAM=y CONFIG_MTD_RAM=y
CONFIG_MTD_UCLINUX=y CONFIG_MTD_UCLINUX=y
CONFIG_PROC_DEVICETREE=y
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
@ -56,9 +50,9 @@ CONFIG_XILINX_LL_TEMAC=y
# CONFIG_VT is not set # CONFIG_VT is not set
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_UARTLITE=y CONFIG_SERIAL_UARTLITE=y
CONFIG_SERIAL_UARTLITE_CONSOLE=y CONFIG_SERIAL_UARTLITE_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
CONFIG_XILINX_HWICAP=y CONFIG_XILINX_HWICAP=y
CONFIG_I2C=y CONFIG_I2C=y
@ -74,10 +68,6 @@ CONFIG_XILINX_WATCHDOG=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_XILINX=y CONFIG_FB_XILINX=y
# CONFIG_USB_SUPPORT is not set # CONFIG_USB_SUPPORT is not set
CONFIG_UIO=y
CONFIG_UIO_PDRV=y
CONFIG_UIO_PDRV_GENIRQ=y
CONFIG_UIO_DMEM_GENIRQ=y
CONFIG_EXT2_FS=y CONFIG_EXT2_FS=y
# CONFIG_DNOTIFY is not set # CONFIG_DNOTIFY is not set
CONFIG_CRAMFS=y CONFIG_CRAMFS=y
@ -85,10 +75,10 @@ CONFIG_ROMFS_FS=y
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y CONFIG_NFS_V3_ACL=y
CONFIG_NLS=y CONFIG_NLS=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_SLAB=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_KEYS=y CONFIG_KEYS=y
CONFIG_ENCRYPTED_KEYS=y CONFIG_ENCRYPTED_KEYS=y
@ -97,4 +87,3 @@ CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set

View File

@ -1,14 +1,57 @@
generic-y += barrier.h generic-y += barrier.h
generic-y += bitops.h
generic-y += bitsperlong.h
generic-y += bug.h
generic-y += bugs.h
generic-y += clkdev.h generic-y += clkdev.h
generic-y += device.h generic-y += device.h
generic-y += div64.h
generic-y += emergency-restart.h
generic-y += errno.h
generic-y += exec.h generic-y += exec.h
generic-y += extable.h generic-y += extable.h
generic-y += fb.h
generic-y += fcntl.h
generic-y += hardirq.h
generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
generic-y += irq_work.h generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kprobes.h
generic-y += linkage.h
generic-y += local.h
generic-y += local64.h
generic-y += mcs_spinlock.h generic-y += mcs_spinlock.h
generic-y += mm-arch-hooks.h generic-y += mm-arch-hooks.h
generic-y += mman.h
generic-y += msgbuf.h
generic-y += param.h
generic-y += parport.h
generic-y += percpu.h
generic-y += poll.h
generic-y += preempt.h generic-y += preempt.h
generic-y += resource.h
generic-y += sembuf.h
generic-y += serial.h
generic-y += shmbuf.h
generic-y += shmparam.h
generic-y += siginfo.h
generic-y += signal.h
generic-y += socket.h
generic-y += sockios.h
generic-y += stat.h
generic-y += statfs.h
generic-y += swab.h
generic-y += syscalls.h generic-y += syscalls.h
generic-y += termbits.h
generic-y += termios.h
generic-y += topology.h
generic-y += trace_clock.h generic-y += trace_clock.h
generic-y += ucontext.h
generic-y += vga.h
generic-y += word-at-a-time.h generic-y += word-at-a-time.h
generic-y += kprobes.h generic-y += xor.h

View File

@ -1 +0,0 @@
#include <asm-generic/bitops.h>

View File

@ -1 +0,0 @@
#include <asm-generic/bug.h>

View File

@ -1 +0,0 @@
#include <asm-generic/bugs.h>

View File

@ -1 +0,0 @@
#include <asm-generic/div64.h>

View File

@ -1 +0,0 @@
#include <asm-generic/emergency-restart.h>

View File

@ -1 +0,0 @@
#include <asm-generic/fb.h>

View File

@ -1 +0,0 @@
#include <asm-generic/hardirq.h>

View File

@ -1 +0,0 @@
#include <asm-generic/irq_regs.h>

View File

@ -1 +0,0 @@
#include <asm-generic/kdebug.h>

View File

@ -1,6 +0,0 @@
#ifndef _ASM_MICROBLAZE_KMAP_TYPES_H
#define _ASM_MICROBLAZE_KMAP_TYPES_H
#include <asm-generic/kmap_types.h>
#endif /* _ASM_MICROBLAZE_KMAP_TYPES_H */

View File

@ -1 +0,0 @@
#include <asm-generic/linkage.h>

View File

@ -1 +0,0 @@
#include <asm-generic/local.h>

View File

@ -1 +0,0 @@
#include <asm-generic/local64.h>

View File

@ -1 +0,0 @@
#include <asm-generic/parport.h>

View File

@ -1 +0,0 @@
#include <asm-generic/percpu.h>

View File

@ -1 +0,0 @@
#include <asm-generic/serial.h>

View File

@ -1 +0,0 @@
#include <asm-generic/shmparam.h>

View File

@ -1 +0,0 @@
#include <asm-generic/topology.h>

View File

@ -1 +0,0 @@
#include <asm-generic/ucontext.h>

View File

@ -38,6 +38,6 @@
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#define __NR_syscalls 398 #define __NR_syscalls 399
#endif /* _ASM_MICROBLAZE_UNISTD_H */ #endif /* _ASM_MICROBLAZE_UNISTD_H */

View File

@ -1 +0,0 @@
#include <asm-generic/vga.h>

View File

@ -1 +0,0 @@
#include <asm-generic/xor.h>

View File

@ -1 +0,0 @@
#include <asm-generic/bitsperlong.h>

View File

@ -1 +0,0 @@
#include <asm-generic/errno.h>

View File

@ -1 +0,0 @@
#include <asm-generic/fcntl.h>

View File

@ -1 +0,0 @@
#include <asm-generic/ioctl.h>

View File

@ -1 +0,0 @@
#include <asm-generic/ioctls.h>

View File

@ -1 +0,0 @@
#include <asm-generic/ipcbuf.h>

View File

@ -1 +0,0 @@
#include <asm-generic/kvm_para.h>

View File

@ -1 +0,0 @@
#include <asm-generic/mman.h>

View File

@ -1 +0,0 @@
#include <asm-generic/msgbuf.h>

View File

@ -1 +0,0 @@
#include <asm-generic/param.h>

View File

@ -1 +0,0 @@
#include <asm-generic/poll.h>

View File

@ -1 +0,0 @@
#include <asm-generic/resource.h>

View File

@ -1 +0,0 @@
#include <asm-generic/sembuf.h>

View File

@ -1 +0,0 @@
#include <asm-generic/shmbuf.h>

View File

@ -1 +0,0 @@
#include <asm-generic/siginfo.h>

View File

@ -1 +0,0 @@
#include <asm-generic/signal.h>

View File

@ -1 +0,0 @@
#include <asm-generic/socket.h>

View File

@ -1 +0,0 @@
#include <asm-generic/sockios.h>

View File

@ -1 +0,0 @@
#include <asm-generic/stat.h>

View File

@ -1 +0,0 @@
#include <asm-generic/statfs.h>

View File

@ -1 +0,0 @@
#include <asm-generic/swab.h>

View File

@ -1 +0,0 @@
#include <asm-generic/termbits.h>

View File

@ -1 +0,0 @@
#include <asm-generic/termios.h>

View File

@ -413,5 +413,6 @@
#define __NR_pkey_mprotect 395 #define __NR_pkey_mprotect 395
#define __NR_pkey_alloc 396 #define __NR_pkey_alloc 396
#define __NR_pkey_free 397 #define __NR_pkey_free 397
#define __NR_statx 398
#endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */

View File

@ -65,8 +65,7 @@ static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
if (attrs & DMA_ATTR_SKIP_CPU_SYNC) if (attrs & DMA_ATTR_SKIP_CPU_SYNC)
continue; continue;
__dma_sync(page_to_phys(sg_page(sg)) + sg->offset, __dma_sync(sg_phys(sg), sg->length, direction);
sg->length, direction);
} }
return nents; return nents;

View File

@ -208,9 +208,7 @@ syscall_debug_table:
mfs r11, rmsr; /* save MSR */ \ mfs r11, rmsr; /* save MSR */ \
swi r11, r1, PT_MSR; swi r11, r1, PT_MSR;
#define RESTORE_REGS \ #define RESTORE_REGS_GP \
lwi r11, r1, PT_MSR; \
mts rmsr , r11; \
lwi r2, r1, PT_R2; /* restore SDA */ \ lwi r2, r1, PT_R2; /* restore SDA */ \
lwi r3, r1, PT_R3; \ lwi r3, r1, PT_R3; \
lwi r4, r1, PT_R4; \ lwi r4, r1, PT_R4; \
@ -242,6 +240,18 @@ syscall_debug_table:
lwi r30, r1, PT_R30; \ lwi r30, r1, PT_R30; \
lwi r31, r1, PT_R31; /* Restore cur task reg */ lwi r31, r1, PT_R31; /* Restore cur task reg */
#define RESTORE_REGS \
lwi r11, r1, PT_MSR; \
mts rmsr , r11; \
RESTORE_REGS_GP
#define RESTORE_REGS_RTBD \
lwi r11, r1, PT_MSR; \
andni r11, r11, MSR_EIP; /* clear EIP */ \
ori r11, r11, MSR_EE | MSR_BIP; /* set EE and BIP */ \
mts rmsr , r11; \
RESTORE_REGS_GP
#define SAVE_STATE \ #define SAVE_STATE \
swi r1, r0, TOPHYS(PER_CPU(ENTRY_SP)); /* save stack */ \ swi r1, r0, TOPHYS(PER_CPU(ENTRY_SP)); /* save stack */ \
/* See if already in kernel mode.*/ \ /* See if already in kernel mode.*/ \
@ -427,7 +437,7 @@ C_ENTRY(ret_from_trap):
swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */ swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
VM_OFF; VM_OFF;
tophys(r1,r1); tophys(r1,r1);
RESTORE_REGS; RESTORE_REGS_RTBD;
addik r1, r1, PT_SIZE /* Clean up stack space. */ addik r1, r1, PT_SIZE /* Clean up stack space. */
lwi r1, r1, PT_R1 - PT_SIZE;/* Restore user stack pointer. */ lwi r1, r1, PT_R1 - PT_SIZE;/* Restore user stack pointer. */
bri 6f; bri 6f;
@ -436,7 +446,7 @@ C_ENTRY(ret_from_trap):
2: set_bip; /* Ints masked for state restore */ 2: set_bip; /* Ints masked for state restore */
VM_OFF; VM_OFF;
tophys(r1,r1); tophys(r1,r1);
RESTORE_REGS; RESTORE_REGS_RTBD;
addik r1, r1, PT_SIZE /* Clean up stack space. */ addik r1, r1, PT_SIZE /* Clean up stack space. */
tovirt(r1,r1); tovirt(r1,r1);
6: 6:
@ -612,7 +622,7 @@ C_ENTRY(ret_from_exc):
VM_OFF; VM_OFF;
tophys(r1,r1); tophys(r1,r1);
RESTORE_REGS; RESTORE_REGS_RTBD;
addik r1, r1, PT_SIZE /* Clean up stack space. */ addik r1, r1, PT_SIZE /* Clean up stack space. */
lwi r1, r1, PT_R1 - PT_SIZE; /* Restore user stack pointer. */ lwi r1, r1, PT_R1 - PT_SIZE; /* Restore user stack pointer. */
@ -621,7 +631,7 @@ C_ENTRY(ret_from_exc):
2: set_bip; /* Ints masked for state restore */ 2: set_bip; /* Ints masked for state restore */
VM_OFF; VM_OFF;
tophys(r1,r1); tophys(r1,r1);
RESTORE_REGS; RESTORE_REGS_RTBD;
addik r1, r1, PT_SIZE /* Clean up stack space. */ addik r1, r1, PT_SIZE /* Clean up stack space. */
tovirt(r1,r1); tovirt(r1,r1);
@ -847,7 +857,7 @@ dbtrap_call: /* Return point for kernel/user entry + 8 because of rtsd r15, 8 */
VM_OFF; VM_OFF;
tophys(r1,r1); tophys(r1,r1);
/* MS: Restore all regs */ /* MS: Restore all regs */
RESTORE_REGS RESTORE_REGS_RTBD
addik r1, r1, PT_SIZE /* Clean up stack space */ addik r1, r1, PT_SIZE /* Clean up stack space */
lwi r1, r1, PT_R1 - PT_SIZE; /* Restore user stack pointer */ lwi r1, r1, PT_R1 - PT_SIZE; /* Restore user stack pointer */
DBTRAP_return_user: /* MS: Make global symbol for debugging */ DBTRAP_return_user: /* MS: Make global symbol for debugging */
@ -858,7 +868,7 @@ DBTRAP_return_user: /* MS: Make global symbol for debugging */
2: VM_OFF; 2: VM_OFF;
tophys(r1,r1); tophys(r1,r1);
/* MS: Restore all regs */ /* MS: Restore all regs */
RESTORE_REGS RESTORE_REGS_RTBD
lwi r14, r1, PT_R14; lwi r14, r1, PT_R14;
lwi r16, r1, PT_PC; lwi r16, r1, PT_PC;
addik r1, r1, PT_SIZE; /* MS: Clean up stack space */ addik r1, r1, PT_SIZE; /* MS: Clean up stack space */

View File

@ -398,3 +398,4 @@ ENTRY(sys_call_table)
.long sys_pkey_mprotect /* 395 */ .long sys_pkey_mprotect /* 395 */
.long sys_pkey_alloc .long sys_pkey_alloc
.long sys_pkey_free .long sys_pkey_free
.long sys_statx

View File

@ -178,8 +178,10 @@ static __init int xilinx_clockevent_init(void)
clockevent_xilinx_timer.shift); clockevent_xilinx_timer.shift);
clockevent_xilinx_timer.max_delta_ns = clockevent_xilinx_timer.max_delta_ns =
clockevent_delta2ns((u32)~0, &clockevent_xilinx_timer); clockevent_delta2ns((u32)~0, &clockevent_xilinx_timer);
clockevent_xilinx_timer.max_delta_ticks = (u32)~0;
clockevent_xilinx_timer.min_delta_ns = clockevent_xilinx_timer.min_delta_ns =
clockevent_delta2ns(1, &clockevent_xilinx_timer); clockevent_delta2ns(1, &clockevent_xilinx_timer);
clockevent_xilinx_timer.min_delta_ticks = 1;
clockevent_xilinx_timer.cpumask = cpumask_of(0); clockevent_xilinx_timer.cpumask = cpumask_of(0);
clockevents_register_device(&clockevent_xilinx_timer); clockevents_register_device(&clockevent_xilinx_timer);

View File

@ -60,6 +60,7 @@ void __kunmap_atomic(void *kvaddr)
{ {
unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK;
int type; int type;
unsigned int idx;
if (vaddr < __fix_to_virt(FIX_KMAP_END)) { if (vaddr < __fix_to_virt(FIX_KMAP_END)) {
pagefault_enable(); pagefault_enable();
@ -68,21 +69,18 @@ void __kunmap_atomic(void *kvaddr)
} }
type = kmap_atomic_idx(); type = kmap_atomic_idx();
idx = type + KM_TYPE_NR * smp_processor_id();
#ifdef CONFIG_DEBUG_HIGHMEM #ifdef CONFIG_DEBUG_HIGHMEM
{ BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx));
unsigned int idx;
idx = type + KM_TYPE_NR * smp_processor_id();
BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx));
/*
* force other mappings to Oops if they'll try to access
* this pte without first remap it
*/
pte_clear(&init_mm, vaddr, kmap_pte-idx);
local_flush_tlb_page(NULL, vaddr);
}
#endif #endif
/*
* force other mappings to Oops if they'll try to access
* this pte without first remap it
*/
pte_clear(&init_mm, vaddr, kmap_pte-idx);
local_flush_tlb_page(NULL, vaddr);
kmap_atomic_idx_pop(); kmap_atomic_idx_pop();
pagefault_enable(); pagefault_enable();
preempt_enable(); preempt_enable();