Merge branch 'linux-2.6'
This commit is contained in:
@@ -256,7 +256,7 @@ static int set_evrregs(struct task_struct *task, unsigned long *data)
|
||||
#endif /* CONFIG_SPE */
|
||||
|
||||
|
||||
static void set_single_step(struct task_struct *task)
|
||||
void user_enable_single_step(struct task_struct *task)
|
||||
{
|
||||
struct pt_regs *regs = task->thread.regs;
|
||||
|
||||
@@ -271,7 +271,7 @@ static void set_single_step(struct task_struct *task)
|
||||
set_tsk_thread_flag(task, TIF_SINGLESTEP);
|
||||
}
|
||||
|
||||
static void clear_single_step(struct task_struct *task)
|
||||
void user_disable_single_step(struct task_struct *task)
|
||||
{
|
||||
struct pt_regs *regs = task->thread.regs;
|
||||
|
||||
@@ -313,7 +313,7 @@ static int ptrace_set_debugreg(struct task_struct *task, unsigned long addr,
|
||||
void ptrace_disable(struct task_struct *child)
|
||||
{
|
||||
/* make sure the single step bit is not set. */
|
||||
clear_single_step(child);
|
||||
user_disable_single_step(child);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -445,52 +445,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
||||
break;
|
||||
}
|
||||
|
||||
case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
|
||||
case PTRACE_CONT: { /* restart after signal. */
|
||||
ret = -EIO;
|
||||
if (!valid_signal(data))
|
||||
break;
|
||||
if (request == PTRACE_SYSCALL)
|
||||
set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
|
||||
else
|
||||
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
|
||||
child->exit_code = data;
|
||||
/* make sure the single step bit is not set. */
|
||||
clear_single_step(child);
|
||||
wake_up_process(child);
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* make the child exit. Best I can do is send it a sigkill.
|
||||
* perhaps it should be put in the status that it wants to
|
||||
* exit.
|
||||
*/
|
||||
case PTRACE_KILL: {
|
||||
ret = 0;
|
||||
if (child->exit_state == EXIT_ZOMBIE) /* already dead */
|
||||
break;
|
||||
child->exit_code = SIGKILL;
|
||||
/* make sure the single step bit is not set. */
|
||||
clear_single_step(child);
|
||||
wake_up_process(child);
|
||||
break;
|
||||
}
|
||||
|
||||
case PTRACE_SINGLESTEP: { /* set the trap flag. */
|
||||
ret = -EIO;
|
||||
if (!valid_signal(data))
|
||||
break;
|
||||
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
|
||||
set_single_step(child);
|
||||
child->exit_code = data;
|
||||
/* give it a chance to run. */
|
||||
wake_up_process(child);
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case PTRACE_GET_DEBUGREG: {
|
||||
ret = -EINVAL;
|
||||
/* We only support one DABR and no IABRS at the moment */
|
||||
|
@@ -158,7 +158,7 @@ static ssize_t show_##NAME(struct sys_device *dev, char *buf) \
|
||||
unsigned long val = run_on_cpu(cpu->sysdev.id, read_##NAME, 0); \
|
||||
return sprintf(buf, "%lx\n", val); \
|
||||
} \
|
||||
static ssize_t __attribute_used__ \
|
||||
static ssize_t __used \
|
||||
store_##NAME(struct sys_device *dev, const char *buf, size_t count) \
|
||||
{ \
|
||||
struct cpu *cpu = container_of(dev, struct cpu, sysdev); \
|
||||
|
@@ -37,8 +37,6 @@
|
||||
#include <asm/iseries/hv_call_xm.h>
|
||||
#include <asm/iseries/iommu.h>
|
||||
|
||||
extern struct kset devices_subsys; /* needed for vio_find_name() */
|
||||
|
||||
static struct bus_type vio_bus_type;
|
||||
|
||||
static struct vio_dev vio_bus_device = { /* fake "parent" device */
|
||||
@@ -361,19 +359,16 @@ EXPORT_SYMBOL(vio_get_attribute);
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
/* vio_find_name() - internal because only vio.c knows how we formatted the
|
||||
* kobject name
|
||||
* XXX once vio_bus_type.devices is actually used as a kset in
|
||||
* drivers/base/bus.c, this function should be removed in favor of
|
||||
* "device_find(kobj_name, &vio_bus_type)"
|
||||
*/
|
||||
static struct vio_dev *vio_find_name(const char *kobj_name)
|
||||
static struct vio_dev *vio_find_name(const char *name)
|
||||
{
|
||||
struct kobject *found;
|
||||
struct device *found;
|
||||
|
||||
found = kset_find_obj(&devices_subsys, kobj_name);
|
||||
found = bus_find_device_by_name(&vio_bus_type, NULL, name);
|
||||
if (!found)
|
||||
return NULL;
|
||||
|
||||
return to_vio_dev(container_of(found, struct device, kobj));
|
||||
return to_vio_dev(found);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -23,7 +23,7 @@ SECTIONS
|
||||
/* Sections to be discarded. */
|
||||
/DISCARD/ : {
|
||||
*(.exitcall.exit)
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
}
|
||||
|
||||
. = KERNELBASE;
|
||||
@@ -76,17 +76,19 @@ SECTIONS
|
||||
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
|
||||
/* .exit.text is discarded at runtime, not link time,
|
||||
* to deal with references from __bug_table
|
||||
*/
|
||||
.exit.text : { *(.exit.text) }
|
||||
.exit.text : {
|
||||
EXIT_TEXT
|
||||
}
|
||||
|
||||
.init.data : {
|
||||
*(.init.data);
|
||||
INIT_DATA
|
||||
__vtop_table_begin = .;
|
||||
*(.vtop_fixup);
|
||||
__vtop_table_end = .;
|
||||
|
Reference in New Issue
Block a user