2003-03-13 13:14:24

by Andrey Panin

[permalink] [raw]
Subject: [PATCH] irq handling code consolidation (i386 part)

Hi,

irq handling consolidation continues !

i386 specific patch attached. Compiled and WorksForMe(tm)

Best regards.

--
Andrey Panin | Embedded systems software developer
[email protected] | PGP key: wwwkeys.pgp.net


Attachments:
(No filename) (219.00 B)
patch-irq-i386-2.5.64 (22.42 kB)
Download all attachments

2003-03-14 06:06:30

by Zwane Mwaikambo

[permalink] [raw]
Subject: Re: [PATCH] irq handling code consolidation (i386 part)

On Thu, 13 Mar 2003, Andrey Panin wrote:

> Hi,
>
> irq handling consolidation continues !
>
> i386 specific patch attached. Compiled and WorksForMe(tm)

I'm still going through a few tests but here are some compile fixes for
some configurations i was trying.

ccache gcc -Wp,-MD,kernel/.irq.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -g -fno-strict-aliasing -fno-common
-pipe -mpreferred-stack-boundary=2 -march=i586
-Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include
-DKBUILD_BASENAME=irq -DKBUILD_MODNAME=irq -c -o kernel/irq.o kernel/irq.c

kernel/irq.c: In function `no_irq_ack':
kernel/irq.c:84: warning: implicit declaration of function `ack_APIC_irq'

CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y

Index: linux-2.5.64-unwashed/include/asm/hw_irq.h
===================================================================
RCS file: /build/cvsroot/linux-2.5.64/include/asm-i386/hw_irq.h,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 hw_irq.h
--- linux-2.5.64-unwashed/include/asm/hw_irq.h 14 Mar 2003 05:56:40 -0000 1.1.1.2
+++ linux-2.5.64-unwashed/include/asm/hw_irq.h 14 Mar 2003 06:07:48 -0000
@@ -16,6 +16,7 @@
#include <linux/profile.h>
#include <asm/atomic.h>
#include <asm/irq.h>
+#include <asm/apic.h>

/*
* Various low-level irq details needed by irq.c, process.c,

2003-03-14 07:04:45

by Zwane Mwaikambo

[permalink] [raw]
Subject: Re: [PATCH] irq handling code consolidation (i386 part)

On Fri, 14 Mar 2003, Zwane Mwaikambo wrote:

> On Thu, 13 Mar 2003, Andrey Panin wrote:
>
> > Hi,
> >
> > irq handling consolidation continues !
> >
> > i386 specific patch attached. Compiled and WorksForMe(tm)
>
> I'm still going through a few tests but here are some compile fixes for
> some configurations i was trying.

Does this look ok? I tested compiled the following combinations;

i386 - NUMAQ, SMP, UP w/ IOAPIC, UP VISWS and SMP VISWS, i only did visual
inspection of Alpha.

ccache gcc -Wp,-MD,kernel/.irq.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -g -fno-strict-aliasing -fno-common
-pipe -mpreferred-stack-boundary=2 -march=i586
-Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include
-DKBUILD_BASENAME=irq -DKBUILD_MODNAME=irq -c -o kernel/irq.o kernel/irq.c

kernel/irq.c: In function `irq_affinity_read_proc':
kernel/irq.c:691: `irq_affinity' undeclared (first use in this function)
kernel/irq.c:691: (Each undeclared identifier is reported only once
kernel/irq.c:691: for each function it appears in.)
kernel/irq.c: In function `irq_affinity_write_proc':
kernel/irq.c:713: `irq_affinity' undeclared (first use in this function)
include/asm/uaccess.h: At top level:
kernel/irq.c:687: warning: `irq_affinity_read_proc' defined but not used
kernel/irq.c:696: warning: `irq_affinity_write_proc' defined but not used
kernel/irq.c:756: warning: `prof_cpu_mask_read_proc' defined but not used
kernel/irq.c:766: warning: `prof_cpu_mask_write_proc' defined but not used
make[2]: *** [kernel/irq.o] Error 1
make[1]: *** [kernel] Error 2
make: *** [vmlinux] Error 2

Index: linux-2.5.64-unwashed/kernel/irq.c
===================================================================
RCS file: /build/cvsroot/linux-2.5.64/kernel/Attic/irq.c,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 irq.c
--- linux-2.5.64-unwashed/kernel/irq.c 14 Mar 2003 06:59:57 -0000 1.1.2.1
+++ linux-2.5.64-unwashed/kernel/irq.c 14 Mar 2003 07:00:23 -0000
@@ -680,7 +680,6 @@
unsigned long irq_affinity[NR_IRQS] = {
[0 ... NR_IRQS - 1] = ARCH_DEFAULT_IRQ_AFFINITY
};
-#endif

static int irq_affinity_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data)
@@ -715,6 +714,7 @@

return full_count;
}
+#endif

void register_irq_proc(unsigned int irq)
{
@@ -751,6 +751,7 @@

unsigned long prof_cpu_mask = ~0UL;

+#ifdef CONFIG_SMP
static int prof_cpu_mask_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
@@ -774,6 +775,7 @@
*mask = new_value;
return full_count;
}
+#endif

void init_irq_proc(void)
{

2003-03-14 07:58:03

by Zwane Mwaikambo

[permalink] [raw]
Subject: Re: [PATCH] irq handling code consolidation (i386 part)

This one is for UP w/ IOAPIC

arch/i386/kernel/built-in.o: In function `end_level_ioapic_irq':
/build/source/linux-2.5.64-unwashed/include/asm/atomic.h:107: undefined reference to `irq_mis_count'
nm: vmlinux: No such file or directory
make -f scripts/Makefile.build obj=arch/i386/boot arch/i386/boot/bzImage
ccache gcc -Wp,-MD,arch/i386/boot/.setup.o.d -D__ASSEMBLY__ -D__KERNEL__
-Iinclude -Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include
-traditional -DSVGA_MODE=NORMAL_VGA -D__BIG_KERNEL__ -c -o
arch/i386/boot/setup.o arch/i386/boot/setup.S

Index: linux-2.5.64-unwashed/arch/i386/kernel/irq.c
===================================================================
RCS file: /build/cvsroot/linux-2.5.64/arch/i386/kernel/irq.c,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 irq.c
--- linux-2.5.64-unwashed/arch/i386/kernel/irq.c 14 Mar 2003 05:56:30 -0000 1.1.1.2
+++ linux-2.5.64-unwashed/arch/i386/kernel/irq.c 14 Mar 2003 08:02:24 -0000
@@ -10,6 +10,7 @@
#include <linux/seq_file.h>

#include <asm/atomic.h>
+#include <asm/io_apic.h> /* for APIC_MISMATCH_DEBUG */

/*
* Various interrupt controllers we handle: 8259 PIC, SMP IO-APIC,