Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
parisc: Fix GSC PS/2 driver name for keyboard and mouse
parisc: KittyHawk LCD fix
parisc: convert the rest of the irq handlers to simple/percpu
parisc: fix dino/gsc interrupts
parisc: remove redundant initialization in sigsegv path of sys_rt_sigreturn

+28 -25
+2 -5
arch/parisc/kernel/irq.c
··· 75 75 smp_send_all_nop(); 76 76 } 77 77 78 - void no_ack_irq(unsigned int irq) { } 79 - void no_end_irq(unsigned int irq) { } 80 - 81 78 void cpu_ack_irq(unsigned int irq) 82 79 { 83 80 unsigned long mask = EIEM_MASK(irq); ··· 238 241 239 242 /* for iosapic interrupts */ 240 243 if (type) { 241 - set_irq_chip_and_handler(irq, type, handle_level_irq); 244 + set_irq_chip_and_handler(irq, type, handle_percpu_irq); 242 245 set_irq_chip_data(irq, data); 243 246 cpu_unmask_irq(irq); 244 247 } ··· 389 392 int i; 390 393 for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) { 391 394 set_irq_chip_and_handler(i, &cpu_interrupt_type, 392 - handle_level_irq); 395 + handle_percpu_irq); 393 396 } 394 397 395 398 set_irq_handler(TIMER_IRQ, handle_percpu_irq);
+1 -8
arch/parisc/kernel/signal.c
··· 98 98 sys_rt_sigreturn(struct pt_regs *regs, int in_syscall) 99 99 { 100 100 struct rt_sigframe __user *frame; 101 - struct siginfo si; 102 101 sigset_t set; 103 102 unsigned long usp = (regs->gr[30] & ~(0x01UL)); 104 103 unsigned long sigframe_size = PARISC_RT_SIGFRAME_SIZE; ··· 177 178 178 179 give_sigsegv: 179 180 DBG(1,"sys_rt_sigreturn: Sending SIGSEGV\n"); 180 - si.si_signo = SIGSEGV; 181 - si.si_errno = 0; 182 - si.si_code = SI_KERNEL; 183 - si.si_pid = task_pid_vnr(current); 184 - si.si_uid = current_uid(); 185 - si.si_addr = &frame->uc; 186 - force_sig_info(SIGSEGV, &si, current); 181 + force_sig(SIGSEGV, current); 187 182 return; 188 183 } 189 184
+1 -1
drivers/input/serio/gscps2.c
··· 358 358 gscps2_reset(ps2port); 359 359 ps2port->id = readb(ps2port->addr + GSC_ID) & 0x0f; 360 360 361 - snprintf(serio->name, sizeof(serio->name), "GSC PS/2 %s", 361 + snprintf(serio->name, sizeof(serio->name), "gsc-ps2-%s", 362 362 (ps2port->id == GSC_ID_KEYBOARD) ? "keyboard" : "mouse"); 363 363 strlcpy(serio->phys, dev_name(&dev->dev), sizeof(serio->phys)); 364 364 serio->id.type = SERIO_8042;
-1
drivers/parisc/dino.c
··· 349 349 .name = "GSC-PCI", 350 350 .unmask = dino_unmask_irq, 351 351 .mask = dino_mask_irq, 352 - .ack = no_ack_irq, 353 352 }; 354 353 355 354
+1 -2
drivers/parisc/eisa.c
··· 186 186 .name = "EISA", 187 187 .unmask = eisa_unmask_irq, 188 188 .mask = eisa_mask_irq, 189 - .ack = no_ack_irq, 190 189 }; 191 190 192 191 static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) ··· 339 340 setup_irq(2, &irq2_action); 340 341 for (i = 0; i < 16; i++) { 341 342 set_irq_chip_and_handler(i, &eisa_interrupt_type, 342 - handle_level_irq); 343 + handle_simple_irq); 343 344 } 344 345 345 346 EISA_bus = 1;
+1 -2
drivers/parisc/gsc.c
··· 143 143 .name = "GSC-ASIC", 144 144 .unmask = gsc_asic_unmask_irq, 145 145 .mask = gsc_asic_mask_irq, 146 - .ack = no_ack_irq, 147 146 }; 148 147 149 148 int gsc_assign_irq(struct irq_chip *type, void *data) ··· 152 153 if (irq > GSC_IRQ_MAX) 153 154 return NO_IRQ; 154 155 155 - set_irq_chip_and_handler(irq, type, handle_level_irq); 156 + set_irq_chip_and_handler(irq, type, handle_simple_irq); 156 157 set_irq_chip_data(irq, data); 157 158 158 159 return irq++;
+8
drivers/parisc/iosapic.c
··· 669 669 DBG(KERN_DEBUG "enable_irq(%d): eoi(%p, 0x%x)\n", irq, 670 670 vi->eoi_addr, vi->eoi_data); 671 671 iosapic_eoi(vi->eoi_addr, vi->eoi_data); 672 + } 673 + 674 + static void iosapic_eoi_irq(unsigned int irq) 675 + { 676 + struct vector_info *vi = get_irq_chip_data(irq); 677 + 678 + iosapic_eoi(vi->eoi_addr, vi->eoi_data); 672 679 cpu_eoi_irq(irq); 673 680 } 674 681 ··· 712 705 .unmask = iosapic_unmask_irq, 713 706 .mask = iosapic_mask_irq, 714 707 .ack = cpu_ack_irq, 708 + .eoi = iosapic_eoi_irq, 715 709 #ifdef CONFIG_SMP 716 710 .set_affinity = iosapic_set_affinity_irq, 717 711 #endif
+13 -4
drivers/parisc/led.c
··· 64 64 static unsigned int led_lanrxtx __read_mostly = 1; 65 65 static char lcd_text[32] __read_mostly; 66 66 static char lcd_text_default[32] __read_mostly; 67 + static int lcd_no_led_support __read_mostly = 0; /* KittyHawk doesn't support LED on its LCD */ 67 68 68 69 69 70 static struct workqueue_struct *led_wq; ··· 116 115 .lcd_width = 16, 117 116 .lcd_cmd_reg_addr = KITTYHAWK_LCD_CMD, 118 117 .lcd_data_reg_addr = KITTYHAWK_LCD_DATA, 119 - .min_cmd_delay = 40, 118 + .min_cmd_delay = 80, 120 119 .reset_cmd1 = 0x80, 121 120 .reset_cmd2 = 0xc0, 122 121 }; ··· 135 134 { 136 135 /* Display the default text now */ 137 136 if (led_type == LED_HASLCD) lcd_print( lcd_text_default ); 137 + 138 + /* KittyHawk has no LED support on its LCD */ 139 + if (lcd_no_led_support) return 0; 138 140 139 141 /* Create the work queue and queue the LED task */ 140 142 led_wq = create_singlethread_workqueue("led_wq"); ··· 252 248 253 249 proc_pdc_root = proc_mkdir("pdc", 0); 254 250 if (!proc_pdc_root) return -1; 255 - ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root, 256 - &led_proc_fops, (void *)LED_NOLCD); /* LED */ 257 - if (!ent) return -1; 251 + 252 + if (!lcd_no_led_support) 253 + { 254 + ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root, 255 + &led_proc_fops, (void *)LED_NOLCD); /* LED */ 256 + if (!ent) return -1; 257 + } 258 258 259 259 if (led_type == LED_HASLCD) 260 260 { ··· 700 692 case 0x58B: /* KittyHawk DC2 100 (K200) */ 701 693 printk(KERN_INFO "%s: KittyHawk-Machine (hversion 0x%x) found, " 702 694 "LED detection skipped.\n", __FILE__, CPU_HVERSION); 695 + lcd_no_led_support = 1; 703 696 goto found; /* use the preinitialized values of lcd_info */ 704 697 } 705 698
+1 -2
drivers/parisc/superio.c
··· 323 323 .name = SUPERIO, 324 324 .unmask = superio_unmask_irq, 325 325 .mask = superio_mask_irq, 326 - .ack = no_ack_irq, 327 326 }; 328 327 329 328 #ifdef DEBUG_SUPERIO_INIT ··· 353 354 #endif 354 355 355 356 for (i = 0; i < 16; i++) { 356 - set_irq_chip_and_handler(i, &superio_interrupt_type, handle_level_irq); 357 + set_irq_chip_and_handler(i, &superio_interrupt_type, handle_simple_irq); 357 358 } 358 359 359 360 /*