Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 334748
b: refs/heads/master
c: a05123b
h: refs/heads/master
v: v3
  • Loading branch information
Yan, Zheng authored and Ingo Molnar committed Oct 20, 2012
1 parent 7b0dd94 commit 298b433
Show file tree
Hide file tree
Showing 106 changed files with 967 additions and 1,164 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 684baeb1d78ac478a8e5f00aa9ab0ce0837f2a91
refs/heads/master: a05123bdd1b9ba961ed262864924a5b3ee81afe8
4 changes: 2 additions & 2 deletions trunk/Documentation/00-INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,6 @@ local_ops.txt
- semantics and behavior of local atomic operations.
lockdep-design.txt
- documentation on the runtime locking correctness validator.
lockup-watchdogs.txt
- info on soft and hard lockup detectors (aka nmi_watchdog).
logo.gif
- full colour GIF image of Linux logo (penguin - Tux).
logo.txt
Expand Down Expand Up @@ -242,6 +240,8 @@ netlabel/
- directory with information on the NetLabel subsystem.
networking/
- directory with info on various aspects of networking with Linux.
nmi_watchdog.txt
- info on NMI watchdog for SMP systems.
nommu-mmap.txt
- documentation about no-mmu memory mapping support.
numastat.txt
Expand Down
2 changes: 1 addition & 1 deletion trunk/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VERSION = 3
PATCHLEVEL = 7
SUBLEVEL = 0
EXTRAVERSION = -rc2
EXTRAVERSION = -rc1
NAME = Terrified Chipmunk

# *DOCUMENTATION*
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ config ARM64
select HAVE_PERF_EVENTS
select HAVE_SPARSE_IRQ
select IRQ_DOMAIN
select MODULES_USE_ELF_RELA
select NO_BOOTMEM
select OF
select OF_EARLY_FLATTREE
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm64/include/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ generic-y += ipcbuf.h
generic-y += irq_regs.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += linkage.h
generic-y += local.h
generic-y += local64.h
generic-y += mman.h
Expand Down
7 changes: 0 additions & 7 deletions trunk/arch/arm64/include/asm/linkage.h

This file was deleted.

10 changes: 10 additions & 0 deletions trunk/arch/arm64/include/asm/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,20 +92,30 @@ static inline void start_thread_common(struct pt_regs *regs, unsigned long pc)
static inline void start_thread(struct pt_regs *regs, unsigned long pc,
unsigned long sp)
{
unsigned long *stack = (unsigned long *)sp;

start_thread_common(regs, pc);
regs->pstate = PSR_MODE_EL0t;
regs->sp = sp;
regs->regs[2] = stack[2]; /* x2 (envp) */
regs->regs[1] = stack[1]; /* x1 (argv) */
regs->regs[0] = stack[0]; /* x0 (argc) */
}

#ifdef CONFIG_COMPAT
static inline void compat_start_thread(struct pt_regs *regs, unsigned long pc,
unsigned long sp)
{
unsigned int *stack = (unsigned int *)sp;

start_thread_common(regs, pc);
regs->pstate = COMPAT_PSR_MODE_USR;
if (pc & 1)
regs->pstate |= COMPAT_PSR_T_BIT;
regs->compat_sp = sp;
regs->regs[2] = stack[2]; /* x2 (envp) */
regs->regs[1] = stack[1]; /* x1 (argv) */
regs->regs[0] = stack[0]; /* x0 (argc) */
}
#endif

Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm64/include/uapi/asm/ptrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,13 @@ struct user_fpsimd_state {

struct user_hwdebug_state {
__u32 dbg_info;
__u32 pad;
struct {
__u64 addr;
__u32 ctrl;
__u32 pad;
} dbg_regs[16];
};


#endif /* __ASSEMBLY__ */

#endif /* _UAPI__ASM_PTRACE_H */
73 changes: 22 additions & 51 deletions trunk/arch/arm64/kernel/ptrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,33 +234,28 @@ static int ptrace_hbp_fill_attr_ctrl(unsigned int note_type,
struct arch_hw_breakpoint_ctrl ctrl,
struct perf_event_attr *attr)
{
int err, len, type, disabled = !ctrl.enabled;
int err, len, type;

if (disabled) {
len = 0;
type = HW_BREAKPOINT_EMPTY;
} else {
err = arch_bp_generic_fields(ctrl, &len, &type);
if (err)
return err;

switch (note_type) {
case NT_ARM_HW_BREAK:
if ((type & HW_BREAKPOINT_X) != type)
return -EINVAL;
break;
case NT_ARM_HW_WATCH:
if ((type & HW_BREAKPOINT_RW) != type)
return -EINVAL;
break;
default:
err = arch_bp_generic_fields(ctrl, &len, &type);
if (err)
return err;

switch (note_type) {
case NT_ARM_HW_BREAK:
if ((type & HW_BREAKPOINT_X) != type)
return -EINVAL;
}
break;
case NT_ARM_HW_WATCH:
if ((type & HW_BREAKPOINT_RW) != type)
return -EINVAL;
break;
default:
return -EINVAL;
}

attr->bp_len = len;
attr->bp_type = type;
attr->disabled = disabled;
attr->disabled = !ctrl.enabled;

return 0;
}
Expand Down Expand Up @@ -377,15 +372,15 @@ static int ptrace_hbp_set_addr(unsigned int note_type,

#define PTRACE_HBP_ADDR_SZ sizeof(u64)
#define PTRACE_HBP_CTRL_SZ sizeof(u32)
#define PTRACE_HBP_PAD_SZ sizeof(u32)
#define PTRACE_HBP_REG_OFF sizeof(u32)

static int hw_break_get(struct task_struct *target,
const struct user_regset *regset,
unsigned int pos, unsigned int count,
void *kbuf, void __user *ubuf)
{
unsigned int note_type = regset->core_note_type;
int ret, idx = 0, offset, limit;
int ret, idx = 0, offset = PTRACE_HBP_REG_OFF, limit;
u32 info, ctrl;
u64 addr;

Expand All @@ -394,20 +389,11 @@ static int hw_break_get(struct task_struct *target,
if (ret)
return ret;

ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &info, 0,
sizeof(info));
if (ret)
return ret;

/* Pad */
offset = offsetof(struct user_hwdebug_state, pad);
ret = user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf, offset,
offset + PTRACE_HBP_PAD_SZ);
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &info, 0, 4);
if (ret)
return ret;

/* (address, ctrl) registers */
offset = offsetof(struct user_hwdebug_state, dbg_regs);
limit = regset->n * regset->size;
while (count && offset < limit) {
ret = ptrace_hbp_get_addr(note_type, target, idx, &addr);
Expand All @@ -427,13 +413,6 @@ static int hw_break_get(struct task_struct *target,
if (ret)
return ret;
offset += PTRACE_HBP_CTRL_SZ;

ret = user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf,
offset,
offset + PTRACE_HBP_PAD_SZ);
if (ret)
return ret;
offset += PTRACE_HBP_PAD_SZ;
idx++;
}

Expand All @@ -446,13 +425,12 @@ static int hw_break_set(struct task_struct *target,
const void *kbuf, const void __user *ubuf)
{
unsigned int note_type = regset->core_note_type;
int ret, idx = 0, offset, limit;
int ret, idx = 0, offset = PTRACE_HBP_REG_OFF, limit;
u32 ctrl;
u64 addr;

/* Resource info and pad */
offset = offsetof(struct user_hwdebug_state, dbg_regs);
ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf, 0, offset);
/* Resource info */
ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf, 0, 4);
if (ret)
return ret;

Expand All @@ -476,13 +454,6 @@ static int hw_break_set(struct task_struct *target,
if (ret)
return ret;
offset += PTRACE_HBP_CTRL_SZ;

ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
offset,
offset + PTRACE_HBP_PAD_SZ);
if (ret)
return ret;
offset += PTRACE_HBP_PAD_SZ;
idx++;
}

