diff options
| -rw-r--r-- | arch/parisc/include/asm/bug.h | 4 | ||||
| -rw-r--r-- | arch/parisc/include/asm/ftrace.h | 14 | ||||
| -rw-r--r-- | arch/parisc/kernel/asm-offsets.c | 3 | ||||
| -rw-r--r-- | arch/parisc/kernel/irq.c | 4 | ||||
| -rw-r--r-- | arch/parisc/kernel/signal.c | 1 | ||||
| -rw-r--r-- | arch/parisc/kernel/smp.c | 9 | ||||
| -rw-r--r-- | arch/parisc/kernel/unwind.c | 50 | ||||
| -rw-r--r-- | drivers/parisc/dino.c | 2 | ||||
| -rw-r--r-- | drivers/parisc/eisa.c | 2 | ||||
| -rw-r--r-- | drivers/parisc/gsc.c | 2 | ||||
| -rw-r--r-- | drivers/parisc/iosapic.c | 2 | ||||
| -rw-r--r-- | drivers/parisc/led.c | 59 | ||||
| -rw-r--r-- | drivers/parisc/superio.c | 2 |
13 files changed, 94 insertions, 60 deletions
diff --git a/arch/parisc/include/asm/bug.h b/arch/parisc/include/asm/bug.h index 8cfc553fc837..75e46c557a16 100644 --- a/arch/parisc/include/asm/bug.h +++ b/arch/parisc/include/asm/bug.h | |||
| @@ -32,14 +32,14 @@ | |||
| 32 | "\t.popsection" \ | 32 | "\t.popsection" \ |
| 33 | : : "i" (__FILE__), "i" (__LINE__), \ | 33 | : : "i" (__FILE__), "i" (__LINE__), \ |
| 34 | "i" (0), "i" (sizeof(struct bug_entry)) ); \ | 34 | "i" (0), "i" (sizeof(struct bug_entry)) ); \ |
| 35 | for(;;) ; \ | 35 | unreachable(); \ |
| 36 | } while(0) | 36 | } while(0) |
| 37 | 37 | ||
| 38 | #else | 38 | #else |
| 39 | #define BUG() \ | 39 | #define BUG() \ |
| 40 | do { \ | 40 | do { \ |
| 41 | asm volatile(PARISC_BUG_BREAK_ASM : : ); \ | 41 | asm volatile(PARISC_BUG_BREAK_ASM : : ); \ |
| 42 | for(;;) ; \ | 42 | unreachable(); \ |
| 43 | } while(0) | 43 | } while(0) |
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||
diff --git a/arch/parisc/include/asm/ftrace.h b/arch/parisc/include/asm/ftrace.h index 2fa05dd6aeee..72c0fafaa039 100644 --- a/arch/parisc/include/asm/ftrace.h +++ b/arch/parisc/include/asm/ftrace.h | |||
| @@ -20,6 +20,20 @@ struct ftrace_ret_stack { | |||
| 20 | * Defined in entry.S | 20 | * Defined in entry.S |
| 21 | */ | 21 | */ |
| 22 | extern void return_to_handler(void); | 22 | extern void return_to_handler(void); |
| 23 | |||
| 24 | |||
| 25 | extern unsigned long return_address(unsigned int); | ||
| 26 | |||
| 27 | #define HAVE_ARCH_CALLER_ADDR | ||
| 28 | |||
| 29 | #define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) | ||
| 30 | #define CALLER_ADDR1 return_address(1) | ||
| 31 | #define CALLER_ADDR2 return_address(2) | ||
| 32 | #define CALLER_ADDR3 return_address(3) | ||
| 33 | #define CALLER_ADDR4 return_address(4) | ||
| 34 | #define CALLER_ADDR5 return_address(5) | ||
| 35 | #define CALLER_ADDR6 return_address(6) | ||
| 36 | |||
| 23 | #endif /* __ASSEMBLY__ */ | 37 | #endif /* __ASSEMBLY__ */ |
| 24 | 38 | ||
| 25 | #endif /* _ASM_PARISC_FTRACE_H */ | 39 | #endif /* _ASM_PARISC_FTRACE_H */ |
diff --git a/arch/parisc/kernel/asm-offsets.c b/arch/parisc/kernel/asm-offsets.c index fcd3c707bf12..ec787b411e9a 100644 --- a/arch/parisc/kernel/asm-offsets.c +++ b/arch/parisc/kernel/asm-offsets.c | |||
| @@ -244,9 +244,6 @@ int main(void) | |||
| 244 | DEFINE(THREAD_SZ, sizeof(struct thread_info)); | 244 | DEFINE(THREAD_SZ, sizeof(struct thread_info)); |
| 245 | DEFINE(THREAD_SZ_ALGN, align(sizeof(struct thread_info), 64)); | 245 | DEFINE(THREAD_SZ_ALGN, align(sizeof(struct thread_info), 64)); |
| 246 | BLANK(); | 246 | BLANK(); |
| 247 | DEFINE(IRQSTAT_SIRQ_PEND, offsetof(irq_cpustat_t, __softirq_pending)); | ||
| 248 | DEFINE(IRQSTAT_SZ, sizeof(irq_cpustat_t)); | ||
| 249 | BLANK(); | ||
| 250 | DEFINE(ICACHE_BASE, offsetof(struct pdc_cache_info, ic_base)); | 247 | DEFINE(ICACHE_BASE, offsetof(struct pdc_cache_info, ic_base)); |
| 251 | DEFINE(ICACHE_STRIDE, offsetof(struct pdc_cache_info, ic_stride)); | 248 | DEFINE(ICACHE_STRIDE, offsetof(struct pdc_cache_info, ic_stride)); |
| 252 | DEFINE(ICACHE_COUNT, offsetof(struct pdc_cache_info, ic_count)); | 249 | DEFINE(ICACHE_COUNT, offsetof(struct pdc_cache_info, ic_count)); |
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index f47465e8d040..efbcee5d2220 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
| @@ -145,7 +145,7 @@ static int cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) | |||
| 145 | #endif | 145 | #endif |
| 146 | 146 | ||
| 147 | static struct irq_chip cpu_interrupt_type = { | 147 | static struct irq_chip cpu_interrupt_type = { |
| 148 | .typename = "CPU", | 148 | .name = "CPU", |
| 149 | .startup = cpu_startup_irq, | 149 | .startup = cpu_startup_irq, |
| 150 | .shutdown = cpu_disable_irq, | 150 | .shutdown = cpu_disable_irq, |
| 151 | .enable = cpu_enable_irq, | 151 | .enable = cpu_enable_irq, |
| @@ -192,7 +192,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
| 192 | seq_printf(p, "%10u ", kstat_irqs(i)); | 192 | seq_printf(p, "%10u ", kstat_irqs(i)); |
| 193 | #endif | 193 | #endif |
| 194 | 194 | ||
| 195 | seq_printf(p, " %14s", irq_desc[i].chip->typename); | 195 | seq_printf(p, " %14s", irq_desc[i].chip->name); |
| 196 | #ifndef PARISC_IRQ_CR16_COUNTS | 196 | #ifndef PARISC_IRQ_CR16_COUNTS |
| 197 | seq_printf(p, " %s", action->name); | 197 | seq_printf(p, " %s", action->name); |
| 198 | 198 | ||
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index e8467e4aa8d1..fb37ac52e46c 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #include <linux/stddef.h> | 26 | #include <linux/stddef.h> |
| 27 | #include <linux/compat.h> | 27 | #include <linux/compat.h> |
| 28 | #include <linux/elf.h> | 28 | #include <linux/elf.h> |
| 29 | #include <linux/tracehook.h> | ||
| 30 | #include <asm/ucontext.h> | 29 | #include <asm/ucontext.h> |
| 31 | #include <asm/rt_sigframe.h> | 30 | #include <asm/rt_sigframe.h> |
| 32 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c index 1fd0f0cec037..3f2fce8ce6b6 100644 --- a/arch/parisc/kernel/smp.c +++ b/arch/parisc/kernel/smp.c | |||
| @@ -60,8 +60,6 @@ static int smp_debug_lvl = 0; | |||
| 60 | #define smp_debug(lvl, ...) do { } while(0) | 60 | #define smp_debug(lvl, ...) do { } while(0) |
| 61 | #endif /* DEBUG_SMP */ | 61 | #endif /* DEBUG_SMP */ |
| 62 | 62 | ||
| 63 | DEFINE_SPINLOCK(smp_lock); | ||
| 64 | |||
| 65 | volatile struct task_struct *smp_init_current_idle_task; | 63 | volatile struct task_struct *smp_init_current_idle_task; |
| 66 | 64 | ||
| 67 | /* track which CPU is booting */ | 65 | /* track which CPU is booting */ |
| @@ -69,7 +67,7 @@ static volatile int cpu_now_booting __cpuinitdata; | |||
| 69 | 67 | ||
| 70 | static int parisc_max_cpus __cpuinitdata = 1; | 68 | static int parisc_max_cpus __cpuinitdata = 1; |
| 71 | 69 | ||
| 72 | DEFINE_PER_CPU(spinlock_t, ipi_lock) = SPIN_LOCK_UNLOCKED; | 70 | static DEFINE_PER_CPU(spinlock_t, ipi_lock); |
| 73 | 71 | ||
| 74 | enum ipi_message_type { | 72 | enum ipi_message_type { |
| 75 | IPI_NOP=0, | 73 | IPI_NOP=0, |
| @@ -438,6 +436,11 @@ void __init smp_prepare_boot_cpu(void) | |||
| 438 | */ | 436 | */ |
| 439 | void __init smp_prepare_cpus(unsigned int max_cpus) | 437 | void __init smp_prepare_cpus(unsigned int max_cpus) |
| 440 | { | 438 | { |
| 439 | int cpu; | ||
| 440 | |||
| 441 | for_each_possible_cpu(cpu) | ||
| 442 | spin_lock_init(&per_cpu(ipi_lock, cpu)); | ||
| 443 | |||
| 441 | init_cpu_present(cpumask_of(0)); | 444 | init_cpu_present(cpumask_of(0)); |
| 442 | 445 | ||
| 443 | parisc_max_cpus = max_cpus; | 446 | parisc_max_cpus = max_cpus; |
diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c index a36799e85693..d58eac1a8288 100644 --- a/arch/parisc/kernel/unwind.c +++ b/arch/parisc/kernel/unwind.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
| 14 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
| 15 | #include <linux/kallsyms.h> | 15 | #include <linux/kallsyms.h> |
| 16 | #include <linux/sort.h> | ||
| 16 | 17 | ||
| 17 | #include <asm/uaccess.h> | 18 | #include <asm/uaccess.h> |
| 18 | #include <asm/assembly.h> | 19 | #include <asm/assembly.h> |
| @@ -115,24 +116,18 @@ unwind_table_init(struct unwind_table *table, const char *name, | |||
| 115 | } | 116 | } |
| 116 | } | 117 | } |
| 117 | 118 | ||
| 119 | static int cmp_unwind_table_entry(const void *a, const void *b) | ||
| 120 | { | ||
| 121 | return ((const struct unwind_table_entry *)a)->region_start | ||
| 122 | - ((const struct unwind_table_entry *)b)->region_start; | ||
| 123 | } | ||
| 124 | |||
| 118 | static void | 125 | static void |
| 119 | unwind_table_sort(struct unwind_table_entry *start, | 126 | unwind_table_sort(struct unwind_table_entry *start, |
| 120 | struct unwind_table_entry *finish) | 127 | struct unwind_table_entry *finish) |
| 121 | { | 128 | { |
| 122 | struct unwind_table_entry el, *p, *q; | 129 | sort(start, finish - start, sizeof(struct unwind_table_entry), |
| 123 | 130 | cmp_unwind_table_entry, NULL); | |
| 124 | for (p = start + 1; p < finish; ++p) { | ||
| 125 | if (p[0].region_start < p[-1].region_start) { | ||
| 126 | el = *p; | ||
| 127 | q = p; | ||
| 128 | do { | ||
| 129 | q[0] = q[-1]; | ||
| 130 | --q; | ||
| 131 | } while (q > start && | ||
| 132 | el.region_start < q[-1].region_start); | ||
| 133 | *q = el; | ||
| 134 | } | ||
| 135 | } | ||
| 136 | } | 131 | } |
| 137 | 132 | ||
| 138 | struct unwind_table * | 133 | struct unwind_table * |
| @@ -417,3 +412,30 @@ int unwind_to_user(struct unwind_frame_info *info) | |||
| 417 | 412 | ||
| 418 | return ret; | 413 | return ret; |
| 419 | } | 414 | } |
| 415 | |||
| 416 | unsigned long return_address(unsigned int level) | ||
| 417 | { | ||
| 418 | struct unwind_frame_info info; | ||
| 419 | struct pt_regs r; | ||
| 420 | unsigned long sp; | ||
| 421 | |||
| 422 | /* initialize unwind info */ | ||
| 423 | asm volatile ("copy %%r30, %0" : "=r"(sp)); | ||
| 424 | memset(&r, 0, sizeof(struct pt_regs)); | ||
| 425 | r.iaoq[0] = (unsigned long) current_text_addr(); | ||
| 426 | r.gr[2] = (unsigned long) __builtin_return_address(0); | ||
| 427 | r.gr[30] = sp; | ||
| 428 | unwind_frame_init(&info, current, &r); | ||
| 429 | |||
| 430 | /* unwind stack */ | ||
| 431 | ++level; | ||
| 432 | do { | ||
| 433 | if (unwind_once(&info) < 0 || info.ip == 0) | ||
| 434 | return 0; | ||
| 435 | if (!__kernel_text_address(info.ip)) { | ||
| 436 | return 0; | ||
| 437 | } | ||
| 438 | } while (info.ip && level--); | ||
| 439 | |||
| 440 | return info.ip; | ||
| 441 | } | ||
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index d69bde6a2343..c542c7bb7454 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c | |||
| @@ -354,7 +354,7 @@ static unsigned int dino_startup_irq(unsigned int irq) | |||
| 354 | } | 354 | } |
| 355 | 355 | ||
| 356 | static struct irq_chip dino_interrupt_type = { | 356 | static struct irq_chip dino_interrupt_type = { |
| 357 | .typename = "GSC-PCI", | 357 | .name = "GSC-PCI", |
| 358 | .startup = dino_startup_irq, | 358 | .startup = dino_startup_irq, |
| 359 | .shutdown = dino_disable_irq, | 359 | .shutdown = dino_disable_irq, |
| 360 | .enable = dino_enable_irq, | 360 | .enable = dino_enable_irq, |
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c index 51220749cb65..46f503fb7fc5 100644 --- a/drivers/parisc/eisa.c +++ b/drivers/parisc/eisa.c | |||
| @@ -189,7 +189,7 @@ static unsigned int eisa_startup_irq(unsigned int irq) | |||
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | static struct irq_chip eisa_interrupt_type = { | 191 | static struct irq_chip eisa_interrupt_type = { |
| 192 | .typename = "EISA", | 192 | .name = "EISA", |
| 193 | .startup = eisa_startup_irq, | 193 | .startup = eisa_startup_irq, |
| 194 | .shutdown = eisa_disable_irq, | 194 | .shutdown = eisa_disable_irq, |
| 195 | .enable = eisa_enable_irq, | 195 | .enable = eisa_enable_irq, |
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c index 647adc9f85ad..c4e1f3c3c2fa 100644 --- a/drivers/parisc/gsc.c +++ b/drivers/parisc/gsc.c | |||
| @@ -149,7 +149,7 @@ static unsigned int gsc_asic_startup_irq(unsigned int irq) | |||
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | static struct irq_chip gsc_asic_interrupt_type = { | 151 | static struct irq_chip gsc_asic_interrupt_type = { |
| 152 | .typename = "GSC-ASIC", | 152 | .name = "GSC-ASIC", |
| 153 | .startup = gsc_asic_startup_irq, | 153 | .startup = gsc_asic_startup_irq, |
| 154 | .shutdown = gsc_asic_disable_irq, | 154 | .shutdown = gsc_asic_disable_irq, |
| 155 | .enable = gsc_asic_enable_irq, | 155 | .enable = gsc_asic_enable_irq, |
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 88e333553212..c76836727cae 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
| @@ -730,7 +730,7 @@ static int iosapic_set_affinity_irq(unsigned int irq, | |||
| 730 | #endif | 730 | #endif |
| 731 | 731 | ||
| 732 | static struct irq_chip iosapic_interrupt_type = { | 732 | static struct irq_chip iosapic_interrupt_type = { |
| 733 | .typename = "IO-SAPIC-level", | 733 | .name = "IO-SAPIC-level", |
| 734 | .startup = iosapic_startup_irq, | 734 | .startup = iosapic_startup_irq, |
| 735 | .shutdown = iosapic_disable_irq, | 735 | .shutdown = iosapic_disable_irq, |
| 736 | .enable = iosapic_enable_irq, | 736 | .enable = iosapic_enable_irq, |
diff --git a/drivers/parisc/led.c b/drivers/parisc/led.c index 79caf1ca4a29..188bc8496a26 100644 --- a/drivers/parisc/led.c +++ b/drivers/parisc/led.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <linux/kernel_stat.h> | 38 | #include <linux/kernel_stat.h> |
| 39 | #include <linux/reboot.h> | 39 | #include <linux/reboot.h> |
| 40 | #include <linux/proc_fs.h> | 40 | #include <linux/proc_fs.h> |
| 41 | #include <linux/seq_file.h> | ||
| 41 | #include <linux/ctype.h> | 42 | #include <linux/ctype.h> |
| 42 | #include <linux/blkdev.h> | 43 | #include <linux/blkdev.h> |
| 43 | #include <linux/workqueue.h> | 44 | #include <linux/workqueue.h> |
| @@ -147,41 +148,34 @@ device_initcall(start_task); | |||
| 147 | static void (*led_func_ptr) (unsigned char) __read_mostly; | 148 | static void (*led_func_ptr) (unsigned char) __read_mostly; |
| 148 | 149 | ||
| 149 | #ifdef CONFIG_PROC_FS | 150 | #ifdef CONFIG_PROC_FS |
| 150 | static int led_proc_read(char *page, char **start, off_t off, int count, | 151 | static int led_proc_show(struct seq_file *m, void *v) |
| 151 | int *eof, void *data) | ||
| 152 | { | 152 | { |
| 153 | char *out = page; | 153 | switch ((long)m->private) |
| 154 | int len; | ||
| 155 | |||
| 156 | switch ((long)data) | ||
| 157 | { | 154 | { |
| 158 | case LED_NOLCD: | 155 | case LED_NOLCD: |
| 159 | out += sprintf(out, "Heartbeat: %d\n", led_heartbeat); | 156 | seq_printf(m, "Heartbeat: %d\n", led_heartbeat); |
| 160 | out += sprintf(out, "Disk IO: %d\n", led_diskio); | 157 | seq_printf(m, "Disk IO: %d\n", led_diskio); |
| 161 | out += sprintf(out, "LAN Rx/Tx: %d\n", led_lanrxtx); | 158 | seq_printf(m, "LAN Rx/Tx: %d\n", led_lanrxtx); |
| 162 | break; | 159 | break; |
| 163 | case LED_HASLCD: | 160 | case LED_HASLCD: |
| 164 | out += sprintf(out, "%s\n", lcd_text); | 161 | seq_printf(m, "%s\n", lcd_text); |
| 165 | break; | 162 | break; |
| 166 | default: | 163 | default: |
| 167 | *eof = 1; | ||
| 168 | return 0; | 164 | return 0; |
| 169 | } | 165 | } |
| 166 | return 0; | ||
| 167 | } | ||
| 170 | 168 | ||
| 171 | len = out - page - off; | 169 | static int led_proc_open(struct inode *inode, struct file *file) |
| 172 | if (len < count) { | 170 | { |
| 173 | *eof = 1; | 171 | return single_open(file, led_proc_show, PDE(inode)->data); |
| 174 | if (len <= 0) return 0; | ||
| 175 | } else { | ||
| 176 | len = count; | ||
| 177 | } | ||
| 178 | *start = page + off; | ||
| 179 | return len; | ||
| 180 | } | 172 | } |
| 181 | 173 | ||
| 182 | static int led_proc_write(struct file *file, const char *buf, | 174 | |
| 183 | unsigned long count, void *data) | 175 | static ssize_t led_proc_write(struct file *file, const char *buf, |
| 176 | size_t count, loff_t *pos) | ||
| 184 | { | 177 | { |
| 178 | void *data = PDE(file->f_path.dentry->d_inode)->data; | ||
| 185 | char *cur, lbuf[count + 1]; | 179 | char *cur, lbuf[count + 1]; |
| 186 | int d; | 180 | int d; |
| 187 | 181 | ||
| @@ -234,6 +228,15 @@ parse_error: | |||
| 234 | return -EINVAL; | 228 | return -EINVAL; |
| 235 | } | 229 | } |
| 236 | 230 | ||
| 231 | static const struct file_operations led_proc_fops = { | ||
| 232 | .owner = THIS_MODULE, | ||
| 233 | .open = led_proc_open, | ||
| 234 | .read = seq_read, | ||
| 235 | .llseek = seq_lseek, | ||
| 236 | .release = single_release, | ||
| 237 | .write = led_proc_write, | ||
| 238 | }; | ||
| 239 | |||
| 237 | static int __init led_create_procfs(void) | 240 | static int __init led_create_procfs(void) |
| 238 | { | 241 | { |
| 239 | struct proc_dir_entry *proc_pdc_root = NULL; | 242 | struct proc_dir_entry *proc_pdc_root = NULL; |
| @@ -243,19 +246,15 @@ static int __init led_create_procfs(void) | |||
| 243 | 246 | ||
| 244 | proc_pdc_root = proc_mkdir("pdc", 0); | 247 | proc_pdc_root = proc_mkdir("pdc", 0); |
| 245 | if (!proc_pdc_root) return -1; | 248 | if (!proc_pdc_root) return -1; |
| 246 | ent = create_proc_entry("led", S_IFREG|S_IRUGO|S_IWUSR, proc_pdc_root); | 249 | ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root, |
| 250 | &led_proc_fops, (void *)LED_NOLCD); /* LED */ | ||
| 247 | if (!ent) return -1; | 251 | if (!ent) return -1; |
| 248 | ent->data = (void *)LED_NOLCD; /* LED */ | ||
| 249 | ent->read_proc = led_proc_read; | ||
| 250 | ent->write_proc = led_proc_write; | ||
| 251 | 252 | ||
| 252 | if (led_type == LED_HASLCD) | 253 | if (led_type == LED_HASLCD) |
| 253 | { | 254 | { |
| 254 | ent = create_proc_entry("lcd", S_IFREG|S_IRUGO|S_IWUSR, proc_pdc_root); | 255 | ent = proc_create_data("lcd", S_IRUGO|S_IWUSR, proc_pdc_root, |
| 256 | &led_proc_fops, (void *)LED_HASLCD); /* LCD */ | ||
| 255 | if (!ent) return -1; | 257 | if (!ent) return -1; |
| 256 | ent->data = (void *)LED_HASLCD; /* LCD */ | ||
| 257 | ent->read_proc = led_proc_read; | ||
| 258 | ent->write_proc = led_proc_write; | ||
| 259 | } | 258 | } |
| 260 | 259 | ||
| 261 | return 0; | 260 | return 0; |
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c index 675f04e6597a..a35c9c5b89e8 100644 --- a/drivers/parisc/superio.c +++ b/drivers/parisc/superio.c | |||
| @@ -326,7 +326,7 @@ static unsigned int superio_startup_irq(unsigned int irq) | |||
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | static struct irq_chip superio_interrupt_type = { | 328 | static struct irq_chip superio_interrupt_type = { |
| 329 | .typename = SUPERIO, | 329 | .name = SUPERIO, |
| 330 | .startup = superio_startup_irq, | 330 | .startup = superio_startup_irq, |
| 331 | .shutdown = superio_disable_irq, | 331 | .shutdown = superio_disable_irq, |
| 332 | .enable = superio_enable_irq, | 332 | .enable = superio_enable_irq, |
