From: Andy P. <at...@us...> - 2001-01-20 22:00:12
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv21285/arch/vax/kernel Modified Files: init_task.c interrupt.c interrupt.h softirq.c Log Message: integrate 2.2 tree with 2.4. Different task layouts, interrupts and bh handling. bh_active and bh_mask are no more, in_softirq() instead. Header file and C code prototypes differed. Index: init_task.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/init_task.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** init_task.c 2001/01/17 16:13:57 1.1 --- init_task.c 2001/01/20 22:00:20 1.2 *************** *** 4,8 **** --- 4,10 ---- #include <asm/uaccess.h> #include <asm/pgtable.h> + #include <asm/processor.h> /* INIT_MMAP */ + /* This is copied from i386 for now. I don't know what we'll need to change yet. KPH 2000-04-25 */ *************** *** 12,16 **** static struct files_struct init_files = INIT_FILES; static struct signal_struct init_signals = INIT_SIGNALS; ! struct mm_struct init_mm = INIT_MM; /* --- 14,18 ---- static struct files_struct init_files = INIT_FILES; static struct signal_struct init_signals = INIT_SIGNALS; ! struct mm_struct init_mm = INIT_MM(init_mm); /* *************** *** 25,28 **** */ union task_union init_task_union ! /* __attribute__((__section__(".data.init_task"))) */ = { INIT_TASK }; --- 27,31 ---- */ union task_union init_task_union ! __attribute__((__section__(".data.init_task"))) = ! { INIT_TASK(init_task_union.task) }; Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** interrupt.c 2001/01/20 13:51:05 1.2 --- interrupt.c 2001/01/20 22:00:20 1.3 *************** *** 30,35 **** union scb_and_device_vectors __attribute((__aligned__(VPAGE_SIZE))) scb; ! unsigned int local_irq_count[NR_CPUS]; ! unsigned int local_bh_count[NR_CPUS]; /* Statically-defined pool of irqvector structures. This will go once --- 30,39 ---- union scb_and_device_vectors __attribute((__aligned__(VPAGE_SIZE))) scb; ! /* These are now part of the irq_cpustat_t structure defined in ! * include/asm-vax/hardirq.h, accessor functions in include/linux/irq_cpustat.h ! * and variable declaration in linux/kernel/softirq.c ! */ ! /* unsigned int local_irq_count[NR_CPUS]; */ ! /* unsigned int local_bh_count[NR_CPUS]; */ /* Statically-defined pool of irqvector structures. This will go once *************** *** 240,244 **** status = dispatch_irq(regs, vec); if (status) { ! if (bh_active & bh_mask) { /* Not ready for this yet */ /* do_bottom_half(); */ --- 244,248 ---- status = dispatch_irq(regs, vec); if (status) { ! if ( in_softirq() ) { /* Not ready for this yet */ /* do_bottom_half(); */ Index: interrupt.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** interrupt.h 2001/01/17 16:13:57 1.1 --- interrupt.h 2001/01/20 22:00:20 1.2 *************** *** 59,67 **** /* And declarations of some standard interrupt handlers */ ! extern int accvio_handler(struct pt_regs *regs, void *excep_info); ! extern int page_fault_handler(struct pt_regs *regs, void *excep_info); ! extern int reserved_operand_handler(struct pt_regs *regs, void *excep_info); ! extern int corrected_read_handler(struct pt_regs *regs, void *excep_info); extern int syscall_handler(struct pt_regs *regs, void *excep_info); --- 59,68 ---- /* And declarations of some standard interrupt handlers */ + /* The type for these is declared in asm-vax/irq.h */ ! extern void accvio_handler(struct pt_regs *regs, void *excep_info); ! extern void page_fault_handler(struct pt_regs *regs, void *excep_info); ! extern void reserved_operand_handler(struct pt_regs *regs, void *excep_info); ! extern void corrected_read_handler(struct pt_regs *regs, void *excep_info); extern int syscall_handler(struct pt_regs *regs, void *excep_info); Index: softirq.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/softirq.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** softirq.c 2001/01/17 16:13:57 1.1 --- softirq.c 2001/01/20 22:00:20 1.2 *************** *** 33,45 **** bh_mask &= ~(1 << nr); } ! ! void mark_bh(int nr) ! { ! set_bit(nr, &bh_active); ! } ! void start_bh_atomic(void) { ! local_bh_count[smp_processor_id()]++; barrier(); } --- 33,48 ---- bh_mask &= ~(1 << nr); } ! /* mark_bh now in include/linux/interrupt.h */ ! /*void mark_bh(int nr) ! *{ ! * set_bit(nr, &bh_active); ! *} ! */ ! /* local_bh_count and irq_count are now fields of the ! * irq_stat structure defined in linux/kernel/softirq.c ! */ void start_bh_atomic(void) { ! local_bh_count(smp_processor_id())++; barrier(); } *************** *** 48,52 **** { barrier(); ! local_bh_count[smp_processor_id()]--; } --- 51,55 ---- { barrier(); ! local_bh_count(smp_processor_id())--; } |