[parisc-linux-cvs] Re: DIFF 2.4.20-pa15 tulip/eeprom.c + traps.c

Grant Grundler grundler@dsl2.external.hp.com
Wed, 18 Dec 2002 10:08:47 -0700


On Wed, Dec 18, 2002 at 01:19:14AM -0700, Grant Grundler wrote:
> Log message:
> 2.4.20-pa15 irq enable and tulip add-on card fix
> o only enable IRQs in handle_interruption before call do_page_fault()
> as per willy's suggestion. This seems to work on a500 SMP.
> o revert change in tulip_parse_eeprom() that resulted in building a fake
> media table when we didn't want to. my bad since I didn't read the code
> right when I made the change.
> 
> booted on a500 with hp_diva_timer code disbled.

Here's the diff.
Never try to do a commit from motel wireless network...GRRHHH...

grant


Index: Makefile
===================================================================
RCS file: /var/cvs/linux/Makefile,v
retrieving revision 1.374
diff -u -p -r1.374 Makefile
--- Makefile	12 Dec 2002 17:14:06 -0000	1.374
+++ Makefile	18 Dec 2002 06:58:38 -0000
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 20
-EXTRAVERSION = -pa14
+EXTRAVERSION = -pa15
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
Index: arch/parisc/kernel/traps.c
===================================================================
RCS file: /var/cvs/linux/arch/parisc/kernel/traps.c,v
retrieving revision 1.70
diff -u -p -r1.70 traps.c
--- arch/parisc/kernel/traps.c	17 Nov 2002 20:44:11 -0000	1.70
+++ arch/parisc/kernel/traps.c	18 Dec 2002 06:58:38 -0000
@@ -455,13 +455,6 @@ void handle_interruption(int code, struc
 	unsigned long fault_space = 0;
 	struct siginfo si;
 
-	/* HACK! jsm is going to fix this.
-	 * entry.S will manage I-bit - only enable I-bit if it was
-	 * enabled before we took the "trap".
-	 */
-	if (code != 1)
-		local_irq_enable();
-
 	switch(code) {
 
 	case  1:
@@ -727,6 +720,7 @@ void handle_interruption(int code, struc
 	    }
 	}
 
+	local_irq_enable();
 	do_page_fault(regs, code, fault_address);
 }
 
Index: drivers/net/tulip/eeprom.c
===================================================================
RCS file: /var/cvs/linux/drivers/net/tulip/eeprom.c,v
retrieving revision 1.16
diff -u -p -r1.16 eeprom.c
--- drivers/net/tulip/eeprom.c	17 Nov 2002 20:44:11 -0000	1.16
+++ drivers/net/tulip/eeprom.c	18 Dec 2002 06:58:38 -0000
@@ -190,7 +190,7 @@ void __devinit tulip_parse_eeprom(struct
 	}
 subsequent_board:
 
-	if (ee_data[27] == 0 || ee_data[ee_data[27]] == 0) {  /* No valid media table. */
+	if (ee_data[27] == 0) {		/* No valid media table. */
 		tulip_build_fake_mediatable(tp);
 	} else if (tp->chip_id == DC21041) {
 		unsigned char *p = (void *)ee_data + ee_data[27 + controller_index*3];