···119119 int *addrc, int *sizec);120120 int (*map)(u32 *addr, const u32 *range,121121 int na, int ns, int pna);122122- unsigned int (*get_flags)(const u32 *addr);122122+ unsigned long (*get_flags)(const u32 *addr, unsigned long);123123};124124125125/*···179179 return 0;180180}181181182182-static unsigned int of_bus_default_get_flags(const u32 *addr)182182+static unsigned long of_bus_default_get_flags(const u32 *addr, unsigned long flags)183183{184184+ if (flags)185185+ return flags;184186 return IORESOURCE_MEM;185187}186188···274272 return 0;275273}276274277277-static unsigned int of_bus_pci_get_flags(const u32 *addr)275275+static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)278276{279279- unsigned int flags = 0;280277 u32 w = addr[0];281278279279+ /* For PCI, we override whatever child busses may have used. */280280+ flags = 0;282281 switch((w >> 24) & 0x03) {283282 case 0x01:284283 flags |= IORESOURCE_IO;284284+ break;285285+285286 case 0x02: /* 32 bits */286287 case 0x03: /* 64 bits */287288 flags |= IORESOURCE_MEM;289289+ break;288290 }289291 if (w & 0x40000000)290292 flags |= IORESOURCE_PREFETCH;···516510 int pna, pns;517511518512 size = of_read_addr(reg + na, ns);519519- flags = bus->get_flags(reg);520520-521513 memcpy(addr, reg, na * 4);514514+515515+ flags = bus->get_flags(addr, 0);522516523517 if (use_1to1_mapping(pp)) {524518 result = of_read_addr(addr, na);···543537 if (build_one_resource(dp, dbus, pbus, addr,544538 dna, dns, pna))545539 break;540540+541541+ flags = pbus->get_flags(addr, flags);546542547543 dna = pna;548544 dns = pns;
+6-8
arch/sparc64/kernel/smp.c
···8080 i, cpu_data(i).clock_tick);8181}82828383-static __cacheline_aligned_in_smp DEFINE_SPINLOCK(call_lock);8484-8583extern void setup_sparc64_timer(void);86848785static volatile unsigned long callin_flag = 0;···118120 while (!cpu_isset(cpuid, smp_commenced_mask))119121 rmb();120122121121- spin_lock(&call_lock);123123+ ipi_call_lock();122124 cpu_set(cpuid, cpu_online_map);123123- spin_unlock(&call_lock);125125+ ipi_call_unlock();124126125127 /* idle thread is expected to have preempt disabled */126128 preempt_disable();···13031305 c->core_id = 0;13041306 c->proc_id = -1;1305130713061306- spin_lock(&call_lock);13071307- cpu_clear(cpu, cpu_online_map);13081308- spin_unlock(&call_lock);13091309-13101308 smp_wmb();1311130913121310 /* Make sure no interrupts point to this cpu. */···13111317 local_irq_enable();13121318 mdelay(1);13131319 local_irq_disable();13201320+13211321+ ipi_call_lock();13221322+ cpu_clear(cpu, cpu_online_map);13231323+ ipi_call_unlock();1314132413151325 return 0;13161326}
+1-1
arch/sparc64/mm/init.c
···18751875 * memory list again, and make sure it provides at least as much18761876 * memory as 'pavail' does.18771877 */18781878-static void setup_valid_addr_bitmap_from_pavail(void)18781878+static void __init setup_valid_addr_bitmap_from_pavail(void)18791879{18801880 int i;18811881