diff options
| author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-01-08 00:24:38 -0500 |
|---|---|---|
| committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-01-08 00:24:38 -0500 |
| commit | 24f030175d30f019be41766cdf88c2ff03de19ff (patch) | |
| tree | 354232a84e82d5a721ed7b1a9af580ff2a59be8f /arch/alpha/kernel | |
| parent | 4aa12f7b927c3cac0e0cf3503642597527d0ece0 (diff) | |
| parent | 9e42d0cf5020aaf217433cad1a224745241d212a (diff) | |
Merge commit 'origin/master' into next
Diffstat (limited to 'arch/alpha/kernel')
| -rw-r--r-- | arch/alpha/kernel/Makefile | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/binfmt_loader.c | 51 | ||||
| -rw-r--r-- | arch/alpha/kernel/irq.c | 5 | ||||
| -rw-r--r-- | arch/alpha/kernel/pci.c | 18 | ||||
| -rw-r--r-- | arch/alpha/kernel/pci_impl.h | 13 | ||||
| -rw-r--r-- | arch/alpha/kernel/process.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/setup.c | 5 | ||||
| -rw-r--r-- | arch/alpha/kernel/smp.c | 7 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_dp264.c | 10 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_eiger.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_miata.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_noritake.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_ruffian.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_sable.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/sys_titan.c | 4 |
15 files changed, 80 insertions, 47 deletions
diff --git a/arch/alpha/kernel/Makefile b/arch/alpha/kernel/Makefile index ac706c1d7ada..b4697759a123 100644 --- a/arch/alpha/kernel/Makefile +++ b/arch/alpha/kernel/Makefile | |||
| @@ -8,7 +8,7 @@ EXTRA_CFLAGS := -Werror -Wno-sign-compare | |||
| 8 | 8 | ||
| 9 | obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \ | 9 | obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \ |
| 10 | irq_alpha.o signal.o setup.o ptrace.o time.o \ | 10 | irq_alpha.o signal.o setup.o ptrace.o time.o \ |
| 11 | alpha_ksyms.o systbls.o err_common.o io.o | 11 | alpha_ksyms.o systbls.o err_common.o io.o binfmt_loader.o |
| 12 | 12 | ||
| 13 | obj-$(CONFIG_VGA_HOSE) += console.o | 13 | obj-$(CONFIG_VGA_HOSE) += console.o |
| 14 | obj-$(CONFIG_SMP) += smp.o | 14 | obj-$(CONFIG_SMP) += smp.o |
diff --git a/arch/alpha/kernel/binfmt_loader.c b/arch/alpha/kernel/binfmt_loader.c new file mode 100644 index 000000000000..4a0af906b00a --- /dev/null +++ b/arch/alpha/kernel/binfmt_loader.c | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | #include <linux/init.h> | ||
| 2 | #include <linux/fs.h> | ||
| 3 | #include <linux/file.h> | ||
| 4 | #include <linux/mm_types.h> | ||
| 5 | #include <linux/binfmts.h> | ||
| 6 | #include <linux/a.out.h> | ||
| 7 | |||
| 8 | static int load_binary(struct linux_binprm *bprm, struct pt_regs *regs) | ||
| 9 | { | ||
| 10 | struct exec *eh = (struct exec *)bprm->buf; | ||
| 11 | unsigned long loader; | ||
| 12 | struct file *file; | ||
| 13 | int retval; | ||
| 14 | |||
| 15 | if (eh->fh.f_magic != 0x183 || (eh->fh.f_flags & 0x3000) != 0x3000) | ||
| 16 | return -ENOEXEC; | ||
| 17 | |||
| 18 | if (bprm->loader) | ||
| 19 | return -ENOEXEC; | ||
| 20 | |||
| 21 | allow_write_access(bprm->file); | ||
| 22 | fput(bprm->file); | ||
| 23 | bprm->file = NULL; | ||
| 24 | |||
| 25 | loader = bprm->vma->vm_end - sizeof(void *); | ||
| 26 | |||
| 27 | file = open_exec("/sbin/loader"); | ||
| 28 | retval = PTR_ERR(file); | ||
| 29 | if (IS_ERR(file)) | ||
| 30 | return retval; | ||
| 31 | |||
| 32 | /* Remember if the application is TASO. */ | ||
| 33 | bprm->taso = eh->ah.entry < 0x100000000UL; | ||
| 34 | |||
| 35 | bprm->file = file; | ||
| 36 | bprm->loader = loader; | ||
| 37 | retval = prepare_binprm(bprm); | ||
| 38 | if (retval < 0) | ||
| 39 | return retval; | ||
| 40 | return search_binary_handler(bprm,regs); | ||
| 41 | } | ||
| 42 | |||
| 43 | static struct linux_binfmt loader_format = { | ||
| 44 | .load_binary = load_binary, | ||
| 45 | }; | ||
| 46 | |||
| 47 | static int __init init_loader_binfmt(void) | ||
| 48 | { | ||
| 49 | return register_binfmt(&loader_format); | ||
| 50 | } | ||
| 51 | arch_initcall(init_loader_binfmt); | ||
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index c626a821cdcb..703731accda6 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c | |||
| @@ -50,12 +50,13 @@ int irq_select_affinity(unsigned int irq) | |||
| 50 | if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq]) | 50 | if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq]) |
| 51 | return 1; | 51 | return 1; |
| 52 | 52 | ||
| 53 | while (!cpu_possible(cpu) || !cpu_isset(cpu, irq_default_affinity)) | 53 | while (!cpu_possible(cpu) || |
| 54 | !cpumask_test_cpu(cpu, irq_default_affinity)) | ||
| 54 | cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); | 55 | cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); |
| 55 | last_cpu = cpu; | 56 | last_cpu = cpu; |
| 56 | 57 | ||
| 57 | irq_desc[irq].affinity = cpumask_of_cpu(cpu); | 58 | irq_desc[irq].affinity = cpumask_of_cpu(cpu); |
| 58 | irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu)); | 59 | irq_desc[irq].chip->set_affinity(irq, cpumask_of(cpu)); |
| 59 | return 0; | 60 | return 0; |
| 60 | } | 61 | } |
| 61 | #endif /* CONFIG_SMP */ | 62 | #endif /* CONFIG_SMP */ |
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index ff8cb638472e..a3b938811400 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
| @@ -320,24 +320,6 @@ pcibios_update_irq(struct pci_dev *dev, int irq) | |||
| 320 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); | 320 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | /* Most Alphas have straight-forward swizzling needs. */ | ||
| 324 | |||
| 325 | u8 __init | ||
| 326 | common_swizzle(struct pci_dev *dev, u8 *pinp) | ||
| 327 | { | ||
| 328 | u8 pin = *pinp; | ||
| 329 | |||
| 330 | while (dev->bus->parent) { | ||
| 331 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); | ||
| 332 | /* Move up the chain of bridges. */ | ||
| 333 | dev = dev->bus->self; | ||
| 334 | } | ||
| 335 | *pinp = pin; | ||
| 336 | |||
| 337 | /* The slot is the slot of the last bridge. */ | ||
| 338 | return PCI_SLOT(dev->devfn); | ||
| 339 | } | ||
| 340 | |||
| 341 | void | 323 | void |
| 342 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, | 324 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, |
| 343 | struct resource *res) | 325 | struct resource *res) |
diff --git a/arch/alpha/kernel/pci_impl.h b/arch/alpha/kernel/pci_impl.h index f8b74995a002..00edd04b585e 100644 --- a/arch/alpha/kernel/pci_impl.h +++ b/arch/alpha/kernel/pci_impl.h | |||
| @@ -106,16 +106,11 @@ struct pci_iommu_arena; | |||
| 106 | * Where A = pin 1, B = pin 2 and so on and pin=0 = default = A. | 106 | * Where A = pin 1, B = pin 2 and so on and pin=0 = default = A. |
| 107 | * Thus, each swizzle is ((pin-1) + (device#-4)) % 4 | 107 | * Thus, each swizzle is ((pin-1) + (device#-4)) % 4 |
| 108 | * | 108 | * |
| 109 | * The following code swizzles for exactly one bridge. The routine | 109 | * pci_swizzle_interrupt_pin() swizzles for exactly one bridge. The routine |
| 110 | * common_swizzle below handles multiple bridges. But there are a | 110 | * pci_common_swizzle() handles multiple bridges. But there are a |
| 111 | * couple boards that do strange things, so we define this here. | 111 | * couple boards that do strange things. |
| 112 | */ | 112 | */ |
| 113 | 113 | ||
| 114 | static inline u8 bridge_swizzle(u8 pin, u8 slot) | ||
| 115 | { | ||
| 116 | return (((pin-1) + slot) % 4) + 1; | ||
| 117 | } | ||
| 118 | |||
| 119 | 114 | ||
| 120 | /* The following macro is used to implement the table-based irq mapping | 115 | /* The following macro is used to implement the table-based irq mapping |
| 121 | function for all single-bus Alphas. */ | 116 | function for all single-bus Alphas. */ |
| @@ -184,7 +179,7 @@ extern int pci_probe_only; | |||
| 184 | extern unsigned long alpha_agpgart_size; | 179 | extern unsigned long alpha_agpgart_size; |
| 185 | 180 | ||
| 186 | extern void common_init_pci(void); | 181 | extern void common_init_pci(void); |
| 187 | extern u8 common_swizzle(struct pci_dev *, u8 *); | 182 | #define common_swizzle pci_common_swizzle |
| 188 | extern struct pci_controller *alloc_pci_controller(void); | 183 | extern struct pci_controller *alloc_pci_controller(void); |
| 189 | extern struct resource *alloc_resource(void); | 184 | extern struct resource *alloc_resource(void); |
| 190 | 185 | ||
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index 351407e07e71..f238370c907d 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c | |||
| @@ -94,6 +94,7 @@ common_shutdown_1(void *generic_ptr) | |||
| 94 | flags |= 0x00040000UL; /* "remain halted" */ | 94 | flags |= 0x00040000UL; /* "remain halted" */ |
| 95 | *pflags = flags; | 95 | *pflags = flags; |
| 96 | cpu_clear(cpuid, cpu_present_map); | 96 | cpu_clear(cpuid, cpu_present_map); |
| 97 | cpu_clear(cpuid, cpu_possible_map); | ||
| 97 | halt(); | 98 | halt(); |
| 98 | } | 99 | } |
| 99 | #endif | 100 | #endif |
| @@ -120,6 +121,7 @@ common_shutdown_1(void *generic_ptr) | |||
| 120 | #ifdef CONFIG_SMP | 121 | #ifdef CONFIG_SMP |
| 121 | /* Wait for the secondaries to halt. */ | 122 | /* Wait for the secondaries to halt. */ |
| 122 | cpu_clear(boot_cpuid, cpu_present_map); | 123 | cpu_clear(boot_cpuid, cpu_present_map); |
| 124 | cpu_clear(boot_cpuid, cpu_possible_map); | ||
| 123 | while (cpus_weight(cpu_present_map)) | 125 | while (cpus_weight(cpu_present_map)) |
| 124 | barrier(); | 126 | barrier(); |
| 125 | #endif | 127 | #endif |
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c index a449e999027c..02bee6983ce2 100644 --- a/arch/alpha/kernel/setup.c +++ b/arch/alpha/kernel/setup.c | |||
| @@ -79,6 +79,11 @@ int alpha_l3_cacheshape; | |||
| 79 | unsigned long alpha_verbose_mcheck = CONFIG_VERBOSE_MCHECK_ON; | 79 | unsigned long alpha_verbose_mcheck = CONFIG_VERBOSE_MCHECK_ON; |
| 80 | #endif | 80 | #endif |
| 81 | 81 | ||
| 82 | #ifdef CONFIG_NUMA | ||
| 83 | struct cpumask node_to_cpumask_map[MAX_NUMNODES] __read_mostly; | ||
| 84 | EXPORT_SYMBOL(node_to_cpumask_map); | ||
| 85 | #endif | ||
| 86 | |||
| 82 | /* Which processor we booted from. */ | 87 | /* Which processor we booted from. */ |
| 83 | int boot_cpuid; | 88 | int boot_cpuid; |
| 84 | 89 | ||
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index cf7da10097bb..d953e510f68d 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
| @@ -70,11 +70,6 @@ enum ipi_message_type { | |||
| 70 | /* Set to a secondary's cpuid when it comes online. */ | 70 | /* Set to a secondary's cpuid when it comes online. */ |
| 71 | static int smp_secondary_alive __devinitdata = 0; | 71 | static int smp_secondary_alive __devinitdata = 0; |
| 72 | 72 | ||
| 73 | /* Which cpus ids came online. */ | ||
| 74 | cpumask_t cpu_online_map; | ||
| 75 | |||
| 76 | EXPORT_SYMBOL(cpu_online_map); | ||
| 77 | |||
| 78 | int smp_num_probed; /* Internal processor count */ | 73 | int smp_num_probed; /* Internal processor count */ |
| 79 | int smp_num_cpus = 1; /* Number that came online. */ | 74 | int smp_num_cpus = 1; /* Number that came online. */ |
| 80 | EXPORT_SYMBOL(smp_num_cpus); | 75 | EXPORT_SYMBOL(smp_num_cpus); |
| @@ -440,6 +435,7 @@ setup_smp(void) | |||
| 440 | ((char *)cpubase + i*hwrpb->processor_size); | 435 | ((char *)cpubase + i*hwrpb->processor_size); |
| 441 | if ((cpu->flags & 0x1cc) == 0x1cc) { | 436 | if ((cpu->flags & 0x1cc) == 0x1cc) { |
| 442 | smp_num_probed++; | 437 | smp_num_probed++; |
| 438 | cpu_set(i, cpu_possible_map); | ||
| 443 | cpu_set(i, cpu_present_map); | 439 | cpu_set(i, cpu_present_map); |
| 444 | cpu->pal_revision = boot_cpu_palrev; | 440 | cpu->pal_revision = boot_cpu_palrev; |
| 445 | } | 441 | } |
| @@ -473,6 +469,7 @@ smp_prepare_cpus(unsigned int max_cpus) | |||
| 473 | 469 | ||
| 474 | /* Nothing to do on a UP box, or when told not to. */ | 470 | /* Nothing to do on a UP box, or when told not to. */ |
| 475 | if (smp_num_probed == 1 || max_cpus == 0) { | 471 | if (smp_num_probed == 1 || max_cpus == 0) { |
| 472 | cpu_possible_map = cpumask_of_cpu(boot_cpuid); | ||
| 476 | cpu_present_map = cpumask_of_cpu(boot_cpuid); | 473 | cpu_present_map = cpumask_of_cpu(boot_cpuid); |
| 477 | printk(KERN_INFO "SMP mode deactivated.\n"); | 474 | printk(KERN_INFO "SMP mode deactivated.\n"); |
| 478 | return; | 475 | return; |
diff --git a/arch/alpha/kernel/sys_dp264.c b/arch/alpha/kernel/sys_dp264.c index c71b0fd7a61f..9c9d1fd4155f 100644 --- a/arch/alpha/kernel/sys_dp264.c +++ b/arch/alpha/kernel/sys_dp264.c | |||
| @@ -177,19 +177,19 @@ cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity) | |||
| 177 | } | 177 | } |
| 178 | 178 | ||
| 179 | static void | 179 | static void |
| 180 | dp264_set_affinity(unsigned int irq, cpumask_t affinity) | 180 | dp264_set_affinity(unsigned int irq, const struct cpumask *affinity) |
| 181 | { | 181 | { |
| 182 | spin_lock(&dp264_irq_lock); | 182 | spin_lock(&dp264_irq_lock); |
| 183 | cpu_set_irq_affinity(irq, affinity); | 183 | cpu_set_irq_affinity(irq, *affinity); |
| 184 | tsunami_update_irq_hw(cached_irq_mask); | 184 | tsunami_update_irq_hw(cached_irq_mask); |
| 185 | spin_unlock(&dp264_irq_lock); | 185 | spin_unlock(&dp264_irq_lock); |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | static void | 188 | static void |
| 189 | clipper_set_affinity(unsigned int irq, cpumask_t affinity) | 189 | clipper_set_affinity(unsigned int irq, const struct cpumask *affinity) |
| 190 | { | 190 | { |
| 191 | spin_lock(&dp264_irq_lock); | 191 | spin_lock(&dp264_irq_lock); |
| 192 | cpu_set_irq_affinity(irq - 16, affinity); | 192 | cpu_set_irq_affinity(irq - 16, *affinity); |
| 193 | tsunami_update_irq_hw(cached_irq_mask); | 193 | tsunami_update_irq_hw(cached_irq_mask); |
| 194 | spin_unlock(&dp264_irq_lock); | 194 | spin_unlock(&dp264_irq_lock); |
| 195 | } | 195 | } |
| @@ -481,7 +481,7 @@ monet_swizzle(struct pci_dev *dev, u8 *pinp) | |||
| 481 | slot = PCI_SLOT(dev->devfn); | 481 | slot = PCI_SLOT(dev->devfn); |
| 482 | break; | 482 | break; |
| 483 | } | 483 | } |
| 484 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ; | 484 | pin = pci_swizzle_interrupt_pin(dev, pin); |
| 485 | 485 | ||
| 486 | /* Move up the chain of bridges. */ | 486 | /* Move up the chain of bridges. */ |
| 487 | dev = dev->bus->self; | 487 | dev = dev->bus->self; |
diff --git a/arch/alpha/kernel/sys_eiger.c b/arch/alpha/kernel/sys_eiger.c index 7ef3b6fb3700..baf60f36cbd7 100644 --- a/arch/alpha/kernel/sys_eiger.c +++ b/arch/alpha/kernel/sys_eiger.c | |||
| @@ -204,7 +204,7 @@ eiger_swizzle(struct pci_dev *dev, u8 *pinp) | |||
| 204 | break; | 204 | break; |
| 205 | } | 205 | } |
| 206 | /* Must be a card-based bridge. */ | 206 | /* Must be a card-based bridge. */ |
| 207 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); | 207 | pin = pci_swizzle_interrupt_pin(dev, pin); |
| 208 | 208 | ||
| 209 | /* Move up the chain of bridges. */ | 209 | /* Move up the chain of bridges. */ |
| 210 | dev = dev->bus->self; | 210 | dev = dev->bus->self; |
diff --git a/arch/alpha/kernel/sys_miata.c b/arch/alpha/kernel/sys_miata.c index 910b43cd63e8..61ccd95579ec 100644 --- a/arch/alpha/kernel/sys_miata.c +++ b/arch/alpha/kernel/sys_miata.c | |||
| @@ -219,7 +219,7 @@ miata_swizzle(struct pci_dev *dev, u8 *pinp) | |||
| 219 | slot = PCI_SLOT(dev->devfn) + 9; | 219 | slot = PCI_SLOT(dev->devfn) + 9; |
| 220 | break; | 220 | break; |
| 221 | } | 221 | } |
| 222 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); | 222 | pin = pci_swizzle_interrupt_pin(dev, pin); |
| 223 | 223 | ||
| 224 | /* Move up the chain of bridges. */ | 224 | /* Move up the chain of bridges. */ |
| 225 | dev = dev->bus->self; | 225 | dev = dev->bus->self; |
diff --git a/arch/alpha/kernel/sys_noritake.c b/arch/alpha/kernel/sys_noritake.c index eb2a1d63f484..538876b62449 100644 --- a/arch/alpha/kernel/sys_noritake.c +++ b/arch/alpha/kernel/sys_noritake.c | |||
| @@ -257,7 +257,7 @@ noritake_swizzle(struct pci_dev *dev, u8 *pinp) | |||
| 257 | slot = PCI_SLOT(dev->devfn) + 15; | 257 | slot = PCI_SLOT(dev->devfn) + 15; |
| 258 | break; | 258 | break; |
| 259 | } | 259 | } |
| 260 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ; | 260 | pin = pci_swizzle_interrupt_pin(dev, pin); |
| 261 | 261 | ||
| 262 | /* Move up the chain of bridges. */ | 262 | /* Move up the chain of bridges. */ |
| 263 | dev = dev->bus->self; | 263 | dev = dev->bus->self; |
diff --git a/arch/alpha/kernel/sys_ruffian.c b/arch/alpha/kernel/sys_ruffian.c index 5b99cf3cd69c..f15a329b6011 100644 --- a/arch/alpha/kernel/sys_ruffian.c +++ b/arch/alpha/kernel/sys_ruffian.c | |||
| @@ -160,7 +160,7 @@ ruffian_swizzle(struct pci_dev *dev, u8 *pinp) | |||
| 160 | slot = PCI_SLOT(dev->devfn) + 10; | 160 | slot = PCI_SLOT(dev->devfn) + 10; |
| 161 | break; | 161 | break; |
| 162 | } | 162 | } |
| 163 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); | 163 | pin = pci_swizzle_interrupt_pin(dev, pin); |
| 164 | 164 | ||
| 165 | /* Move up the chain of bridges. */ | 165 | /* Move up the chain of bridges. */ |
| 166 | dev = dev->bus->self; | 166 | dev = dev->bus->self; |
diff --git a/arch/alpha/kernel/sys_sable.c b/arch/alpha/kernel/sys_sable.c index a4555f497639..d232e42be018 100644 --- a/arch/alpha/kernel/sys_sable.c +++ b/arch/alpha/kernel/sys_sable.c | |||
| @@ -425,7 +425,7 @@ lynx_swizzle(struct pci_dev *dev, u8 *pinp) | |||
| 425 | slot = PCI_SLOT(dev->devfn) + 11; | 425 | slot = PCI_SLOT(dev->devfn) + 11; |
| 426 | break; | 426 | break; |
| 427 | } | 427 | } |
| 428 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ; | 428 | pin = pci_swizzle_interrupt_pin(dev, pin); |
| 429 | 429 | ||
| 430 | /* Move up the chain of bridges. */ | 430 | /* Move up the chain of bridges. */ |
| 431 | dev = dev->bus->self; | 431 | dev = dev->bus->self; |
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c index 52c91ccc1648..27f840a4ad3d 100644 --- a/arch/alpha/kernel/sys_titan.c +++ b/arch/alpha/kernel/sys_titan.c | |||
| @@ -158,10 +158,10 @@ titan_cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity) | |||
| 158 | } | 158 | } |
| 159 | 159 | ||
| 160 | static void | 160 | static void |
| 161 | titan_set_irq_affinity(unsigned int irq, cpumask_t affinity) | 161 | titan_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) |
| 162 | { | 162 | { |
| 163 | spin_lock(&titan_irq_lock); | 163 | spin_lock(&titan_irq_lock); |
| 164 | titan_cpu_set_irq_affinity(irq - 16, affinity); | 164 | titan_cpu_set_irq_affinity(irq - 16, *affinity); |
| 165 | titan_update_irq_hw(titan_cached_irq_mask); | 165 | titan_update_irq_hw(titan_cached_irq_mask); |
| 166 | spin_unlock(&titan_irq_lock); | 166 | spin_unlock(&titan_irq_lock); |
| 167 | } | 167 | } |
