|
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())--;
}
|