Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Conflicts: drivers/firmware/iscsi_ibft.c
This commit is contained in:
@@ -59,7 +59,7 @@ static int __cpu_find_by(int (*compare)(int, int, void *), void *compare_arg,
|
||||
|
||||
cur_inst = 0;
|
||||
for_each_node_by_type(dp, "cpu") {
|
||||
int err = check_cpu_node(dp->node, &cur_inst,
|
||||
int err = check_cpu_node(dp->phandle, &cur_inst,
|
||||
compare, compare_arg,
|
||||
prom_node, mid);
|
||||
if (!err) {
|
||||
|
@@ -91,14 +91,3 @@ int __init ftrace_dyn_arch_init(void *data)
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FTRACE_SYSCALLS
|
||||
|
||||
extern unsigned int sys_call_table[];
|
||||
|
||||
unsigned long __init arch_syscall_addr(int nr)
|
||||
{
|
||||
return (unsigned long)sys_call_table[nr];
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -11,6 +11,10 @@ static inline bool kstack_valid(struct thread_info *tp, unsigned long sp)
|
||||
{
|
||||
unsigned long base = (unsigned long) tp;
|
||||
|
||||
/* Stack pointer must be 16-byte aligned. */
|
||||
if (sp & (16UL - 1))
|
||||
return false;
|
||||
|
||||
if (sp >= (base + sizeof(struct thread_info)) &&
|
||||
sp <= (base + THREAD_SIZE - sizeof(struct sparc_stackf)))
|
||||
return true;
|
||||
|
@@ -105,7 +105,7 @@ static unsigned long of_bus_sbus_get_flags(const u32 *addr, unsigned long flags)
|
||||
|
||||
static int of_bus_ambapp_match(struct device_node *np)
|
||||
{
|
||||
return !strcmp(np->name, "ambapp");
|
||||
return !strcmp(np->type, "ambapp");
|
||||
}
|
||||
|
||||
static void of_bus_ambapp_count_cells(struct device_node *child,
|
||||
@@ -433,7 +433,7 @@ build_resources:
|
||||
if (!parent)
|
||||
dev_set_name(&op->dev, "root");
|
||||
else
|
||||
dev_set_name(&op->dev, "%08x", dp->node);
|
||||
dev_set_name(&op->dev, "%08x", dp->phandle);
|
||||
|
||||
if (of_device_register(op)) {
|
||||
printk("%s: Could not register of device.\n",
|
||||
|
@@ -676,7 +676,7 @@ static struct of_device * __init scan_one_device(struct device_node *dp,
|
||||
if (!parent)
|
||||
dev_set_name(&op->dev, "root");
|
||||
else
|
||||
dev_set_name(&op->dev, "%08x", dp->node);
|
||||
dev_set_name(&op->dev, "%08x", dp->phandle);
|
||||
|
||||
if (of_device_register(op)) {
|
||||
printk("%s: Could not register of device.\n",
|
||||
|
@@ -247,6 +247,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||
struct pci_bus *bus, int devfn)
|
||||
{
|
||||
struct dev_archdata *sd;
|
||||
struct pci_slot *slot;
|
||||
struct of_device *op;
|
||||
struct pci_dev *dev;
|
||||
const char *type;
|
||||
@@ -286,6 +287,11 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||
dev->dev.bus = &pci_bus_type;
|
||||
dev->devfn = devfn;
|
||||
dev->multifunction = 0; /* maybe a lie? */
|
||||
set_pcie_port_type(dev);
|
||||
|
||||
list_for_each_entry(slot, &dev->bus->slots, list)
|
||||
if (PCI_SLOT(dev->devfn) == slot->number)
|
||||
dev->slot = slot;
|
||||
|
||||
dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff);
|
||||
dev->device = of_getintprop_default(node, "device-id", 0xffff);
|
||||
@@ -322,6 +328,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||
|
||||
dev->current_state = 4; /* unknown power state */
|
||||
dev->error_state = pci_channel_io_normal;
|
||||
dev->dma_mask = 0xffffffff;
|
||||
|
||||
if (!strcmp(node->name, "pci")) {
|
||||
/* a PCI-PCI bridge */
|
||||
@@ -715,9 +722,10 @@ void pcibios_update_irq(struct pci_dev *pdev, int irq)
|
||||
{
|
||||
}
|
||||
|
||||
void pcibios_align_resource(void *data, struct resource *res,
|
||||
resource_size_t size, resource_size_t align)
|
||||
resource_size_t pcibios_align_resource(void *data, const struct resource *res,
|
||||
resource_size_t size, resource_size_t align)
|
||||
{
|
||||
return res->start;
|
||||
}
|
||||
|
||||
int pcibios_enable_device(struct pci_dev *dev, int mask)
|
||||
|
@@ -768,9 +768,10 @@ char * __devinit pcibios_setup(char *str)
|
||||
return str;
|
||||
}
|
||||
|
||||
void pcibios_align_resource(void *data, struct resource *res,
|
||||
resource_size_t size, resource_size_t align)
|
||||
resource_size_t pcibios_align_resource(void *data, const struct resource *res,
|
||||
resource_size_t size, resource_size_t align)
|
||||
{
|
||||
return res->start;
|
||||
}
|
||||
|
||||
int pcibios_enable_device(struct pci_dev *pdev, int mask)
|
||||
|
@@ -980,10 +980,10 @@ static int collect_events(struct perf_event *group, int max_count,
|
||||
return n;
|
||||
}
|
||||
|
||||
static void event_sched_in(struct perf_event *event, int cpu)
|
||||
static void event_sched_in(struct perf_event *event)
|
||||
{
|
||||
event->state = PERF_EVENT_STATE_ACTIVE;
|
||||
event->oncpu = cpu;
|
||||
event->oncpu = smp_processor_id();
|
||||
event->tstamp_running += event->ctx->time - event->tstamp_stopped;
|
||||
if (is_software_event(event))
|
||||
event->pmu->enable(event);
|
||||
@@ -991,7 +991,7 @@ static void event_sched_in(struct perf_event *event, int cpu)
|
||||
|
||||
int hw_perf_group_sched_in(struct perf_event *group_leader,
|
||||
struct perf_cpu_context *cpuctx,
|
||||
struct perf_event_context *ctx, int cpu)
|
||||
struct perf_event_context *ctx)
|
||||
{
|
||||
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
|
||||
struct perf_event *sub;
|
||||
@@ -1015,10 +1015,10 @@ int hw_perf_group_sched_in(struct perf_event *group_leader,
|
||||
|
||||
cpuctx->active_oncpu += n;
|
||||
n = 1;
|
||||
event_sched_in(group_leader, cpu);
|
||||
event_sched_in(group_leader);
|
||||
list_for_each_entry(sub, &group_leader->sibling_list, group_entry) {
|
||||
if (sub->state != PERF_EVENT_STATE_OFF) {
|
||||
event_sched_in(sub, cpu);
|
||||
event_sched_in(sub);
|
||||
n++;
|
||||
}
|
||||
}
|
||||
|
@@ -4,9 +4,6 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <asm/prom.h>
|
||||
|
||||
extern struct device_node *allnodes; /* temporary while merging */
|
||||
extern rwlock_t devtree_lock; /* temporary while merging */
|
||||
|
||||
extern void * prom_early_alloc(unsigned long size);
|
||||
extern void irq_trans_init(struct device_node *dp);
|
||||
|
||||
|
@@ -37,18 +37,6 @@ EXPORT_SYMBOL(of_console_path);
|
||||
char *of_console_options;
|
||||
EXPORT_SYMBOL(of_console_options);
|
||||
|
||||
struct device_node *of_find_node_by_phandle(phandle handle)
|
||||
{
|
||||
struct device_node *np;
|
||||
|
||||
for (np = allnodes; np; np = np->allnext)
|
||||
if (np->node == handle)
|
||||
break;
|
||||
|
||||
return np;
|
||||
}
|
||||
EXPORT_SYMBOL(of_find_node_by_phandle);
|
||||
|
||||
int of_getintprop_default(struct device_node *np, const char *name, int def)
|
||||
{
|
||||
struct property *prop;
|
||||
@@ -89,7 +77,7 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
|
||||
void *old_val = prop->value;
|
||||
int ret;
|
||||
|
||||
ret = prom_setprop(dp->node, name, val, len);
|
||||
ret = prom_setprop(dp->phandle, name, val, len);
|
||||
|
||||
err = -EINVAL;
|
||||
if (ret >= 0) {
|
||||
@@ -236,7 +224,7 @@ static struct device_node * __init prom_create_node(phandle node,
|
||||
|
||||
dp->name = get_one_property(node, "name");
|
||||
dp->type = get_one_property(node, "device_type");
|
||||
dp->node = node;
|
||||
dp->phandle = node;
|
||||
|
||||
dp->properties = build_prop_list(node);
|
||||
|
||||
@@ -313,7 +301,7 @@ void __init prom_build_devicetree(void)
|
||||
|
||||
nextp = &allnodes->allnext;
|
||||
allnodes->child = prom_build_tree(allnodes,
|
||||
prom_getchild(allnodes->node),
|
||||
prom_getchild(allnodes->phandle),
|
||||
&nextp);
|
||||
of_console_init();
|
||||
|
||||
|
@@ -370,7 +370,7 @@ static int __cpuinit smp_boot_one_cpu(unsigned int cpu)
|
||||
} else {
|
||||
struct device_node *dp = of_find_node_by_cpuid(cpu);
|
||||
|
||||
prom_startcpu(dp->node, entry, cookie);
|
||||
prom_startcpu(dp->phandle, entry, cookie);
|
||||
}
|
||||
|
||||
for (timeout = 0; timeout < 50000; timeout++) {
|
||||
|
@@ -191,10 +191,12 @@ tsb_dtlb_load:
|
||||
|
||||
tsb_itlb_load:
|
||||
/* Executable bit must be set. */
|
||||
661: andcc %g5, _PAGE_EXEC_4U, %g0
|
||||
.section .sun4v_1insn_patch, "ax"
|
||||
661: sethi %hi(_PAGE_EXEC_4U), %g4
|
||||
andcc %g5, %g4, %g0
|
||||
.section .sun4v_2insn_patch, "ax"
|
||||
.word 661b
|
||||
andcc %g5, _PAGE_EXEC_4V, %g0
|
||||
nop
|
||||
.previous
|
||||
|
||||
be,pn %xcc, tsb_do_fault
|
||||
|
Reference in New Issue
Block a user