Expand Down
12 changes: 0 additions & 12 deletions trunk/arch/arm64/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,19 +170,7 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)

void __init early_init_dt_add_memory_arch(u64 base, u64 size)
{
base &= PAGE_MASK;
size &= PAGE_MASK;
if (base + size < PHYS_OFFSET) {
pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
base, base + size);
return;
}
if (base < PHYS_OFFSET) {
pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
base, PHYS_OFFSET);
size -= PHYS_OFFSET - base;
base = PHYS_OFFSET;
}
memblock_add(base, size);
}

Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm64/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
#include <asm/sections.h>
#include <asm/tlbflush.h>
#include <asm/ptrace.h>
#include <asm/mmu_context.h>

/*
* as from 2.5, kernels no longer have an init_tasks structure
Expand Down
20 changes: 10 additions & 10 deletions trunk/arch/arm64/kernel/vdso.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/slab.h>
#include <linux/timekeeper_internal.h>
#include <linux/vmalloc.h>

#include <asm/cacheflush.h>
Expand Down Expand Up @@ -223,10 +222,11 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
/*
* Update the vDSO data page to keep in sync with kernel timekeeping.
*/
void update_vsyscall(struct timekeeper *tk)
void update_vsyscall(struct timespec *ts, struct timespec *wtm,
struct clocksource *clock, u32 mult)
{
struct timespec xtime_coarse;
u32 use_syscall = strcmp(tk->clock->name, "arch_sys_counter");
u32 use_syscall = strcmp(clock->name, "arch_sys_counter");

++vdso_data->tb_seq_count;
smp_wmb();
Expand All @@ -237,13 +237,13 @@ void update_vsyscall(struct timekeeper *tk)
vdso_data->xtime_coarse_nsec = xtime_coarse.tv_nsec;

if (!use_syscall) {
vdso_data->cs_cycle_last = tk->clock->cycle_last;
vdso_data->xtime_clock_sec = tk->xtime_sec;
vdso_data->xtime_clock_nsec = tk->xtime_nsec >> tk->shift;
vdso_data->cs_mult = tk->mult;
vdso_data->cs_shift = tk->shift;
vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec;
vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec;
vdso_data->cs_cycle_last = clock->cycle_last;
vdso_data->xtime_clock_sec = ts->tv_sec;
vdso_data->xtime_clock_nsec = ts->tv_nsec;
vdso_data->cs_mult = mult;
vdso_data->cs_shift = clock->shift;
vdso_data->wtm_clock_sec = wtm->tv_sec;
vdso_data->wtm_clock_nsec = wtm->tv_nsec;
}

smp_wmb();
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/ia64/include/asm/Kbuild
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

generic-y += clkdev.h
generic-y += exec.h
generic-y += kvm_para.h
34 changes: 34 additions & 0 deletions trunk/arch/ia64/include/asm/kvm_para.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright (C) 2007 Xiantao Zhang <xiantao.zhang@intel.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307 USA.
*
*/
#ifndef __IA64_KVM_PARA_H
#define __IA64_KVM_PARA_H

#include <uapi/asm/kvm_para.h>


static inline unsigned int kvm_arch_para_features(void)
{
return 0;
}

static inline bool kvm_check_and_clear_guest_paused(void)
{
return false;
}

#endif
2 changes: 2 additions & 0 deletions trunk/arch/m68k/include/asm/Kbuild
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
include include/asm-generic/Kbuild.asm
header-y += cachectl.h

generic-y += bitsperlong.h
generic-y += clkdev.h
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit 298b433

Please sign in to comment.